Qwen2.5-Coder は、Alibaba Cloud の最新のコードタスクに最適化された大規模言語モデル (LLM) シリーズであり、CodeQwen としても知られています。このシリーズには、0.5B、1.5B、3B、7B、14B、32B の 6 つのモデルサイズが含まれており、開発者チームの多様なニーズをサポートします。大規模なコードデータセットでトレーニングされた Qwen2.5-Coder は、強力な数学および推論能力を維持しながら、コード関連シナリオでのパフォーマンスを大幅に向上させます。PAI はこのモデルシリーズを完全にサポートしています。このトピックでは、Qwen2.5-Coder-32B-Instruct モデルを使用して、モデルギャラリーでモデルをデプロイ、ファインチューニング、評価、圧縮する方法を説明します。
概要
Qwen2.5-Coder は、Alibaba Cloud がリリースした高性能コーディングモデルです。最大 128K トークンのコンテキスト長をサポートし、92 のプログラミング言語に対応しています。このモデルは、多言語コード生成、コード補完、コード修復など、複数のコードタスクに優れています。Qwen2.5-Coder をベースに、Alibaba Cloud は命令チューニングを通じて Qwen2.5-Coder-Instruct をリリースしました。このバージョンは、タスクパフォーマンスをさらに向上させ、強力な汎化能力を発揮します。
-
多言語コーディングサポート
Qwen2.5-Coder-Instruct は、卓越した多言語コーディング能力を提供します。ニッチな言語を含む 40 以上のプログラミング言語をカバーする広範な評価ベンチマークである McEval では、多言語タスク全体で高いパフォーマンスを示しています。
-
コード推論
Qwen2.5-Coder-Instruct は、コード推論タスクで非常に優れたパフォーマンスを発揮します。CRUXEval をベンチマークとして使用すると、このモデルは堅牢な推論能力を示します。コード推論が向上するにつれて、複雑な命令の実行パフォーマンスも向上します。これは、コード能力が一般的な推論にどのように影響するかについて、新しい洞察を提供します。
-
数学的能力
Qwen2.5-Coder-Instruct は、数学とコードの両方のタスクに優れています。数学はコーディングの基礎であるため、両方の分野で高いパフォーマンスを発揮することは、確かな科学技術的能力を反映しています。
-
コア機能
一般的な能力評価において、Qwen2.5-Coder-Instruct は Qwen2.5 の強みを維持しています。これは、多くのタスクにわたるその幅広い適用性と安定性を裏付けています。
これらの特徴により、Qwen2.5-Coder シリーズは多言語開発や複雑なタスク処理のための強力なツールとなっています。
環境要件
-
現在、この例はモデルギャラリーモジュールを使用して、次のリージョンで実行できます:中国 (北京)、中国 (上海)、中国 (深セン)、中国 (杭州)、中国 (ウランチャブ)、シンガポール。
-
リソース要件:
モデルサイズ
リソース要件
Qwen2.5-Coder-0.5B/1.5B
-
トレーニング:T4、P100、V100 など、少なくとも 16 GB の VRAM を搭載した GPU を使用します。
-
デプロイ:最小 GPU はシングル P4 です。推奨 GPU には、シングル GU30、A10、V100、または T4 が含まれます。
Qwen2.5-Coder-3B/7B
-
トレーニング:A10 や T4 など、少なくとも 24 GB の VRAM を搭載した GPU を使用します。
-
デプロイ:最小 GPU はシングル P100、T4、または V100 (gn6v) です。推奨 GPU には、シングル GU30 または A10 が含まれます。
Qwen2.5-Coder-14B
-
トレーニング:V100 など、少なくとも 32 GB の VRAM を搭載した GPU を使用します。
-
デプロイの場合、最小カード構成はシングルカード L20、シングルカード GU60、デュアルカード GU30 です。推奨されるデプロイモデルは、デュアルカード GU60 とデュアルカード L20 です。
Qwen2.5-Coder-32B
-
トレーニング:A800 や H800 など、少なくとも 80 GB の VRAM を搭載した GPU を使用します。
-
デプロイ:最小構成は、GU60 GPU 2 基、L20 GPU 2 基、または A10 GPU 4 基です。推奨構成には、GU60 GPU 4 基、L20 GPU 4 基、または V100-32G GPU 8 基が含まれます。
-
PAI-Model Gallery でのモデルの使用
モデルのデプロイと呼び出し
-
モデルギャラリーページに移動します。
-
PAI コンソールにログインします。
-
左上のコーナーで、ご利用のリージョンを選択します。
-
左側のナビゲーションウィンドウで、[Workspaces] をクリックし、ご利用のワークスペース名をクリックします。
-
左側のナビゲーションウィンドウで、[クイックスタート] > [モデルギャラリー] をクリックします。
-
-
モデルギャラリーページの右側にあるモデルリストで、Qwen2.5-Coder-32B-Instruct モデルカードをクリックして、モデル詳細ページを開きます。
-
右上のコーナーで [デプロイ] をクリックします。デプロイ方法、推論サービス名、リソース設定を構成します。モデルは EAS 推論サービスプラットフォームにデプロイされます。このソリューションでは、デプロイ方法として [vLLM 高速化デプロイ] を設定します。
-
推論サービスを使用します。
デプロイが成功したら、モデル詳細ページに表示されている推論メソッドを使用してモデルサービスを呼び出し、そのパフォーマンスを検証します。

