콘텐츠로 이동

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/