すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:汎用蒸留

最終更新日:Sep 30, 2026

古典的な 3 ステップ蒸留:基本設定 → 蒸留データ生成 → 生徒モデルのトレーニング。任意の教師モデル、生徒モデル、データセットを選択し、蒸留およびトレーニングパラメータを設定することで、ほとんどの汎用シナリオに対応できます。

テンプレート概要

汎用蒸留テンプレートは、ModelDistill の基本テンプレートです。ブラックボックス蒸留を使用します。つまり、生成によるデータ拡張の後に SFT トレーニングを行います。

シナリオ固有テンプレートとは異なり、汎用蒸留では、特定のタスクタイプ向けにあらかじめオペレーターオーケストレーションが設定されたパイプラインは使用しません。各ステージをユーザーが制御します。シナリオ固有テンプレートでは、指示蒸留、思考連鎖蒸留、マルチモーダル蒸留、Agent ツールコール蒸留など、一般的なタスクタイプをすでにカバーしています。まず、シナリオ固有テンプレートがタスクに適合するかを評価してください。いずれも一致しない場合は、汎用蒸留を使用します。

汎用蒸留は、固定の 3 段階パイプラインに従います。各ステージは作成ウィザードで設定できます。蒸留データとトレーニングアーティファクトは、再利用できるように別々に保存されます。

  1. 基本設定:タスク名、出力モデル名、パスを定義します。

  2. 蒸留データ生成:教師モデルを呼び出してソースデータから高品質な応答を生成し、蒸留用の SFT データセットを作成します。

  3. 生徒モデルのトレーニング:蒸留データで生徒モデルをファインチューニングし、デプロイ可能な蒸留モデルを生成します。

クイックスタート

次の手順では、PAI のパブリックデータセットとデフォルト設定を使用し、汎用蒸留タスクの全手順を実行する方法を説明します。

  1. PAI コンソールの モデルアプリケーション > モデル蒸留 (ModelDistill) セクションにログインします。

  2. タスクの作成 をクリックして 知識蒸留テンプレート タブに移動するか、直接 知識蒸留テンプレート タブに移動します。

  3. 一般蒸留を選択し、テンプレートの使用 をクリックして 知識蒸留ジョブの作成 ページに移動します。以下で説明するキーパラメーターを設定し、その他の設定はデフォルト値のままにします。

  4. 基本設定を完了します:

    • タスク名 と モデル名 は、システムによって事前入力されます。

    • [モデルの出力パス]: oss://mybucket.oss-cn-hangzhou-internal.aliyuncs.com/model-distill/model など、アクセス権のある OSS パスを指定します。

      説明

      モデルファイルの上書きを防ぐため、蒸留タスクごとに個別の出力ディレクトリを作成してください。OSS バケットは PAI サービスと同じリージョンにある必要があります。

  5. 次へ をクリックして、蒸留データ構築 ステップに進みます。

    • [教師モデル]: [教師モデルのソース] — Token Service を選択し、ドロップダウンリストから qwen3.8-max などのモデルを選択します。

    • [データセット]:パブリックデータセット を選択し、ドロップダウンリストから Chinese-medical-dialogue-data を選択します。また、カスタムデータセット を選択して独自のデータを使用することもできます。

    • [蒸留データの確認]: 蒸留データセットの出力パス として、アクセス権のある OSS パス (oss://mybucket.oss-cn-hangzhou-internal.aliyuncs.com/model-distill/dist-data など) を指定します。

    • [計算リソース]:リソースタイプ を 汎用コンピューティングリソース に、リソースのソース を パブリックリソース に設定し、タスクリソース で適切な リソース仕様 を選択します。

  6. 次へ をクリックして、生徒モデルトレーニング ステップに進みます:

    • [生徒モデル]: パブリックモデル を選択し、ドロップダウンリストから Qwen3-4B などの小規模なモデルを選択します。

    • [トレーニング方法]:LoRA を選択します。

    • [計算リソース]:リソースタイプ を 汎用コンピューティングリソース に、リソースのソース を パブリックリソース に設定します。次に、タスクリソース で適切な リソース仕様 を選択します。

  7. 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."
        }
    ]
  • [蒸留データの確認]:データ生成完了後に、生成された蒸留データをシステムがどのように処理するかを選択します。

    • [自動確認] (推奨します):システムが自動的にデータを検証して承認し、その後、生徒モデルのトレーニングを開始します。パブリックデータセット、またはデータの品質に自信がある場合に適しています。

    • [手動確認]:トレーニング開始前にデータ品質を手動でレビューする必要があります。高いデータ品質が求められる場合、またはカスタムデータセットを初めて使用する場合に適しています。手順は次のとおりです。

      1. 蒸留データ生成が完了すると、タスクのステータスが [Waiting for distillation data confirmation] に変わります。

      2. 「操作」列の蒸留データの確認をクリックします。確認ダイアログボックスが表示されます。

      3. ダイアログボックスで、詳細を見る をクリックすると、蒸留データセットの詳細が表示されます。

        • データ品質が期待どおりである場合は、確認 をクリックして生徒モデルのトレーニングを続行します。

        • データが期待どおりでない場合は、キャンセルをクリックして現在のステージでタスクを停止します。