モデルのファインチューニング
モデルギャラリーには、Qwen2.5-Coder-32B-Instruct モデル用の教師ありファインチューニング (SFT) および直接プリファレンス最適化 (DPO) アルゴリズムが組み込まれています。モデルをそのままファインチューニングできます。
SFT 教師ありファインチューニング
SFT トレーニングアルゴリズムは、JSON 形式の入力を受け入れます。各サンプルには、"instruction" フィールドと "output" フィールドで表される命令と出力が含まれます。例:
[
{
"instruction": "Create a function to calculate the sum of a sequence of integers.",
"output": "# Python code\ndef sum_sequence(sequence):\n sum = 0\n for num in sequence:\n sum += num\n return sum"
},
{
"instruction": "Generate a Python code for crawling a website for a specific type of data.",
"output": "import requests\nimport re\n\ndef crawl_website_for_phone_numbers(website):\n response = requests.get(website)\n phone_numbers = re.findall('\\d{3}-\\d{3}-\\d{4}', response.text)\n return phone_numbers\n \nif __name__ == '__main__':\n print(crawl_website_for_phone_numbers('www.example.com'))"
}
]
DPO 直接プリファレンス最適化
DPO トレーニングアルゴリズムは、JSON 形式の入力を受け入れます。各サンプルには、"prompt"、"chosen"、"rejected" フィールドで表されるプロンプト、優先される応答、拒否された応答が含まれます。例:
[
{
"prompt": "Create a function to calculate the sum of a sequence of integers.",
"chosen": "# Python code\ndef sum_sequence(sequence):\n sum = 0\n for num in sequence:\n sum += num\n return sum",
"rejected": "[x*x for x in [1, 2, 3, 5, 8, 13]]"
},
{
"prompt": "Generate a Python code for crawling a website for a specific type of data.",
"chosen": "import requests\nimport re\n\ndef crawl_website_for_phone_numbers(website):\n response = requests.get(website)\n phone_numbers = re.findall('\\d{3}-\\d{3}-\\d{4}', response.text)\n return phone_numbers\n \nif __name__ == '__main__':\n print(crawl_website_for_phone_numbers('www.example.com'))",
"rejected": "def remove_duplicates(string): \n result = \"\" \n prev = '' \n\n for char in string:\n if char != prev: \n result += char\n prev = char\n return result\n\nresult = remove_duplicates(\"AAABBCCCD\")\nprint(result)"
}
]
-
モデルギャラリーページの右側にあるモデルリストで、Qwen2.5-Coder-32B-Instruct モデルカードをクリックして、モデル詳細ページを開きます。
-
モデル詳細ページで、右上隅にある[トレーニング]をクリックします。主な構成は以下のとおりです。
-
データセットの構成:データセットを準備した後、OSS バケットにアップロードします。または、NAS または CPFS に保存されているデータセットオブジェクトを選択します。PAI にプリロードされているパブリックデータセットを使用してアルゴリズムをテストすることもできます。
-
計算リソースの構成:このアルゴリズムには、少なくとも 80 GB の VRAM を搭載した GPU が必要です。リソースクォータに十分な計算リソースがあることを確認してください。他のモデルサイズについては、「環境要件」をご参照ください。
-
ハイパーパラメーターの構成:次の表に、サポートされているハイパーパラメーターを示します。データセットと計算リソースに基づいて調整するか、デフォルト値を使用します。
ハイパーパラメーター
タイプ
デフォルト値
必須
説明
training_strategy
string
sft
はい
トレーニングアルゴリズム。有効な値:sft または dpo。
learning_rate
float
5e-5
はい
学習率。トレーニング中にモデルの重みを調整する量を制御します。
num_train_epochs
int
1
はい
トレーニングデータセットを反復処理する回数。
per_device_train_batch_size
int
1
はい
1 回のトレーニング反復で GPU ごとに処理されるサンプル数。バッチサイズを大きくすると効率が向上しますが、VRAM の使用量が増加します。
seq_length
int
128
はい
シーケンス長。1 回のトレーニングステップで処理されるトークンの最大数。
lora_dim
int
32
いいえ
LoRA ディメンション。lora_dim > 0 の場合、LoRA または QLoRA 軽量トレーニングが使用されます。
lora_alpha
int
32
いいえ
LoRA の重み。lora_dim > 0 で、LoRA または QLoRA 軽量トレーニングが使用される場合に有効になります。
dpo_beta
float
0.1
いいえ
トレーニング中にモデルがプリファレンスシグナルに依存する度合い。
load_in_4bit
bool
false
いいえ
モデルを 4 ビット精度で読み込むかどうか。
lora_dim > 0、load_in_4bit が true、load_in_8bit が false の場合、4 ビット QLoRA 軽量トレーニングが使用されます。
load_in_8bit
bool
false
いいえ
モデルを 8 ビット精度で読み込むかどうか。
lora_dim > 0、load_in_4bit が false、load_in_8bit が true の場合、8 ビット QLoRA 軽量トレーニングが使用されます。
gradient_accumulation_steps
int
8
いいえ
重みを更新する前に勾配を累積するステップ数。
apply_chat_template
bool
true
いいえ
モデルのデフォルトのチャットテンプレートをトレーニングデータに適用するかどうか。Qwen2 シリーズモデルの場合、フォーマットは次のとおりです:
-
問題:
<|im_end|>\n<|im_start|>user\n + instruction + <|im_end|>\n -
応答:
<|im_start|>assistant\n + output + <|im_end|>\n
system_prompt
string
You are a helpful assistant
いいえ
モデルのトレーニング中に使用されるシステムプロンプト。
-
-
-
[トレーニング] をクリックします。モデルギャラリーは自動的にタスク詳細ページを開き、トレーニングを開始します。トレーニングジョブのステータスとログをモニターできます。

トレーニング済みのモデルは、自動的に [AI アセット] > [モデル管理] に登録されます。表示またはデプロイできます。詳細については、「モデルの登録と管理」をご参照ください。
モデルの評価
科学的かつ効率的なモデル評価は、開発者がモデルのパフォーマンスを測定および比較するのに役立ちます。また、正確なモデルの選択と最適化をガイドし、AI イノベーションと実世界への導入を加速します。
モデルギャラリーには、Qwen2.5-Coder-32B-Instruct モデル用の評価アルゴリズムが組み込まれています。このモデルまたはファインチューニングされたバージョンをそのまま評価できます。完全な手順については、「モデル評価」および「大規模言語モデル評価のベストプラクティス」をご参照ください。
モデルの圧縮
デプロイの前に、トレーニング済みのモデルを量子化および圧縮して、ストレージと計算リソースの使用量を削減できます。完全な手順については、「モデル圧縮」をご参照ください。