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 のスコアを達成しました。Chat バージョンの CodeQwen1.5-Chat は HumanEval 0-shot で 83.5、MBPP 0-shot で 77.7 を記録し、DeepSeek-Coder-Instruct (6.7B) をいくつかのカテゴリで上回っています。

Python 以外でも、モデルは MultiPL-E によって評価された主要な8言語、すなわち 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 スイートを使用し、モデルはデバッグ、翻訳、言語切替、コードポリッシュの4つの側面で評価されました。その結果、CodeQwen1.5 は 70億パラメータ規模のモデルにおいて最先端(SOTA)の性能を達成していることが示されました。

テキストからSQLへの機能

CodeQwen1.5-Chat は自然言語を SQL クエリに変換する高い熟練度を示し、プログラミング未経験者がデータベースとやり取りするためのツールとして位置付けられます。

DIN-SQL プロンプト手法を Spider と Bird ベンチマークで使用した結果、CodeQwen1.5-Chat は2位にランクインし、GPT-4 に近い位置にあります。Qwen チームは、この性能は事前学習およびファインチューニングの両段階でスケーラブルで検証可能、かつ多様な合成データを使用したことに起因すると述べています。

技術仕様

  • Model Size: 70億パラメータ。
  • Pre-training Data: 約3兆トークンのコード関連データ。
  • Language Support: 92 のプログラミング言語。
  • Context Window: 64K トークン。

Sources