生徒モデルのトレーニング

生徒モデルは、Model Gallery のパブリックモデル、またはカスタムモデル (現在は Model Gallery でファインチューニングした LLM に限定) を使用できます。生徒モデルのパラメータ数が教師モデルより少ないことを確認してください。

トレーニングモード

生徒モデルの SFT 手法を選択します。

  • LoRA (推奨します):パラメータ効率の高いファインチューニング手法です。良好な性能を維持しつつ、GPU メモリ要件を大幅に削減します。

  • QLoRA:LoRA の量子化バリアントで、GPU メモリ使用量をさらに削減します。よりリソース制約の厳しい環境でのトレーニングに適しています。

  • 全パラメータファインチューニング:すべてのモデルパラメータを更新します。理論上は最良の結果を得られますが、多大な計算リソースと時間が必要で、コストも高くなります。

検証セット

トレーニング中にモデルの性能を評価するために使用する検証データセットを選択します。

  • [設定しない]:トレーニング中に検証を行いません。迅速な実験や小規模データセットに適しています。

  • [蒸留データの自動分割] (推奨します):システムが生成された蒸留データセットを自動的にトレーニングセットと検証セットに分割します。デフォルトの検証セット比率は 5% です。

  • [検証データセットの追加]:独立した OSS データセットを検証セットとして指定します。標準の検証データセットがある場合に適しています。

ハイパーパラメータ

これらのハイパーパラメータは、生徒モデルの SFT トレーニングプロセスを制御します。

パラメータ

説明

チューニングのヒント

learning_rate

学習率。モデルパラメータを更新する際のステップサイズを制御します。デフォルト値は 5e-5 です。

• トレーニング損失の減少が遅い場合は、学習率を上げます。• 損失が大きく振動したり収束しなかったりする場合は、学習率を下げます。

num_train_epochs

トレーニングのエポック数。トレーニング中にデータセット全体を反復する回数を示します。デフォルト値は 1 です。

• 大規模データセットでは、通常 1~3 エポックで十分です。

• エポック数が多すぎると、過学習の原因になります。

per_device_train_batch_size

1 回のトレーニングステップで、GPU デバイスごとに処理されるサンプル数。デフォルト値は 1 です。

• GPU メモリに余裕がある場合は、この値を増やすことでトレーニングが高速化し、プロセスが安定する可能性があります。

• メモリ不足 (OOM) エラーが発生する場合は、まずこの値を下げます。

seq_length

生徒モデルに入力される最大シーケンス長 (トークン単位)。デフォルト値は 128 です。

• データ特性とユースケースに基づいて設定します。テキストが長い場合は、より大きな seq_length が必要です。

• この値を増やすと、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 を増やしてみてください。

評価

蒸留が完了したら、生徒モデルを評価します。

  1. モデルのデプロイ: タスク詳細ページで、右上隅にあるデプロイメントをクリックして、蒸留された生徒モデルをオンライン推論サービスとしてデプロイします。

  2. 比較評価:PAI のモデル評価機能を使用して、同一の評価データセット上で教師モデルと生徒モデルの性能指標 (精度や BLEU など) を比較し、性能の差を定量化します。

  3. 本番検証:本番環境に導入する前に、少ない割合のトラフィックでカナリアテストを実施します。実際のビジネスシナリオで、蒸留モデルと元のモデルの推論速度、リソース使用量、ビジネス指標を比較します。