次の方法で共有


Azure AI Foundry Models での Azure OpenAI の微調整に関する考慮事項

微調整とは、事前トレーニング済みの言語モデルを取得し、特定のタスクを実行したり、特定のデータセットのパフォーマンスを向上させたりするように調整するプロセスです。 これには、モデルの重みを少し調整しながら、より小さなタスク固有のデータセットでモデルをトレーニングする必要があります。 微調整では、大規模で多様なデータセットに対する最初のトレーニング中に取得したモデルの知識を活用し、ゼロから始めずに特化することができます。 多くの場合、このアプローチは、特に特殊なタスクに対して、新しいモデルをゼロからトレーニングするよりも効率的で効果的です。

微調整の主な利点

精度と関連性の向上

微調整では、タスク固有のデータを使用してトレーニングすることで、特定のタスクに対するモデルのパフォーマンスが向上します。 これにより、多くの場合、一般的なプロンプトを使用する場合と比較して、より正確で関連性の高い高品質の出力が得られます。

プロンプトに含めることができる例の数が限られている少数の学習とは異なり、微調整により、追加のデータセットでモデルをトレーニングできます。 微調整は、モデルがより微妙なパターンを学習し、タスクのパフォーマンスを向上させるのに役立ちます。

効率と潜在的なコスト削減

微調整されたモデルは、関連する例でトレーニングされるため、短いプロンプトが必要です。 このプロセスにより、各要求に必要なトークンの数が減り、ユース ケースによってはコストが削減される可能性があります。

微調整されたモデルではプロンプトに必要な例が少なくなるため、要求の処理が速くなり、応答時間が短縮されます。

スケーラビリティと特殊化

微調整により、言語モデルの広範な事前トレーニングが適用され、特定のアプリケーションの機能が強化され、対象となるユース ケースに対してより効率的かつ効果的になります。

小さいモデルを微調整すると、特定のタスクに対して、より大きくコストの高いモデルと同等のパフォーマンス レベルを実現できます。 このアプローチにより、計算コストが削減され、速度が向上し、リソースに制約のある環境に AI をデプロイするためのコスト効率の高いスケーラブルなソリューションになります。

微調整するタイミング

微調整は、少量のデータがあり、モデルのパフォーマンスを向上させたい場合に適しています。 微調整はさまざまな種類のユース ケースに使用できますが、多くの場合、より広範なカテゴリに分類されます。

  • 迅速なエンジニアリングオーバーヘッドの削減: 多くのユーザーは、いくつかのショット学習から始まり、必要な出力の例をシステム メッセージに追加します。 時間が経つにつれて、このプロセスによってプロンプトが長くなる可能性があり、トークンの数と待機時間が長くなる可能性があります。 微調整を使用すると、予想される出力に関するトレーニングを行うことで、これらの例をモデルに埋め込むことができます。これは、多数のエッジ ケースを含むシナリオで価値があります。

  • スタイルとトーンの変更: 微調整は、モデルの出力を目的のスタイルまたはトーンに合わせて調整し、カスタマー サービス チャットボットやブランド固有のコミュニケーションなどのアプリケーションの一貫性を確保するのに役立ちます。

  • 特定の形式またはスキーマでの出力の生成: モデルを微調整して、特定の形式またはスキーマで出力を生成できるため、構造化されたデータ生成、レポート、または書式設定された応答に最適です。

  • ツールの使用の強化: チャット補完 API はツール呼び出しをサポートしていますが、多くのツールを一覧表示するとトークンの使用量が増加し、幻覚につながる可能性があります。 ツールの例を使用して微調整すると、完全なツール定義がなくても、精度と一貫性が向上します。

  • 取得ベースのパフォーマンスの向上: 微調整と取得方法を組み合わせることにより、外部の知識を統合し、複雑なタスクを実行し、より正確でコンテキストに対応した応答を提供するモデルの能力が向上します。 微調整では、無関係な情報を除外しながら、取得したデータを効果的に使用するようにモデルをトレーニングします。

  • 効率の最適化: 微調整を使用して、より大きなモデルから小さいモデルにナレッジを転送することもできます。これにより、小さいモデルで同様のタスク パフォーマンスを低コストと待機時間で実現できます。 たとえば、パフォーマンスの高いモデルの生産データを使用して、より小さく効率的なモデルを微調整できます。 このアプローチは、品質を維持しながら AI ソリューションをスケーリングし、計算オーバーヘッドを削減するのに役立ちます。

  • 蒸留: モデル蒸留では、大規模なモデルの出力を使用して小さなモデルを微調整します。これにより、o1 デプロイから生産トラフィックを収集し、それをトレーニング データとして使用して 4o-mini を微調整するなど、特定のタスクで同様に実行できます。 このプロセスでは、小規模なモデルの方が効率的になるため、コストと待機時間を削減できます。

