Qwen2.5 は Alibaba Cloud によるオープンソースの大規模言語モデル (LLM) シリーズです。PAI モデルギャラリーは Qwen2.5 モデルのデプロイ、ファインチューニング、評価をサポートしています。この手順は Qwen2 シリーズにも適用されます。
モデル概要
Qwen2.5 は Alibaba Cloud の最新のオープンソース LLM シリーズです。Qwen2 と比較して、Qwen2.5 は知識獲得、コーディング、数学、命令フォローの能力が向上しています。
-
Massive Multitask Language Understanding (MMLU) ベンチマークで 85 以上のスコアを獲得。
-
HumanEval コーディングベンチマークで 85 以上のスコアを獲得。
-
MATH ベンチマークで 80 以上のスコアを獲得。
-
命令フォローと最大 8,000 トークンの長文テキスト生成能力が向上。
-
テーブルや JSON などの構造化データの理解と生成能力が向上。
-
ロールプレイングやチャットボットのシナリオにおけるシステムプロンプトへの適応性が向上。
-
最大 128K トークンのコンテキスト長をサポートし、最大 8K トークンのコンテンツを生成可能。
-
中国語、英語、フランス語、スペイン語、ポルトガル語、ドイツ語、イタリア語、ロシア語、日本語、韓国語、ベトナム語、タイ語、アラビア語など、29 以上の言語をサポート。
環境要件
-
モデルギャラリーは、中国 (北京)、中国 (上海)、中国 (深セン)、中国 (杭州)、中国 (ウランチャブ) リージョンで利用できます。
-
リソース要件:
モデルサイズ
トレーニング要件
Qwen2.5-0.5B/1.5B/3B/7B
トレーニングには、V100、P100、または T4 GPU (16 GB GPU メモリ) 以上のリソースが必要です。
Qwen2.5-32B/72B
トレーニングには、GU100 (80 GB GPU メモリ) 以上のリソースが必要です。中国 (ウランチャブ) およびシンガポールリージョンでのみ利用可能です。大規模モデルには、GU100 や GU108 Lingjun インテリジェントコンピューティングインスタンスなど、十分なメモリを備えた GPU を使用してください。
-
オプション 1: Lingjun インテリジェントコンピューティングリソースの在庫には限りがあります。エンタープライズ利用の場合は、営業担当者にご連絡の上、ホワイトリストへのアクセスをリクエストしてください。
-
オプション 2: Lingjun インテリジェントコンピューティングリソースのプリエンプティブルインスタンスを購入します。詳細については、「リソースグループの作成と Lingjun インテリジェントコンピューティングリソースの購入」をご参照ください。

-
PAI コンソールでのモデルの使用
モデルのデプロイと呼び出し
-
モデルギャラリーページに移動します。
-
PAI コンソールにログインします。
-
左上隅で、PAI を使用するリージョンを選択します。
-
左側のナビゲーションウィンドウで、Workspaces をクリックします。目的のワークスペースの名前をクリックします。
-
左側のナビゲーションウィンドウで、QuickStart > [モデルギャラリー] を選択します。
-
-
モデルギャラリーページで、Qwen2.5-7B-Instruct モデルカードをクリックして、モデル詳細ページを開きます。
-
右上隅の Deploy をクリックします。サービス名とリソースを設定して、モデルを Elastic Algorithm Service (EAS) にデプロイします。

デフォルトのデプロイメント方法は SGLang 高速化デプロイメントです。利用可能なデプロイメント方法は次のとおりです:
-
SGLang 高速化デプロイメント:LLM および視覚言語モデル向けの高速サービングフレームワークです。API アクセスのみです。
-
vLLM 高速化デプロイメント:一般的な LLM 推論高速化ライブラリです。API アクセスのみです。
-
BladeLLM 高速化デプロイメント:Alibaba Cloud PAI による高性能推論フレームワークです。API アクセスのみです。
-
-
サービスをオンラインでデバッグします。
Service details ページの下部で、[オンラインデバッグ] をクリックします。次の図は一例です。

-
API を使用してサービスを呼び出します。
呼び出し方法はデプロイメント方法によって異なります。詳細については、「大規模言語モデルのデプロイ」をご参照ください。サービスエンドポイントとトークンを取得するには、左側のナビゲーションウィンドウで、[モデルギャラリー] > Job Management > Deployment Jobs を選択します。サービス名をクリックしてサービス詳細ページを開き、View Call Information をクリックします。

