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
- OriginalCode with CodeQwen1.5