Llama 2에 대해 알아야 할 모든 것

Llama 2에 대해 알아야 할 모든 것
Llama 2란 무엇인가요?
2023년 Meta AI가 소개한 Llama 2는 대규모 언어 모델 (LLMs) 분야의 중요한 발전입니다. Llama 2와 Llama 2-CHAT이라는 이 모델들은 최대 700억 개의 매개변수로 확장되며 연구 및 상업적 목적으로 무료로 이용할 수 있어, 텍스트 생성부터 프로그래밍 코드 해석에 이르기까지 자연어 처리 (NLP) 역량에서 큰 도약을 보여줍니다.
처음에는 비상업적 라이선스하에 연구 기관에서만 접근할 수 있었던 이전 모델 LLaMa 1을 기반으로 한 Llama 2는 최첨단 AI 기술에 대한 접근을 민주화하는 방향으로의 중요한 전환을 의미합니다. 이전 모델과 달리 Llama 2 모델은 “오픈 소스”이므로 연구 및 상업적 애플리케이션에 자유롭게 사용할 수 있으며, 이는 더욱 포용적이고 협력적인 생성형 AI 생태계를 조성하려는 Meta의 의지를 반영합니다.
Llama 2의 공개는 최첨단 LLM에 대한 접근을 제공하고, 그 개발과 관련된 계산상의 과제를 해결합니다. 매개변수 수를 기하급수적으로 늘리지 않고 성능을 최적화함으로써, Llama 2는 70억 개에서 700억 개에 이르는 다양한 매개변수 규모의 모델을 제공합니다. 이러한 전략적 접근을 통해 소규모 조직과 연구 커뮤니티도 과도한 컴퓨팅 자원 없이 LLM의 힘을 활용할 수 있습니다.
또한 투명성에 대한 Meta의 헌신은 Llama 2의 코드와 모델 가중치를 모두 공개하기로 한 결정에서 분명히 드러나며, 이는 AI 연구 커뮤니티 내에서 더 큰 이해와 협력을 촉진합니다. 진입 장벽을 낮추고 접근성을 촉진함으로써, Llama 2는 AI 연구 및 개발에서 더욱 포용적이고 혁신적인 미래로 나아가는 길을 열어줍니다.
Llama 2
Llama 2는 새로운 공개 데이터 조합으로 학습된 Llama 1의 업데이트 버전입니다. 사전 학습 데이터 세트는 40% 증가했고, 컨텍스트 길이는 두 배로 늘어났으며, Meta 팀은 Llama 2를 구축할 때 그룹화된 쿼리 어텐션을 채택했습니다.
| 학습 데이터 | 매개변수 | 컨텍스트 길이 | 그룹 쿼리 어텐션 | 토큰 | |
| Llama 1 | Touvron et al.(2023) 참조 | 7B | 2K | - | 1.0T |
| 13B | 2K | - | 1.0T | ||
| 33B | 2K | - | 1.4T | ||
| 65B | 2K | - | 1.4T | ||
| Llama 2 | 공개적으로 이용 가능한 온라인 데이터의 새로운 조합 | 7B | 4K | - | 2.0T |
| 13B | 4K | - | 2.0T | ||
| 34B | 4K | ✓ | 2.0T | ||
| 70B | ✓ | 2.0T |
Llama 2-CHAT
Llama 2-CHAT은 Meta 팀이 자연어 사용 사례에 맞게 최적화한 Llama 2의 파인튜닝 버전입니다. 이 모델의 변형은 7B, 13B, 70B 매개변수로 제공됩니다. Llama 2-Chat은 사전 학습 이후 지식 업데이트 중단, 자격 없는 조언과 같은 비사실적 생성 가능성, 환각 경향 등 다른 LLM의 잘 알려진 한계와 동일한 제약을 가집니다.
Llama 2 오픈 소스
Meta는 연구 및 상업적 목적을 위해 Llama 2 모델의 시작 코드와 모델 가중치에 대한 접근을 관대하게 제공했지만, 라이선스 계약에 명시된 특정 제한 사항으로 인해 이를 "오픈 소스"로 분류하는 것이 적절한지에 대한 논의가 제기되었습니다.
Llama 2의 라이선스 조건 분류를 둘러싼 논쟁은 기술적·의미론적 미묘함에 달려 있습니다. "오픈 소스"는 일반적으로 자유롭게 접근 가능한 소스 코드를 가진 모든 소프트웨어를 지칭하는 구어적 표현으로 흔히 사용되지만, Open Source Initiative (OSI)가 관리하는 공식 명칭으로서 특정한 의미를 지닙니다. "Open Source Initiative approved"로 인정받으려면 소프트웨어 라이선스가 공식 Open Source Definition (OSD)에 명시된 10가지 기준을 준수해야 합니다.
따라서 Llama 2 모델에 "오픈 소스"라는 명칭을 적용할 수 있는지는 그 라이선스 조건이 OSI가 제시한 엄격한 기준과 부합하는지에 달려 있습니다. 이러한 구분은 더 넓은 개발자 커뮤니티 내에서 소프트웨어 자원의 접근성과 배포를 논의할 때 명확성과 정확성이 중요함을 강조합니다.
하지만 Llama 2가 완전한 오픈 소스는 아니더라도, OpenAI, Google 및 생성형 AI 분야의 다른 주요 기업들이 만든 폐쇄형 모델보다 훨씬 더 많은 유연성을 갖춘 매력적인 모델을 개발자들에게 제공합니다.
Llama 2 아키텍처
Llama 2-Chat의 학습 과정은 최적의 성능과 개선을 보장하기 위해 여러 단계로 이루어집니다:
사전 학습: Llama 2는 기초 지식과 언어 이해를 확립하기 위해 공개적으로 이용 가능한 온라인 소스를 사용하여 사전 학습을 거칩니다.
지도 파인튜닝: Meta 팀은 지도 파인튜닝을 통해 Llama 2-Chat의 초기 버전을 만들었으며, 여기서 모델은 대화 능력을 향상시키기 위해 라벨이 지정된 데이터로부터 학습합니다.
인간 피드백을 통한 강화 학습 (RLHF): 모델은 주로 거부 샘플링과 Proximal Policy Optimization (PPO)을 통해 RLHF 방법론을 사용하여 반복적으로 개선됩니다. 이 단계는 대화 품질을 향상시키기 위해 인간 피드백과의 지속적인 상호작용을 포함합니다.
반복적 보상 모델링: RLHF 단계 전반에 걸쳐 모델 개선과 병행하여 반복적 보상 모델링 데이터 축적이 이루어집니다. 반복적 보상 모델링은 보상 모델이 분포 내에 유지되도록 하여 모델의 대화 능력을 지속적으로 향상시키는 데 기여합니다.
이러한 단계를 통합함으로써 Llama 2-Chat의 학습은 사용자 피드백에 적응하고 보상 모델과의 정렬을 유지하면서 견고한 대화 성능을 달성하는 것을 목표로 합니다.
머신 러닝에서 임베딩이란 무엇인가?
머신 러닝에서 임베딩은 단어, 이미지 또는 엔터티와 같은 객체를 연속 벡터 공간에서 학습된 표현으로 나타내는 것을 의미합니다. 이러한 임베딩은 객체 간의 의미적 관계와 유사성을 포착하여 계산 작업에 더 적합하게 만듭니다. 자연어 처리 (NLP)에서 예를 들어 단어 임베딩은 어휘의 단어를 고차원 공간의 밀집 벡터로 매핑하며, 이 공간에서 유사한 단어들은 서로 가까이 위치합니다.
Llama 2에서 임베딩은 자연어를 이해하고 생성하는 데 중요한 역할을 합니다. Llama 2는 임베딩을 사용하여 단어, 구문 또는 전체 문장을 연속 벡터 공간에서 표현합니다. Llama 2는 의미적 관계와 뉘앙스를 포착하면서 언어 입력과 출력을 임베딩함으로써 텍스트를 효과적으로 처리하고 생성할 수 있습니다.
예를 들어, Llama 2는 학습 과정에서 훈련에 사용되는 방대한 텍스트 코퍼스로부터 단어와 구문에 대한 임베딩을 학습합니다. 이러한 임베딩은 언어에 대한 의미 정보를 인코딩하여, Llama 2가 질의나 프롬프트에 대해 일관된 응답을 이해하고 생성할 수 있게 합니다.
Llama 2에서 사용되는 것을 포함한 머신 러닝의 임베딩은 언어와 기타 데이터를 구조화되고 의미적으로 유의미한 방식으로 표현하도록 해 주며, 자연어의 효과적인 처리, 이해 및 생성을 가능하게 합니다.
Llama 2를 사용하는 방법?
Llama 2를 효과적으로 사용하려면, 권한이 갖춰져 있는지 확인하면서 제공된 인터페이스 또는 API를 통해 모델에 접근하세요. 텍스트, 이미지 또는 호환 가능한 형식 등 입력 데이터를 준비하고 필요에 따라 전처리하세요. 텍스트 생성이나 요약과 같은 Llama 2의 작업을 지정하세요. 전처리된 데이터를 Llama 2에 입력하고, 출력을 가져온 뒤, 그 품질을 평가하세요. 결과를 최적화하기 위해 다양한 형식과 구성을 실험해 보세요. 정확도와 속도 같은 성능 지표를 모니터링하고, 피드백을 바탕으로 전략을 조정하세요. 효과를 극대화하기 위해 개선 사항을 계속 업데이트하여, 프로젝트와 애플리케이션의 새로운 가능성을 열어 보세요. RAG 애플리케이션을 구축할 때 LangChain, LlamaIndex, Semantic Kernel 같은 도구와 함께 Llama 2를 사용할 수도 있습니다.
Llama 2 성능
전반적인 성능은 몇 가지 인기 있는 종합 벤치마크를 살펴봄으로써 확인할 수 있습니다. 다음은 LLama 2 논문에 언급된 오픈 소스 기반 모델과 비교한 성능 결과 표입니다:
| 모델 | 크기 | 코드 | 상식 추론 | 세계 지식 | 독해 | 수학 | MMLU | BBH | AGI Eval |
| MPT | 7B | 20.5 | 57.4 | 41.0 | 57.5 | 4.9 | 26.8 | 31.0 | 23.5 |
| 30B | 28.9 | 64.9 | 50.0 | 64.7 | 9.1 | 46.9 | 38.0 | 33.8 | |
| Falcon | 7B | 5.6 | 56.1 | 42.8 | 36.0 | 4.6 | 26.2 | 28.0 | 21.2 |
| 40B | 15.2 | 69.2 | 56.7 | 65.7 | 12.6 | 55.4 | 37.1 | 37.0 | |
| Llama 1 | 7B | 14.1 | 60.8 | 46.2 | 58.5 | 6.95 | 35.1 | 30.3 | 23.9 |
| 13B | 18.9 | 66.1 | 52.6 | 62.3 | 10.9 | 46.9 | 37.0 | 33.9 | |
| 33B | 26.0 | 70.0 | 58.4 | 67.6 | 21.4 | 57.8 | 39.8 | 41.7 | |
| 65B | 30.7 | 70.7 | 60.5 | 68.6 | 30.8 | 63.4 | 43.5 | 47.6 | |
| Llama 2 | 7B | 16.8 | 63.9 | 48.9 | 61.3 | 14.6 | 45.3 | 32.6 | 29.3 |
| 13B | 24.5 | 66.9 | 55.4 | 65.8 | 28.7 | 54.8 | 39.4 | 39.1 | |
| 33B | 27.8 | 69.9 | 58.7 | 68.0 | 24.2 | 62.6 | 44.1 | 43.4 | |
| 65B | 37.5 | 71.9 | 63.6 | 69.4 | 35.2 | 68.9 | 51.2 | 54.2 |
Llama 2가 MMLU와 BBH 같은 여러 범주에서 Llama 1보다 뛰어나며, Falcon 모델과 비교해도 좋은 성능을 보인다는 것을 알 수 있습니다.
Llama 2 vs GPT 4
Llama 2 논문은 아래와 같이 Llama 2와 GPT 4 및 몇 가지 다른 모델과의 비교도 다룹니다:
| 벤치마크 (샷) | GPT-3.5 | GPT-4 | PaLM | PaLM-2-L | Llama 2 |
| MMLU (5샷) | 70.0 | 86.4 | 69.3 | 78.3 | 68.9 |
| TriviaQA (1샷) | — | — | 81.4 | 86.1 | 85.3 |
| Natural Questions (1샷) | — | — | 29.3 | 37.5 | 33.0 |
| GSM8K (8샷) | 57.1 | 92.0 | 56.5 | 80.7 | 56.8 |
| HumanEval (0샷) | 48.1 | 67.0 | 26.2 | — | 29.9 |
| BIG-Bench Hard (3샷) | — | — | 52.3 | 65.7 | 51.2 |
- MMLU (5-shot): 모델이 응답을 생성하기 위해 5개의 지문 또는 예시를 제공받습니다.
- TriviaQA (1-shot): 모델이 답변을 생성하기 전에 단일 컨텍스트 또는 질문을 제공받는 데이터셋입니다.
- Natural Questions (1-shot): 모델이 하나의 질문을 입력으로 제공받는 또 다른 데이터셋입니다.
- GSM8K (8-shot): 모델이 질문에 답하거나 작업을 수행하기 위해 8개의 지문 또는 예시를 제공받는 데이터셋입니다.
- HumanEval (0-shot): 모델이 명시적으로 학습되지 않은 작업이나 질문에서 평가되는 데이터셋 또는 평가 설정이며, 따라서 "0-shot"이라고 합니다.
Zilliz는 Llama 2와 함께 작동하나요?
Llama 2와 함께 Zilliz Cloud를 사용하는 가장 일반적인 사례는 Retrieval Augmented Generation (RAG) 애플리케이션의 개발입니다. RAG 애플리케이션은 Llama 2와 같은 large language models (LLMs)의 기능을 활용합니다. 이러한 모델은 방대한 데이터셋으로 학습되지만 본질적으로 유한한 데이터의 범위 내에서 작동합니다. Llama 2 자체만으로는 "환각" 응답을 생성하는 경향이 있어, 충분한 맥락이나 정확한 정보가 없을 때도 답변을 생성할 수 있습니다. RAG는 이러한 환각을 해결하는 한 가지 방법입니다.
Zilliz Cloud와 Llama 2의 결합을 통해 사용자는 고급 언어 이해 및 생성 기능을 Zilliz Cloud가 제공하는 효율적이고 확장 가능한 벡터 기반 검색 시스템과 원활하게 통합할 수 있습니다. 두 플랫폼의 강점을 활용함으로써 개발자는 포괄적인 언어 처리, 정보 검색 및 생성 기능이 필요한 작업에서 뛰어난 정교한 애플리케이션을 만들 수 있습니다.


