Code Llama¶
개요¶
- 출시일: 2023년 8월 24일 (7B, 13B, 34B), 2024년 1월 29일 (70B)
- 개발사: Meta AI
- 오픈소스 특징: Llama 2 기반 코드 특화 모델. 코드 생성, 완성, 디버깅에 최적화
사양¶
| 사이즈 | 파라미터 | Context Length | 학습 토큰 |
|---|---|---|---|
| 7B | 7B | 100K | 500B |
| 13B | 13B | 100K | 500B |
| 34B | 34B | 100K | 500B |
| 70B | 70B | 100K | 1T |
기술 상세¶
- 기반 모델: Llama 2
- 아키텍처: Transformer (auto-regressive)
- 학습 데이터: 코드 및 코드 관련 자연어 데이터
- 지원 언어: Python, C++, Java, PHP, JavaScript, C#, TypeScript, Bash 등
모델 변형¶
| 변형 | 설명 | 사이즈 |
|---|---|---|
| Code Llama | 범용 코드 모델 | 7B, 13B, 34B, 70B |
| Code Llama - Python | Python 특화 | 7B, 13B, 34B, 70B |
| Code Llama - Instruct | Instruction 튜닝 | 7B, 13B, 34B, 70B |
라이선스¶
- 라이선스 유형: Llama 2 Community License Agreement
- 상업적 사용: 허용
- 제한 조건: 월간 활성 사용자(MAU) 7억 명 이상인 서비스의 경우 Meta로부터 별도 라이선스 필요
주요 특징¶
- 100K 토큰의 긴 컨텍스트 지원
- Fill-in-the-Middle (FIM) 코드 완성 기능
- Python 특화 버전 제공
- Instruction following 버전 별도 제공
- 다양한 프로그래밍 언어 지원
- 코드 생성, 완성, 설명, 디버깅 가능
벤치마크 성능¶
| 벤치마크 | 7B | 13B | 34B | 70B |
|---|---|---|---|---|
| HumanEval (pass@1) | 33.5 | 36.0 | 48.8 | 53.0 |
| MBPP (pass@1) | 41.4 | 47.0 | 55.0 | 59.6 |
| MultiPL-E Python | 38.4 | 43.3 | 53.7 | 57.3 |
Python 특화 버전 성능¶
| 벤치마크 | 7B | 13B | 34B | 70B |
|---|---|---|---|---|
| HumanEval (pass@1) | 38.4 | 43.3 | 53.7 | 57.3 |
장점¶
- 100K 토큰으로 대규모 코드베이스 처리 가능
- FIM 기능으로 IDE 통합에 적합
- 무료 상업적 사용 가능
- Python 특화 버전의 우수한 성능
- 다양한 사이즈로 유연한 배포
- Instruct 버전으로 자연어 지시 이해
단점/한계¶
- 34B 모델은 FIM/Infill 미지원
- GPT-4 Turbo, Claude 3 대비 성능 격차
- 최신 프로그래밍 패러다임/라이브러리 지식 부족
- 복잡한 시스템 설계 능력 제한
- 보안 취약점이 있는 코드 생성 가능성
- 테스트 코드 생성 품질 불안정
다운로드/사용¶
HuggingFace¶
- Base: https://huggingface.co/codellama/CodeLlama-7b-hf
- Python: https://huggingface.co/codellama/CodeLlama-7b-Python-hf
- Instruct: https://huggingface.co/codellama/CodeLlama-7b-Instruct-hf
- (13B, 34B, 70B 각각 동일 패턴으로 제공)
Meta 공식¶
- https://www.llama.com/
- https://ai.meta.com/llama/
클라우드 서비스¶
- Amazon Bedrock
- Azure AI
- Together AI
- Perplexity Labs
참고 자료¶
- Meta AI 공식 블로그: https://ai.meta.com/blog/code-llama-large-language-model-coding/
- Code Llama 논문: https://arxiv.org/abs/2308.12950
- GitHub: https://github.com/meta-llama/codellama
- 모델 카드: https://www.llama.com/docs/model-cards-and-prompt-formats/meta-code-llama-70b/