古典的な 3 ステップ蒸留:基本設定 → 蒸留データ生成 → 生徒モデルのトレーニング。任意の教師モデル、生徒モデル、データセットを選択し、蒸留およびトレーニングパラメータを設定することで、ほとんどの汎用シナリオに対応できます。
テンプレート概要
汎用蒸留テンプレートは、ModelDistill の基本テンプレートです。ブラックボックス蒸留を使用します。つまり、生成によるデータ拡張の後に SFT トレーニングを行います。
シナリオ固有テンプレートとは異なり、汎用蒸留では、特定のタスクタイプ向けにあらかじめオペレーターオーケストレーションが設定されたパイプラインは使用しません。各ステージをユーザーが制御します。シナリオ固有テンプレートでは、指示蒸留、思考連鎖蒸留、マルチモーダル蒸留、Agent ツールコール蒸留など、一般的なタスクタイプをすでにカバーしています。まず、シナリオ固有テンプレートがタスクに適合するかを評価してください。いずれも一致しない場合は、汎用蒸留を使用します。
汎用蒸留は、固定の 3 段階パイプラインに従います。各ステージは作成ウィザードで設定できます。蒸留データとトレーニングアーティファクトは、再利用できるように別々に保存されます。
基本設定:タスク名、出力モデル名、パスを定義します。
蒸留データ生成:教師モデルを呼び出してソースデータから高品質な応答を生成し、蒸留用の SFT データセットを作成します。
生徒モデルのトレーニング:蒸留データで生徒モデルをファインチューニングし、デプロイ可能な蒸留モデルを生成します。
クイックスタート
次の手順では、PAI のパブリックデータセットとデフォルト設定を使用し、汎用蒸留タスクの全手順を実行する方法を説明します。
PAI コンソールの モデルアプリケーション > モデル蒸留 (ModelDistill) セクションにログインします。
タスクの作成 をクリックして 知識蒸留テンプレート タブに移動するか、直接 知識蒸留テンプレート タブに移動します。
一般蒸留を選択し、テンプレートの使用 をクリックして 知識蒸留ジョブの作成 ページに移動します。以下で説明するキーパラメーターを設定し、その他の設定はデフォルト値のままにします。
基本設定を完了します:
タスク名 と モデル名 は、システムによって事前入力されます。
[モデルの出力パス]:
oss://mybucket.oss-cn-hangzhou-internal.aliyuncs.com/model-distill/modelなど、アクセス権のある OSS パスを指定します。説明モデルファイルの上書きを防ぐため、蒸留タスクごとに個別の出力ディレクトリを作成してください。OSS バケットは PAI サービスと同じリージョンにある必要があります。
次へ をクリックして、蒸留データ構築 ステップに進みます。
[教師モデル]: [教師モデルのソース] — Token Service を選択し、ドロップダウンリストから
qwen3.8-maxなどのモデルを選択します。[データセット]:パブリックデータセット を選択し、ドロップダウンリストから
Chinese-medical-dialogue-dataを選択します。また、カスタムデータセット を選択して独自のデータを使用することもできます。[蒸留データの確認]: 蒸留データセットの出力パス として、アクセス権のある OSS パス (
oss://mybucket.oss-cn-hangzhou-internal.aliyuncs.com/model-distill/dist-dataなど) を指定します。[計算リソース]:リソースタイプ を 汎用コンピューティングリソース に、リソースのソース を パブリックリソース に設定し、タスクリソース で適切な リソース仕様 を選択します。
次へ をクリックして、生徒モデルトレーニング ステップに進みます:
[生徒モデル]: パブリックモデル を選択し、ドロップダウンリストから
Qwen3-4Bなどの小規模なモデルを選択します。[トレーニング方法]:LoRA を選択します。
[計算リソース]:リソースタイプ を 汎用コンピューティングリソース に、リソースのソース を パブリックリソース に設定します。次に、タスクリソース で適切な リソース仕様 を選択します。
OK をクリックし、続いて課金プロンプトで OK をクリックすると、ページがタスク詳細ページにリダイレクトされ、タスクのステータスを追跡できます。小規模なデータセット (100–1,000 件) の場合、推定所要時間は 20–40 分です。
設定リファレンス
蒸留データ生成
教師モデル:次のソースをサポートします。
PAI Token Service。
PAI-EAS Service:Model Gallery モデルからデプロイされた EAS サービス (直接、またはファインチューニング後) のみがサポートされています。
データセット: 公開蒸留データセットとカスタムデータセットの両方をサポートします。データは JSON 形式で、
instructionフィールド (質問列) を含める必要があります。outputフィールド (出力列) は必須ではありません。[ { "instruction": "What is the capital of France?" }, { "instruction": "Explain what artificial intelligence is." } ][蒸留データの確認]:データ生成完了後に、生成された蒸留データをシステムがどのように処理するかを選択します。
[自動確認] (推奨します):システムが自動的にデータを検証して承認し、その後、生徒モデルのトレーニングを開始します。パブリックデータセット、またはデータの品質に自信がある場合に適しています。
[手動確認]:トレーニング開始前にデータ品質を手動でレビューする必要があります。高いデータ品質が求められる場合、またはカスタムデータセットを初めて使用する場合に適しています。手順は次のとおりです。
蒸留データ生成が完了すると、タスクのステータスが [Waiting for distillation data confirmation] に変わります。
「操作」列の蒸留データの確認をクリックします。確認ダイアログボックスが表示されます。
ダイアログボックスで、詳細を見る をクリックすると、蒸留データセットの詳細が表示されます。
データ品質が期待どおりである場合は、確認 をクリックして生徒モデルのトレーニングを続行します。
データが期待どおりでない場合は、キャンセルをクリックして現在のステージでタスクを停止します。
生徒モデルのトレーニング
生徒モデルは、Model Gallery のパブリックモデル、またはカスタムモデル (現在は Model Gallery でファインチューニングした LLM に限定) を使用できます。生徒モデルのパラメータ数が教師モデルより少ないことを確認してください。
トレーニングモード
生徒モデルの SFT 手法を選択します。
LoRA (推奨します):パラメータ効率の高いファインチューニング手法です。良好な性能を維持しつつ、GPU メモリ要件を大幅に削減します。
QLoRA:LoRA の量子化バリアントで、GPU メモリ使用量をさらに削減します。よりリソース制約の厳しい環境でのトレーニングに適しています。
全パラメータファインチューニング:すべてのモデルパラメータを更新します。理論上は最良の結果を得られますが、多大な計算リソースと時間が必要で、コストも高くなります。
検証セット
トレーニング中にモデルの性能を評価するために使用する検証データセットを選択します。
[設定しない]:トレーニング中に検証を行いません。迅速な実験や小規模データセットに適しています。
[蒸留データの自動分割] (推奨します):システムが生成された蒸留データセットを自動的にトレーニングセットと検証セットに分割します。デフォルトの検証セット比率は 5% です。
[検証データセットの追加]:独立した OSS データセットを検証セットとして指定します。標準の検証データセットがある場合に適しています。
ハイパーパラメータ
これらのハイパーパラメータは、生徒モデルの SFT トレーニングプロセスを制御します。
パラメータ | 説明 | チューニングのヒント |
| 学習率。モデルパラメータを更新する際のステップサイズを制御します。デフォルト値は 5e-5 です。 | • トレーニング損失の減少が遅い場合は、学習率を上げます。• 損失が大きく振動したり収束しなかったりする場合は、学習率を下げます。 |
| トレーニングのエポック数。トレーニング中にデータセット全体を反復する回数を示します。デフォルト値は 1 です。 | • 大規模データセットでは、通常 1~3 エポックで十分です。 • エポック数が多すぎると、過学習の原因になります。 |
| 1 回のトレーニングステップで、GPU デバイスごとに処理されるサンプル数。デフォルト値は 1 です。 | • GPU メモリに余裕がある場合は、この値を増やすことでトレーニングが高速化し、プロセスが安定する可能性があります。 • メモリ不足 (OOM) エラーが発生する場合は、まずこの値を下げます。 |
| 生徒モデルに入力される最大シーケンス長 (トークン単位)。デフォルト値は 128 です。 | • データ特性とユースケースに基づいて設定します。テキストが長い場合は、より大きな • この値を増やすと、GPU メモリ消費が大幅に増加します。 |
ベストプラクティス
コスト最適化
リソースタイプ:
テストおよび小規模タスク:オンデマンドの従量課金で利用できる パブリックリソース を使用します。
本番および高優先度タスク:安定したリソースと予測可能なコストのために リソースクォータ を使用します。
コスト重視でフォールトトレラントなタスク:タスク中断のリスクはありますが、低コストの計算リソースとして プリエンプティブルリソース の使用を検討します。
小規模データセットから開始:大規模な蒸留を実行する前に、小さなサブセット (100~1,000 件) でパイプライン全体を実行して設定を検証してください。これにより、設定ミスのジョブで計算リソースを浪費することを防げます。
データセットの最適化:小規模で高品質なシードデータセットは、教師モデルの推論コストと生徒モデルのトレーニング時間を削減します。
QLoRA トレーニングの使用:QLoRA は量子化されたモデルでトレーニングするため、GPU メモリ要件が大幅に下がり、より低スペック (かつ低コスト) の GPU の使用が可能になります。
妥当なタイムアウトの設定:予期しない問題によりタスクが無制限に実行され、不要な課金が発生することを防ぐため、[最大実行時間] を設定してください。
性能チューニング
データセットの品質が鍵:教師モデルが蒸留品質の上限を、蒸留データセットがその下限を決定します。ソースデータセットがビジネスシナリオを網羅し、指示が明確で、内容に多様性があることを確認してください。
ハイパーパラメータのチューニング:
生徒モデルの 損失が減少しない、または発散する 場合、まず 学習率 (
learning_rate) を小さくしてください。OOM エラーが発生した場合は、まずバッチサイズ (
per_device_train_batch_size) またはシーケンス長 (seq_length) を小さくしてください。
GPU 使用率のモニタリング: [タスクモニタリング] で GPU 使用率を確認します。使用率が低い場合は、GPU が十分に活用されていないことを意味します。スループットを向上させるには、
per_device_train_batch_sizeを増やしてみてください。
評価
蒸留が完了したら、生徒モデルを評価します。
モデルのデプロイ: タスク詳細ページで、右上隅にあるデプロイメントをクリックして、蒸留された生徒モデルをオンライン推論サービスとしてデプロイします。
比較評価:PAI のモデル評価機能を使用して、同一の評価データセット上で教師モデルと生徒モデルの性能指標 (精度や BLEU など) を比較し、性能の差を定量化します。
本番検証:本番環境に導入する前に、少ない割合のトラフィックでカナリアテストを実施します。実際のビジネスシナリオで、蒸留モデルと元のモデルの推論速度、リソース使用量、ビジネス指標を比較します。