Llama 3.1 출시 노트: 다국어 지원, 긴 컨텍스트 및 405B 모델
Meta는 8B 및 70B 버전과 함께 거대한 405B 파라미터 밀집(dense) 모델을 도입한 Llama 제품군의 새로운 버전인 Llama 3.1을 출시했습니다. 이번 출시는 컨텍스트 윈도우를 128K 토큰으로 확장하고, 네이티브 다국어 지원을 추가하며, 모델 출력을 사용하여 다른 LLM을 개선하는 것을 허용하도록 라이선스를 업데이트했다는 점에서 매우 중요합니다.
모델 변체 및 핵심 역량
Llama 3.1은 3개의 베이스 모델과 5개의 미세 조정(fine-tuned) 변체를 포함하여 8개의 오픈 웨이트(open-weight) 모델로 구성됩니다. 모든 모델은 128K 토큰의 컨텍스트 길이를 지원하며 영어, 독일어, 프랑스어, 이탈리아어, 포르투갈어, 힌디어, 스페인어, 태국어 등 8개 언어를 처리할 수 있습니다.
생성 모델
- Llama 3.1 8B: 소비자용 GPU에서의 효율적인 배포 및 개발에 최적화되었습니다.
- Llama 3.1 70B: 대규모 AI 네이티브 애플리케이션을 위해 설계되었습니다.
- Llama 3.1 405B: 합성 데이터 생성, 지식 증류(distillation) 및 "LLM as a Judge" 역할을 목적으로 하는 매우 큰 밀집 모델입니다.
각 크기는 베이스(사전 학습) 버전과 지시 미세 조정(instruct-tuned) 버전 모두에서 제공됩니다.
안전 및 분류 모델
- Llama Guard 3: 위험 분류 체계에 따라 LLM 입력과 응답을 분류하도록 Llama 3.1 8B를 기반으로 미세 조정된 보호 모델입니다. 128K 컨텍스트 길이를 지원하며 다국어를 지원합니다.
- Prompt Guard: 프롬프트 인젝션 및 탈옥(jailbreaking) 시도를 탐지하도록 설계된 279M 파라미터의 BERT 기반 분류기입니다.
기술 사양 및 학습
Llama 3.1 모델은 총 39.3M GPU 시간의 커스텀 GPU 클러스터를 사용하여 15조 개 이상의 토큰으로 학습되었습니다. 학습 세부 사항은 다음과 같습니다:
- 8B: 1.46M GPU 시간
- 70B: 7.0M GPU 시간
- 405B: 30.84M GPU 시간
Llama 3.1 Instruct 모델은 공개된 데이터셋과 지도 미세 조정(SFT) 및 인간 피드백 기반 강화 학습(RLHF)을 통한 2,500만 개 이상의 합성 생성 예시를 사용하여 지시 이행에 최적화되었습니다.
메모리 및 하드웨어 요구 사항
Llama 3.1을 실행하려면 모델 크기와 정밀도에 따라 달라지는 상당한 양의 VRAM이 필요합니다.
추론 메모리 (체크포인트 로딩)
| 모델 크기 | FP16 | FP8 | INT4 |
|---|---|---|---|
| 8B | 16 GB | 8 GB | 4 GB |
| 70B | 140 GB | 70 GB | 35 GB |
| 405B | 810 GB | 405 GB | 203 GB |
KV 캐시 메모리 (FP16)
컨텍스트 길이가 길어짐에 따라 KV 캐시는 중요한 메모리 요소가 됩니다. 128K 토큰의 경우 메모리 요구 사항은 다음과 같습니다:
- 8B: 15.62 GB
- 70B: 39.06 GB
- 405B: 123.05 GB
학습 메모리 (추정치)
| 모델 크기 | Full Fine-tuning | LoRA | Q-LoRA |
|---|---|---|---|
| 8B | 60 GB | 16 GB | 6 GB |
| 70B | 500 GB | 160 GB | 48 GB |
| 405B | 3.25 TB | 950 GB | 250 GB |
도구 사용 및 프롬프팅
Llama 3.1 Instruct 모델은 에이전트 활용 사례를 위해 미세 조정되었으며 도구 호출(tool calling)을 지원합니다.
내장 도구 호출
시스템 프롬프트에 Environment: ipython을 포함하면 모델이 코드 인터프리터 모드를 활성화합니다. <|python_tag|> 및 <|eom_id|> 구분자를 사용하여 Python 코드를 생성할 수 있습니다. 내장 도구에는 brave_search, wolfram_alpha, code_interpreter가 포함됩니다.
커스텀 도구 호출
모델은 커스텀 JSON 함수 호출을 지원합니다. 도구가 호출되면 모델은 함수 이름과 매개변수를 JSON 형식으로 출력합니다. 도구의 응답은 <|python_tag|> 구분자를 사용하여 모델로 다시 전달되어 최종 답변을 생성합니다.
라이선스 및 합성 데이터
Llama 3.1은 이전 버전보다 더 허용적인 라이선스를 특징으로 합니다. 주요 변경 사항은 모델 출력을 사용하여 다른 LLM을 개선하는 것을 명시적으로 허용한다는 점입니다. 이를 통해 합성 데이터 생성 및 지식 증류가 가능해져, 405B 모델이 더 작고 특화된 LLM을 위한 교사(teacher) 모델로서 특히 가치 있게 만들어줍니다.
생태계 통합
Llama 3.1은 transformers >= 4.43.2를 통해 Hugging Face 생태계에 통합되었습니다.
- 양자화(Quantization): 405B 모델에 대해 8xH100 GPU에서 실행할 수 있도록 공식 FP8 양자화 가중치가 제공됩니다. 추가적인 AWQ 및 GPTQ INT4 변체는 메모리 추가 절감을 위해 Hugging Face에서 제공합니다.
- 배포: Hugging Face Inference API (PRO 사용자용), Inference Endpoints, 그리고 AWS, Google Cloud, Microsoft Azure, DELL을 포함한 파트너를 통해 지원됩니다.