Code llama: Open foundation models for code

저자: Baptiste Rozière, Jonas Gehring, Fabian Gloeckle, Sten Sootla, Itai Gat, Xiaoqing Tan, Yossi Adi, Jingyu Liu, Tal Remez, J. Rapin, Artyom Kozhevnikov, I. Evtimov, Joanna Bitton, Manish P Bhatt, Cristian Canton Ferrer, Aaron Grattafiori, Wenhan Xiong, Alexandre D'efossez, Jade Copet, Faisal Azhar | 날짜: 2023 | DOI: -


Essence

Figure 2: Code Llama 특화 파이프라인. 다양한 미세조정(fine-tuning) 단계를 거쳐 기반 모델에서 Instruct 모델로 발전

Code Llama는 Llama 2 기반의 오픈소스 코드 생성 대규모언어모델(Large Language Model, LLM) 계열로, 코드 인필링(infilling), 장문맥 처리, 명령어 추종 능력을 갖춘 차세대 코드 생성 모델이다. 7B부터 70B 파라미터까지 4가지 크기의 모델과 3가지 변형(기본, Python 특화, Instruct)을 제공하며, 공개 모델 중 최고 수준의 성능을 달성한다.

Motivation

Achievement

Figure 1: Code Llama-Instruct(34B) 모델의 Bash 명령어 쿼리 응답 예시. 자연어 질문을 파싱하여 적절한 옵션을 제시하고 해설을 제공
  1. 벤치마크 성능: HumanEval에서 최고 67%, MBPP에서 65% 달성(공개 모델 기준 최우수). Code Llama-Python 7B가 Llama 2 70B를 HumanEval과 MBPP에서 초과. MultiPL-E(다언어) 벤치마크에서 모든 공개 모델 초과.
  2. 모델 다양성: 기본 모델(Code Llama), Python 특화 모델(Code Llama-Python), 명령어 추종 모델(Code Llama-Instruct)로 상이한 사용 사례 커버. 7B, 13B, 34B, 70B 크기로 배포 확장성 제공.
  3. 핵심 기능: 인필링 가능 모델(7B, 13B, 70B)은 문서 중간의 코드 완성 지원. 최대 100K 토큰까지 처리 가능(16K 학습 후 fine-tuning). 자동생성 지도 데이터로 안전성과 진실성 개선.

How

Figure 2: Code Llama 특화 파이프라인. 기초 모델에서 출발하여 코드 학습(500B 토큰), 인필링, Python 특화(100B), 장문맥 미세조정, 명령어 미세조정(~5B) 단계 거침

Originality

Limitation & Further Study

Evaluation

총평: Code Llama는 체계적인 다단계 특화 전략으로 공개 코드 생성 LLM의 실용성과 성능을 동시에 달성한 견고한 연구이다. 특히 인필링과 장문맥 지원, 다양한 모델 가족으로 실제 개발 환경의 요구사항에 부응하는 점이 핵심 강점이며, 상업용 라이선스 공개를 통해 산업 활용도 높다.

같이 보면 좋은 논문

기반 연구
Code Llama와 같은 오픈소스 코드 생성 모델이 MLGym에서 AI 연구 에이전트 훈련의 핵심 기반 기술이다.
기반 연구
코드 생성 언어모델의 기초 연구에서 자율적 데이터 큐레이션까지의 발전 과정을 이해할 수 있다
기반 연구
오픈소스 코드 생성 모델이 AI-Researcher의 알고리즘 구현 단계에서 필수적인 기반 기술을 제공한다.
기반 연구
Code Llama와 같은 코드 생성 모델이 AI-Researcher의 알고리즘 구현 자동화에 핵심적인 기반 기술을 제공한다.
다른 접근
코드 생성을 위한 대규모 언어모델 접근법에서 Meta의 Code Llama와 비교 분석할 수 있다
후속 연구
과학자가 큐레이션한 코딩 벤치마크가 Code Llama의 과학 연구 분야 적용 성능을 평가하고 개선한다.
응용 사례
Code Llama의 코드 생성 능력이 MLGym에서 AI 연구 에이전트 훈련을 위한 핵심 구성요소로 활용된다.
← 목록으로 돌아가기