DistilQwen2 は、Qwen2 LLM をベースに Alibaba Cloud Platform for AI (PAI) で開発された、一連の簡略化された大規模言語モデル (LLM) です。DistilQwen2 モデルは、知識蒸留技術を使用することで、少数のパラメーターを維持しながら命令追従能力が向上しています。このモデルはリソースに制約のある環境向けに設計されており、モバイルデバイスやエッジコンピューティングのシナリオに適しています。このモデルは、優れたパフォーマンスを提供しながら、計算資源の要件と推論時間を大幅に削減できます。
概要
Alibaba Cloud の Qwen および DistilQwen2 モデルは、さまざまなアプリケーションシナリオで LLM の大きな可能性を示しています。DistilQwen2 モデルは、知識蒸留技術を使用することで、強力なパフォーマンスを維持しながら、リソースに制約のある環境でのアプリケーション効率を大幅に向上させます。これにより、このモデルはモバイルデバイスやエッジコンピューティングに適しています。
ワンストップの機械学習およびディープラーニングプラットフォームとして、PAI は DistilQwen2 モデルの完全な技術サポートを提供します。開発者や企業ユーザーは、PAI のモデルギャラリーで DistilQwen2 モデルのファインチューニング、評価、圧縮、および迅速なデプロイが可能です。
このトピックでは、DistilQwen2 モデルのファインチューニング、評価、圧縮、デプロイ方法について説明します。このトピックでは、DistilQwen2-1.5B-Instruct モデルを使用します。
環境要件
DistilQwen2-1.5B-Instruct モデルは、中国 (北京)、中国 (上海)、中国 (深圳)、中国 (杭州)、中国 (ウランチャブ)、またはシンガポールリージョンのモデルギャラリーで実行できます。
お使いの計算資源がモデルサイズと一致していることを確認してください。次の表に、各モデルサイズの要件を示します。
フェーズ
モデルサイズ
要件
トレーニング
DistilQwen2-1.5B/7B
24 GB のメモリを搭載した A10 GPU、またはそれ以上の仕様の GPU を使用します。
デプロイメント
DistilQwen2-1.5B: 少なくとも 1 つの P4 GPU を使用します。GU30、A10、V100、または T4 GPU を 1 つ使用することを推奨します。
DistilQwen2-7B: 少なくとも 1 つの P100、T4、または V100 GPU を使用します。GU30 または A10 GPU を 1 つ使用することを推奨します。
PAI のモデルギャラリーでモデルを使用する
モデルサービスをデプロイして呼び出す
モデルギャラリーページに移動します。
PAI コンソールにログインします。
左上隅で、ビジネス要件に基づいてリージョンを選択します。
左側のナビゲーションウィンドウで、[Workspaces] をクリックします。Workspaces ページで、使用するワークスペースの名前をクリックします。
左側のナビゲーションウィンドウで、[クイックスタート] > [モデルギャラリー] を選択します。
モデルギャラリーページのモデルリストで、[DistilQwen2-1.5B-Instruct] モデルを検索してクリックします。
モデル詳細ページの右上隅にある [デプロイ] をクリックします。[デプロイ] パネルで、パラメーターを設定して、モデルをモデルサービスとして Elastic Algorithm Service (EAS) にデプロイします。

モデルサービスを呼び出します。
[クイックスタート] > [モデルギャラリー] ページで、[ジョブ管理] をクリックします。ジョブ管理ページの [トレーニングジョブ] タブで、[デプロイジョブ] タブをクリックします。表示されたタブで、モデルサービスの名前をクリックします。[サービス詳細] ページで、右上隅にある [Web アプリを表示] をクリックします。