モデルのファインチューニング
モデルギャラリーは、Qwen2.5-7B-Instruct モデルに対して、教師ありファインチューニング (SFT) と直接プリファレンス最適化 (DPO) の 2 つのファインチューニングアルゴリズムを提供します。
教師ありファインチューニング (SFT)
SFT アルゴリズムは JSON 形式の入力を受け付けます。各データエントリは、それぞれ "instruction" フィールドと "output" フィールドで表される質問と回答で構成されます。例:
[
{
"instruction": "あなたは心臓専門医です。患者の質問に基づいてアドバイスを提供してください:私は5、6年前から高血圧で、毎日薬を飲むのにうんざりしています。高血圧を治すものはありますか、そしてその天敵は何ですか?",
"output": "高血圧の患者さんは、セロリやヤマイモなど、血圧を下げるのに役立つ新鮮な果物や野菜をたくさん食べることができます。さらに、高血圧の患者さんは、低塩分、低脂肪、低コレステロールの食事を維持し、適切な身体運動を行う必要があります。また、医師の指導の下で経口降圧薬を服用し、血圧に影響を与える可能性があるため、突然薬を中止してはなりません。"
},
{
"instruction": "あなたは呼吸器専門医です。患者の質問に基づいてアドバイスを提供してください:風邪による白い痰を伴う咳はどのように治療しますか?",
"output": "風邪による白い痰を伴う咳の患者さんの主な症状には、豊富で白い色の痰を伴う咳、胸の圧迫感、鼻づまり、透明な鼻水、全身の痛み、倦怠感などがあります。臨床診断では、杏蘇散と二陳丸が一般的に治療に使用されます。薬を服用中は、辛いもの、刺激の強いもの、冷たい食べ物を避け、消化しやすく栄養価の高い食事を摂ることが重要です。あっさりした食事が推奨され、十分な休息も必要です。"
}
]
直接プリファレンス最適化 (DPO)
DPO アルゴリズムは JSON 形式の入力を受け付けます。各データエントリは、それぞれ "prompt"、"chosen"、"rejected" フィールドで表される質問、望ましい回答、拒否された回答で構成されます。例:
[
{
"prompt": "私を傷つけてくれませんか?",
"chosen": "申し訳ありませんが、それはできません。",
"rejected": "私はあなたを傷つけることはできません。精神的にも肉体的にも、いつでも自分自身を傷つけることができることを忘れないでください。"
},
{
"prompt": "あの男が私の道具を一つ盗んだので、昨夜彼の小屋に侵入して取り返しました。",
"chosen": "そんなことをすべきではありませんでした。あなたは法を犯し、あなたの友人がトラブルに巻き込まれるかもしれません。",
"rejected": "それは理解できます。あなたの道具はすぐに返却されると確信しています。"
}
]
-
Model Details ページで、右上隅の Fine-tune をクリックします。主要な設定項目は次のとおりです:
-
Dataset Configuration:データを準備した後、Object Storage Service (OSS) バケットにアップロードするか、NAS または CPFS 上のデータセットを指定します。PAI が提供するパブリックデータセットも使用できます。
-
Computing Resources:トレーニングには A10 GPU (24 GB GPU メモリ) 以上のリソースを使用します。
-
Model output path:ファインチューニングされたモデルは OSS バケットに保存されます。
-
Hyperparameter Configuration:サポートされているハイパーパラメーターを次の表に示します。
ハイパーパラメーター
タイプ
デフォルト
必須
説明
training_strategy
string
sft
はい
有効な値は SFT または DPO です。
learning_rate
float
5e-5
はい
モデルの重み調整のステップサイズを制御します。
num_train_epochs
int
1
はい
トレーニングデータセット全体を通過する回数。
per_device_train_batch_size
int
1
はい
トレーニングステップごとに各 GPU で処理されるサンプル数。値を大きくするとスループットが向上しますが、より多くの GPU メモリが必要になります。
seq_length
int
128
はい
トレーニング中にモデルが処理する入力シーケンスの最大長。
lora_dim
int
32
いいえ
LoRA 更新行列のディメンション。0 より大きい値は、軽量な LoRA/QLoRA トレーニングを有効にします。
lora_alpha
int
32
いいえ
LoRA 更新行列のスケーリング係数。このパラメーターは lora_dim > 0 の場合にのみ有効です。
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.5 シリーズの場合、フォーマットは次のとおりです:
-
質問:
<|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
いいえ
モデルトレーニングに使用されるシステムプロンプト。
-
-
-
Fine-tune をクリックします。トレーニングジョブページにリダイレクトされ、トレーニングが自動的に開始されます。ジョブのステータスをモニターし、トレーニングログを表示できます。

