Azure AI Foundry ポータルで言語モデルを微調整する

完了

言語モデルを微調整したい場合は、大量のデータに対する事前トレーニングが完了している基本または基盤モデルを使用できます。 Azure AI Foundry のモデル カタログを通じて利用できる基礎モデルは多数あります。 テキスト分類、翻訳、チャット補完など、さまざまなタスクについて基本モデルを微調整することができます。

微調整されたモデルを使用してチャット アプリケーションで応答を生成したい場合は、チャット補完タスクについての微調整が可能な基本モデルを使用する必要があります。 Azure AI Foundry モデル カタログを使用すると、微調整タスクに基づいてフィルター処理して、選択する基本モデルを決定できます。 たとえば、独自のトレーニング データでの微調整を行うのに GPT-4 や Llama-2-7b モデルを選択することができます。

Azure AI Foundry のモデル カタログからの言語モデルを微調整するには、ポータル内で提供されているユーザー インターフェイスを使用できます。

基本モデルを選択する

Azure AI Foundry ポータルでモデル カタログに移動すると、すべての利用可能な言語モデルを調べることができます。

利用可能な言語モデルはすべて Azure AI Foundry モデル カタログに表示されますが、利用可能なクォータによっては、必要なモデルの微調整を行うことができない場合があります。 微調整したいモデルが、自分が AI ハブを作成したリージョン内で利用できることを確認してください。

モデルを微調整するタスクに基づいて、使用可能なモデルをフィルター処理できます。 タスクごとに、基礎モデルを選択するためのいくつかのオプションがあります。 タスクの基礎モデルを決定するときに、モデルの説明と参照されるモデル カードを調べることができます。

以下に微調整前の基盤モデルの決定時に考慮に入れるべき点を示します。

  • モデルの機能: 基礎モデルの機能と、それらがタスクにどの程度合っているかを評価します。 たとえば、BERT のようなモデルは、短いテキストを理解することに優れています。
  • 事前トレーニング データ: 基礎モデルの事前トレーニングに使用されるデータセットを検討してください。 たとえば、GPT-2 はインターネット上のフィルター処理されていないコンテンツでトレーニングされるため、偏りが発生する可能性があります。
  • 制限と偏り: 制限や偏りが基礎モデルに存在する可能性があるので注意してください。
  • 言語サポート: ユース ケースに必要な特定の言語サポートまたは多言語機能を提供するモデルを確認してください。

ヒント

Azure AI Foundry ポータルはモデル カタログ内の各基盤モデルの説明を提供していますが、それぞれのモデル カードを通して各モデルの詳細を確認することもできます。 モデル カードは各モデルの概要で参照され、Hugging Face の Web サイトでホストされます。

ファインチューニング ジョブを構成する

Azure AI Foundry ポータルを使用して微調整ジョブを構成するには、以下の手順を実行する必要があります。

  1. 基本モデルを選択します。
  2. トレーニング データを選択する。
  3. "(省略可能)" 検証データを選択する。
  4. 詳細オプションを構成する。

微調整のためにモデルを送信すると、モデルはデータに対してさらにトレーニングされます。 微調整またはトレーニング ジョブを構成するにあたっては、以下の詳細オプションを指定できます。

名前 説明
バッチサイズ トレーニングに使用するバッチ サイズ。 バッチ サイズは、単一のフォワード パスおよびバックワード パスのトレーニングに使用されるトレーニング例の数です。 一般に、大規模なデータセットに対しては大きなバッチ サイズの方が上手く機能する傾向があります。 このプロパティの既定値と最大値は、基本モデルによって決まります。 バッチ サイズが大きいほど、モデル パラメーターの更新頻度は低くなりますが、分散は小さくなります。
learning_rate_multiplier トレーニングに使用する学習率乗数。 微調整学習率は、事前トレーニングに使用された元の学習率にこの値を乗算した値となります。 学習率が高いほど、大きいバッチ サイズでのパフォーマンスが向上する傾向があります。 0.02 から 0.2 の範囲の値を試して、最適な結果が得られるものを確認することをお勧めします。 学習率を低くすると、オーバーフィットを避けるのに役立つ場合があります。
n_epochs モデルをトレーニングするエポックの数。 エポックとは、トレーニング データセット全体での 1 つの完全なサイクルを指します。
シード シードはジョブの再現性を制御します。 同じシードおよびジョブ パラメーターを渡すと同じ結果が得られますが、まれに異なる場合があります。 シードが指定されていない場合は、自動的に生成されます。

微調整ジョブを送信すると、モデルをトレーニングするためのジョブが作成されます。 実行中のジョブの状態を確認することができます。 微調整されたモデルがどのように作成されたかを把握したい場合は、ジョブの完了後に入力パラメーターを確認できます。

検証データセットを追加した場合は、検証データセットに対するモデルのパフォーマンスを調べることでモデルのパフォーマンスを確認できます。

または、微調整されたモデルを任意のタイミングでデプロイすることもできます。 モデルのデプロイ後に、モデルをテストしてパフォーマンスを評価することができます。 微調整されたモデルに満足したら、デプロイされたモデルをチャット アプリケーションと統合できます。