微調整の種類

Azure AI Foundry には、さまざまな種類の細かい -tuning 手法が用意されています。

  • 教師あり微調整: これにより、カスタム データ (モデルに応じて、プロンプト/入力候補または会話型チャット) を提供して、基本モデルに新しいスキルを学習させることができます。 このプロセスでは、各データ ポイントが正しい出力または回答に関連付けられている、高品質のラベル付きデータセットに対してモデルをさらにトレーニングする必要があります。 目標は、ラベル付けされたデータに基づいてパラメーターを調整することで、特定のタスクに対するモデルのパフォーマンスを向上させることです。 この手法は、問題を解決する有限の方法があり、モデルに特定のタスクを教え、その精度と簡潔さを向上させる場合に最適です。

  • 強化の微調整: これはモデルのカスタマイズ手法であり、非常に複雑または動的な環境でモデルの動作を最適化するのに役立ち、反復的なフィードバックと意思決定を通じてモデルを学習および適応することができます。 たとえば、金融サービス プロバイダーは、より迅速で正確なリスク評価やパーソナライズされた投資アドバイスのためにモデルを最適化できます。 医療および医薬品では、o3-miniを調整して創薬を促進し、より効率的なデータ分析、仮説の生成、および有望な化合物の同定を可能にすることができます。 RFT は、問題を解決する方法が無限または多数ある場合に微調整する優れた方法です。 グレーダーはモデルに段階的に報酬を与え、推論を改善します。

  • 直接優先の最適化 (DPO):これは、人間の好みに基づいてモデルの重みを調整するように設計された、大規模な言語モデルのもう 1 つの新しい配置手法です。 人間のフィードバックからの強化学習 (RLHF) とは異なり、DPO では報酬モデルを適合する必要はありません。また、トレーニングにはバイナリ設定が使用されます。 この方法は、計算の負荷がより軽く高速であるため、より効率的でありながら、調整時には同等の効果を発揮します。 トレーニング セットに対して好ましくない応答と好ましい応答を共有し、DPO 手法を使用します。

また、手法を積み重ねることもできます。最初に SFT を使用して、ユース ケースに合わせて最適化されたカスタマイズされたモデルを作成し、次にユーザー設定の微調整を使用して、特定のユーザー設定に合わせて応答を調整します。 SFT ステップでは、データの品質とタスクの代表性に重点を置き、DPO ステップでは特定の比較で応答を調整します。

微調整の課題と制限事項

大規模な言語モデルのスキャンを微調整することは、特定のドメインやタスクに適応させる強力な手法です。 ただし、微調整には、実際の問題に適用する前に考慮する必要があるいくつかの課題と欠点もあります。 これらの課題と欠点の一部を次に示します。

  • 微調整には、ターゲット ドメインとタスクに一致する高品質で十分な大きさの代表的なトレーニング データが必要です。 品質データは、モデルが現実の世界で遭遇する可能性のあるシナリオとバリエーションをカバーするのに十分な関連性、正確、一貫性があり、多様です。 品質が低いデータや表示されないデータは、微調整されたモデルのオーバーフィット、アンダーフィット、バイアスにつながるため、その一般化と堅牢性が損なわれます。
  • 大規模な言語モデルの微調整は、カスタム モデルのトレーニングとホストに関連する追加コストを意味します。
  • 大規模な言語モデルの微調整に使用される入力/出力ペアの書式設定は、そのパフォーマンスと使いやすさにとって非常に重要な場合があります。
  • データが更新されたとき、または更新された基本モデルがリリースされるたびに、微調整を繰り返す必要がある場合があります。 これには、定期的な監視と更新が含まれます。
  • 微調整は反復的なタスク (試行錯誤) であるため、ハイパーパラメーターは慎重に設定する必要があります。 微調整には、必要なパフォーマンスと品質を実現するために、ハイパーパラメーターと設定の最適な組み合わせを見つけるために多くの実験とテストが必要です。

次のステップ