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 각각 동일 패턴으로 제공)
- 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/