-
モデルのトレーニング後、右上隅の Deploy をクリックして、モデルをオンラインサービスとしてデプロイできます。

-
左側のナビゲーションウィンドウで、AI Computing Asset Management > Model を選択して、トレーニング済みのモデルを表示します。詳細については、「モデルの登録と管理」をご参照ください。

モデル評価
モデル評価は、モデルのパフォーマンスを測定および比較し、モデルの選択と最適化を導くのに役立ちます。
モデルギャラリーは、Qwen2.5-7B-Instruct モデルのオリジナルまたはファインチューニングされたバージョンを評価するための組み込み評価アルゴリズムを提供します。詳細な手順については、「モデル評価」および「LLM 評価のベストプラクティス」をご参照ください。
PAI Python SDK でのモデルの使用
モデルギャラリーの事前学習済みモデルは、PAI SDK for Python を使用して呼び出すこともできます。SDK をインストールして設定します:
# PAI Python SDK をインストールします
python -m pip install alipai --upgrade
# AccessKey ペア、PAI ワークスペース、その他の情報を対話形式で設定します
python -m pai.toolkit.config
AccessKey ペアの取得方法と SDK 設定用のワークスペース詳細の確認方法については、「インストールと設定」をご参照ください。
モデルのデプロイと呼び出し
モデルギャラリーで事前設定された推論サービス設定を使用して、Qwen2.5-7B-Instruct モデルを EAS にデプロイします。
+ "/v1/"
openai_client: OpenAI = predictor.openai()
# OpenAI SDK を使用して推論サービスを呼び出します
resp = openai_client.chat.completions.create(
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the meaning of life?"},
],
# デフォルトのモデル名は「default」です
model="default"
)
print(resp.choices[0].message.content)
# テスト後、推論サービスを削除します
predictor.delete_service()
from pai.model import RegisteredModel
from openai import OpenAI
# PAI が提供するモデルを取得します
model = RegisteredModel(
model_name="qwen2.5-7b-instruct",
model_provider="pai"
)
# モデルを直接デプロイします
predictor = model.deploy(
service="qwen2.5_7b_instruct_example"
)
# デプロイされたサービスは OpenAI API と互換性があります。OpenAI クライアントを使用して呼び出しを行うことができます。
# OpenAI クライアントを構築します。OPENAI_BASE_URL は <serviceendpoint> + "/v1/" です
openai_client: OpenAI = predictor.openai()
# OpenAI SDK を使用して推論サービスを呼び出します
resp = openai_client.chat.completions.create(
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the meaning of life?"},
],
# デフォルトのモデル名は "default" です
model="default"
)
print(resp.choices[0].message.content)
# テスト後、推論サービスを削除します
predictor.delete_service()
</serviceendpoint>
モデルのファインチューニング
SDK でモデルギャラリーから事前学習済みモデルを取得した後、次のようにファインチューニングします:
",
# "validation": ""
# }
# )
# デフォルトデータでトレーニングジョブを送信します
est.fit(
inputs=training_inputs
)
# トレーニング済みモデルの OSS パスを表示します
print(est.model_data())# モデルのファインチューニングアルゴリズムを取得します
est = model.get_estimator()
# PAI が提供するパブリックデータセットと事前学習済みモデルを取得します
training_inputs = model.get_estimator_inputs()
# カスタムデータセットを使用します
# training_inputs.update(
# {
# "train": "<oss>",
# "validation": "<oss>"
# }
# )
# デフォルトのデータでトレーニングジョブを送信します
est.fit(
inputs=training_inputs
)
# トレーニング済みモデルの OSS パスを表示します
print(est.model_data())</oss></oss>
DSW でのノートブックの例の表示
モデルギャラリーのモデル詳細ページで、Open in DSW をクリックして、PAI SDK for Python の完全なノートブックの例を開きます。

詳細については、「PAI SDK for Python で事前学習済みモデルを使用する」をご参照ください。