1. 논문 정보

  • 제목: Code Llama: Open Foundation Models for Code
  • 저자: Baptiste Roziere et al
  • doi: https://doi.org/10.48550/arXiv.2310.08879
  • 키워드: LLM, Generative AI

2. 요약

이 논문은 Meta에서 개발한 Llama2를 기반으로 한 코드용 LLM인 Code Llama를 출시하며 발표되었다. 세 가지 모델(그림 2 참조)을 제안하며, 첫 번째 모델은 Llama 2를 기반으로 한 Code Llama, 두 번째 모델은 파이썬 코드 생성에 특화된 Code Llama-Python, 그리고 세 번째는 명령 수행 모델인 Code Llama-Instruct로, 각각 7B, 13B, 34B의 매개변수를 가진다. 특히 Code Llama-Python 7B는 HumanEval과 MBPP에서 Llama2 70B를 초과하는 성능을 보였다. (제 연구에서 GPT 파인튜닝을 위한 충분한 데이터 생성 목적으로 Llama를 사용할 예정이기에 파이썬 코드 리뷰에 초점을 맞춰 Code Llama-Python을 리뷰했습니다.)

그림입니다. 원본 그림의 이름: CLP000043e40001.bmp 원본 그림의 크기: 가로 1427pixel, 세로 328pixel

Code Llama-Python은 파이썬 코드 생성에 특화된 모델로, 7B, 13B, 34B의 매개변수를 가진다. 범용 목적으로 개발된 Llama2에 비해 단일 프로그래밍 언어에 특화하기 위해 대량의 파이썬 데이터셋(표 1)을 사용하여 훈련된 모델이다. Code Llama-Python 모델은 채우기(Infilling) 기능을 제공하지 않으며, 대용량 컨텍스트 처리를 지원한다.

그림입니다. 원본 그림의 이름: CLP000043e40003.bmp 원본 그림의 크기: 가로 1416pixel, 세로 515pixel

대용량 입력 컨텍스트 처리를 위한 Long Context Fine-Tuning(LCFT) 전략은 Transformer 기반 언어 모델링에서 긴 시퀀스를 효과적으로 다루기 위해 제안된 방법이다. 기존 Llama2와 초기 코드 훈련 단계에서 사용된 4,096 토큰에서 16,384 토큰으로 시퀀스 길이를 증가시키는 LCFT 단계를 도입했다. 이를 통해 모델은 긴 범위의 능력을 획득하면서도 훈련 비용을 크게 증가시키지 않았다. 이 전략은 Chen et al. (2023b)가 제안한 주파수를 선형적으로 축소하는 대신, 기본 주기를 10,000에서 1,000,000으로 증가시켜 훨씬 더 긴 시퀀스를 처리할 수 있게 했다. 실험을 통해 Code Llama 모델이 LCFT 중 사용된 시퀀스 길이 내에서만 효과적인 것이 아니라, 100,000 토큰까지의 매우 긴 시퀀스에서도 안정적인 동작을 보였음을 확인했다.


3. 결론

그림입니다. 원본 그림의 이름: CLP000043e40004.bmp 원본 그림의 크기: 가로 912pixel, 세로 679pixel

Llama 2 70B 모델은 파이썬 코딩 벤치마크에서 Code Llama 7B와 비슷한 성능을 보인다. 전체 파이썬 데이터셋을 포함한 코드 데이터셋에서 2 에폭 이상 훈련된 Code Llama에도, 파이썬 중심의 데이터에서 추가로 100B 토큰을 훈련한 Code Llama-Python은 파이썬 코드 생성 벤치마크에서 상당한 성능향상을 이끌어 냈다. 이 향상은 초기 코드 훈련 단계에 비해 작지만, Code Llama-Python 7B를 MBPP와 HumanEval에서 Code Llama 13B를 초과하는 성능으로 이끌었다.


4. 느낀점

Code Llama에 대해 더 알고자 여러 블로그 리뷰를 참조했습니다. LCFT 전략을 포함한 Transformer 기반 모델이 주목받으면서, 새로운 모델 아키텍처의 연구보다는 대규모 데이터셋과 컴퓨팅 리소스를 활용한 학습 성능 경쟁의 시대가 도래했음을 알게 되었습니다. 이로 인해 빅테크 기업들이 소규모 기업이나 대학 연구실이 따라잡기 어려운 기술적 장벽을 만들어가고 있습니다. Code Llama는 작으나 강력한 모델로, 기존 모델들과 비교해 목적에 맞는 대규모 학습 데이터셋으로 작은 모델을 훈련시켜 성능을 향상시킬 수 있음을 보여주었습니다. 이는 GPT와 Llama 모델의 장점과 차이점을 이해하는 데 도움이 되었습니다. Llama와 같은 소규모이지만 강력한 오픈소스 모델은 컴퓨팅 리소스가 제한된 환경에서도 우수한 성능의 모델을 개발할 수 있는 기회를 제공합니다. 이러한 이유로 제 연구에서도 GPT 파인튜닝을 위한 사용자의 잘못된 코드 데이터 생성에 대한 큰 기대를 하고 있습니다.

댓글남기기