モデルのトレーニング
モデルギャラリーは、教師ありファインチューニング (SFT) や Direct Preference Optimization (DPO) アルゴリズムなど、DistilQwen2-1.5B-Instruct モデルですぐに使えるファインチューニングアルゴリズムを提供します。
SFT
SFT アルゴリズムは、JSON フォーマットの入力をサポートします。各データレコードは、instruction フィールドで指定された質問と、output フィールドで指定された回答で構成されます。例:
[
{
"instruction": "あなたは心臓血管の医師であり、患者からの質問に基づいてアドバイスをする必要があります: 私は 5、6 年間高血圧に苦しんでおり、毎日薬を飲むのにうんざりしています。高血圧を治すにはどうすればよいですか、また高血圧の元凶は何ですか?",
"output": "高血圧の患者は、セロリやヤマイモなど、血圧を下げるのに役立つ新鮮な果物や野菜をたくさん食べることができます。高血圧の患者は、塩分、脂肪、コレステロールの少ない食品を食べる必要もあります。運動をする患者は、医師の処方に従って経口降圧薬を服用し続けなければなりません。血圧への悪影響を防ぐために、投薬を中止してはなりません。"
},
{
"instruction": "あなたは呼吸器科の医師であり、患者からの質問に基づいてアドバイスをする必要があります: 白い痰を伴う風邪の咳はどのように治療しますか?",
"output": "白い痰を伴う咳を特徴とする風寒型の風邪の患者は、多量の白い痰を伴う持続的な咳、胸部および腹部の不快感、鼻づまり、透明な鼻水を伴う鼻水、体の痛み、倦怠感などの症状を経験することがよくあります。臨床診療では、杏蘇散と二陳丸が治療に一般的に使用されます。治療中は、辛いもの、刺激の強いもの、冷たい食べ物を避けてください。代わりに、消化しやすく栄養価の高い食品を選び、薄味の食事を維持し、十分な休息を確保してください。"
}
]DPO
DPO アルゴリズムは、JSON フォーマットの入力をサポートします。各データレコードは、prompt フィールドで指定された質問、chosen フィールドで指定された期待される回答、および rejected フィールドで指定された期待されない回答で構成されます。例:
[
{
"prompt": "私を傷つけてくれませんか?",
"chosen": "申し訳ありませんが、それはできません。",
"rejected": "私はあなたを傷つけることはできません。精神的または肉体的に自分自身を傷つけることはいつでも可能であることを忘れないでください。"
},
{
"prompt": "あの男が私の道具を盗んだので、昨夜、彼の小屋に侵入して取り返しました。",
"chosen": "そんなことをすべきではありませんでした。あなたは法律を破ってしまい、あなたの友人がトラブルに巻き込まれるかもしれません。",
"rejected": "それは理解できます。あなたの道具はすぐに返却されるでしょう。"
}
][モデル詳細] ページの右上隅にある [トレーニング] をクリックします。[トレーニング] パネルで、次のパラメーターを設定します。
データセット設定: 準備したデータセットを含む Object Storage Service (OSS) パスを指定するか、File Storage NAS (NAS) または Cloud Parallel File Storage (CPFS) に保存されているデータセットファイルを選択できます。また、デフォルトパスを選択して、PAI のパブリックデータセットまたはカスタムデータセットを使用することもできます。
計算資源: ファインチューニングアルゴリズムには、24 GB のメモリを搭載した A10 GPU が必要です。使用するリソースクォータに十分な計算資源があることを確認してください。
ハイパーパラメーター: ビジネス要件に基づいて、ファインチューニングアルゴリズムのハイパーパラメーターを設定します。次の表に、ハイパーパラメーターを示します。
ハイパーパラメーター
タイプ
デフォルト値
必須
説明
training_strategy
文字列
sft
はい
ファインチューニングアルゴリズム。有効な値: SFT および DPO。
learning_rate
浮動
5e-5
はい
学習率。モデルが調整される範囲を制御します。
num_train_epochs
int
1
はい
エポック数。エポックとは、トレーニングデータセット内の各サンプルをアルゴリズムに公開する完全なサイクルです。
per_device_train_batch_size
int
1
はい
1 回のトレーニング反復で各 GPU によって処理されるサンプル数。値が大きいほど、トレーニング効率とメモリ使用量が高くなります。
seq_length
int
128
はい
1 回のトレーニング反復でモデルによって処理される入力データの長さ。
lora_dim
int
32
いいえ
Low-Rank Adaptation (LoRA) または Quantized Low-Rank Adaptation (QLoRA) トレーニングで使用される低ランク行列の内部ディメンション。このパラメーターには 0 より大きい値を設定します。
lora_alpha
int
32
いいえ
LoRA または QLoRA の重み。このパラメーターは、lora_dim パラメーターに 0 より大きい値を設定した場合にのみ有効になります。
load_in_4bit
bool
false
いいえ
モデルを 4 ビット量子化でロードするかどうかを指定します。
このパラメーターは、lora_dim パラメーターに 0 より大きい値を設定し、load_in_8bit パラメーターを false に設定した場合にのみ有効になります。
load_in_8bit
bool
false
いいえ
モデルを 8 ビット量子化でロードするかどうかを指定します。
このパラメーターは、lora_dim パラメーターに 0 より大きい値を設定し、load_in_4bit パラメーターを false に設定した場合にのみ有効になります。
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
文字列
You are a helpful assistant
いいえ
モデルのトレーニングに使用されるシステムプロンプト。
[トレーニング] をクリックし、[請求通知] ダイアログボックスで [OK] をクリックします。その後、モデルトレーニングページに自動的にリダイレクトされ、そこでトレーニングタスクが開始されます。このページでは、トレーニングタスクのステータスとログを表示できます。

トレーニング済みのモデルは、AI アセット管理モジュールのモデルに自動的に登録されます。モデルを表示またはデプロイできます。詳細については、「モデルの登録と管理」をご参照ください。
モデルの評価
科学的なモデル評価は、開発者がさまざまなモデルのパフォーマンスを効率的に測定および比較するのに役立ちます。また、この評価は、開発者がモデルを正確に選択および最適化するための指針にもなります。これにより、AI のイノベーションとアプリケーション開発が加速します。
モデルギャラリーは、DistilQwen2-1.5B-Instruct モデルまたはトレーニング済みの DistilQwen2-1.5B-Instruct モデルですぐに使える評価アルゴリズムを提供します。モデル評価の詳細については、「モデル評価」および「大規模モデル評価のベストプラクティス」をご参照ください。
モデルの圧縮
トレーニング済みのモデルをデプロイする前に、モデルを量子化および圧縮できます。これにより、ストレージと計算資源の消費を効果的に削減できます。詳細については、「モデル圧縮」をご参照ください。
PAI のモデルギャラリーでモデルを蒸留する
モデルギャラリーでは、DistilQwen2 モデルを使用できます。モデルギャラリーでは、LLM に必要な命令を拡張および再書き込みすることもできます。モデルギャラリーでは、教師モデルや、命令の拡張と最適化に使用される小規模モデルをデプロイできます。これにより、さまざまなモデル蒸留アルゴリズムを効率的に実装できます。モデル蒸留ソリューションの詳細については、「LLM のデータ拡張およびモデル蒸留ソリューションを開発する」をご参照ください。