CodeQwen1.5 릴리스 노트

TL;DR

Qwen은 Qwen1.5 계열을 기반으로 구축된 70억 파라미터의 특화된 오픈소스 코드 LLM인 CodeQwen1.5-7B를 소개했습니다. 이 모델은 92개의 프로그래밍 언어를 지원하고 64K 토큰 컨텍스트 윈도우를 제공하며, 코드 생성, 디버깅, SQL 작업에서 더 큰 상용 모델에 맞서는 경쟁력 있는 성능을 보여줍니다.

기본 코드 생성 기능

CodeQwen1.5-7B는 기본 코드 생성에서 오픈소스 모델과 GPT-4와 같은 상용 시스템 간의 격차를 좁힙니다. HumanEval와 MBPP를 사용한 평가에서 이 모델은 CodeLlama-Base, StarCoder2, DeepSeek-Coder-Base와 같은 다른 7B 규모 오픈소스 모델보다 우수한 성능을 보였습니다.

벤치마크 성능

제공된 데이터에 따르면 CodeQwen1.5-7B (Base)는 HumanEval 0-shot에서 51.8점, MBPP 0-shot에서 72.2점을 기록했습니다. 챗 버전인 CodeQwen1.5-Chat은 HumanEval 0-shot에서 83.5점, MBPP 0-shot에서 77.7점을 달성했으며, 여러 카테고리에서 DeepSeek-Coder-Instruct (6.7B)를 능가했습니다.

Python을 넘어, 이 모델은 MultiPL-E를 통해 평가된 여덟 가지 주요 언어인 Python, C++, Java, PHP, TypeScript, C#, Bash, JavaScript에 능숙합니다.

장기 컨텍스트 이해 및 생성

CodeQwen1.5는 입력 길이를 최대 64K 토큰까지 지원하며, 이는 사전 학습 중에 레포지토리 수준의 장기 시퀀스 코드 데이터를 통합함으로써 개발된 기능입니다. 이를 통해 모델은 레포지토리 수준의 코드를 더 잘 이해하고 코드 에이전트로 기능할 수 있습니다.

장기 컨텍스트 평가

  • Perplexity (PPL): 2024-03-28 기준 GitHub Trending 레포지토리에서 테스트한 결과, 시퀀스 길이가 증가함에 따라 CodeQwen1.5의 퍼플렉시티가 감소하는 추세를 유지함을 보여주었습니다.
  • Needle in the Code: 맞춤 함수를 Megatron 코드베이스에 삽입하는 합성 작업에서, 모델은 64k 길이 범위에 걸쳐 해당 함수를 성공적으로 복제했습니다.
  • SWE Bench: 실제 소프트웨어 개발 벤치마크에서 CodeQwen1.5는 0.89점을 기록했으며, Qwen 팀은 이 점수가 ChatGPT-3.5를 능가한다고 언급했습니다.

코드 편집 및 디버깅

CodeQwen1.5는 단순 생성 이상의 코드 수정 작업을 처리하도록 설계되었습니다. CodeEditorBench 스위트를 사용해 모델은 디버깅, 번역, 언어 전환, 코드 다듬기 네 가지 차원에서 평가되었습니다. 결과는 CodeQwen1.5가 70억 파라미터 규모 모델 중 최첨단(SOTA) 성능을 달성함을 보여줍니다.

텍스트‑투‑SQL 기능

CodeQwen1.5-Chat은 자연어를 SQL 쿼리로 변환하는 높은 숙련도를 보여주며, 비프로그래머가 데이터베이스와 상호작용할 수 있는 도구로 자리매김합니다.

Spider와 Bird 벤치마크에서 DIN‑SQL 프롬프트 방식을 사용한 결과, CodeQwen1.5-Chat은 2위를 차지해 GPT‑4에 근접했습니다. Qwen 팀은 이 성능이 사전 학습 및 파인튜닝 단계 모두에서 확장 가능하고 검증 가능하며 다양한 합성 데이터를 활용한 덕분이라고 설명합니다.

기술 사양

  • Model Size: 70억 파라미터.
  • Pre-training Data: 약 3조 토큰의 코드 관련 데이터.
  • Language Support: 92개의 프로그래밍 언어.
  • Context Window: 64K 토큰.

Sources