この記事では、モデル カタログで基礎モデルを微調整、評価、デプロイする方法について説明します。
モデル カードのサンプル推論フォームを使用して、事前トレーニング済みモデルをすばやくテストし、結果をテストするための独自のサンプル入力を提供できます。 さらに、各モデルのモデル カードには、モデルの簡単な説明と、モデルのコード ベースの推論、微調整、評価のサンプルへのリンクが含まれています。
独自のテスト データを使用して基盤モデルを評価する方法
評価 UI フォームを使用するか、モデル カードからリンクされたコード ベースのサンプルを使用して、テスト データセットに対して基礎モデルを評価できます。
スタジオを使用した評価
任意の基盤モデルのモデル カードの [評価] ボタンをクリックして、[モデルの評価] フォームを呼び出すことができます。
モデルを使用する特定の推論タスクの各モデルを評価できます。
テスト データ:
- モデルの評価に使用するテスト データを渡します。 ローカル ファイル (JSONL 形式) をアップロードするか、ワークスペースから既存の登録済みデータセットを選ぶかを選択できます。
- データセットを選択したら、タスクに必要なスキーマに基づいて、入力データの列をマップする必要があります。 たとえば、テキスト分類の '文' キーと 'ラベル' キーに対応する列名をマップします
コンピューティング:
モデルの微調整に使用する Azure Machine Learning コンピューティング クラスターを指定します。 評価は GPU コンピューティングで実行する必要があります。 使用するコンピューティング SKU に十分なコンピューティング クォータがあることを確認します。
評価フォームで [完了] を選んで、評価ジョブを送信します。 ジョブが完了すると、モデルの評価メトリックを表示できます。 評価メトリックに基づいて、独自のトレーニング データを使用してモデルを微調整するかどうかを決定できます。 さらに、モデルを登録してエンドポイントにデプロイするかどうかを決定できます。
コード ベースのサンプルを使用した評価
モデルの評価を開始できるように、 azureml-examples git リポジトリの評価サンプルにサンプル (Python ノートブックと CLI の例の両方) が用意されています。 各モデル カードは、対応するタスクの評価サンプルにもリンクされています
独自のトレーニング データを使用して基盤モデルを微調整する方法
ワークロードでモデルのパフォーマンスを向上させるために、独自のトレーニング データを使用して基盤モデルを微調整する必要がある場合があります。 これらの基盤モデルを簡単に微調整するには、スタジオの微調整設定を使用するか、モデル カードからリンクされたコード ベースのサンプルを使用します。
スタジオを使用して微調整する
任意の基盤モデルのモデル カードの [微調整] ボタンを選択して、微調整設定フォームを呼び出すことができます。
微調整設定:
タスクの種類の微調整
- モデル カタログのすべての事前トレーニング済みモデルは、特定のタスク セット (テキスト分類、トークン分類、質問応答など) に対して微調整できます。 ドロップダウンから使用するタスクを選びます。
トレーニング データ
モデルの微調整に使用するトレーニング データを渡します。 ローカル ファイル (JSONL、CSV または TSV 形式) をアップロードするか、ワークスペースから既存の登録済みデータセットを選ぶかを選択できます。
データセットを選択したら、タスクに必要なスキーマに基づいて、入力データの列をマップする必要があります。 たとえば、テキスト分類の '文' キーと 'ラベル' キーに対応する列名をマップします
- 検証データ: モデルの検証に使用するデータを渡します。 [自動分割] を選ぶと、トレーニング データの自動分割が検証用に予約されます。 または、別の検証データセットを指定することもできます。
- テスト データ: 微調整したモデルの評価に使用するテスト データを渡します。 [自動分割] を選ぶと、トレーニング データの自動分割がテスト用に予約されます。
- コンピューティング: モデルの微調整に使用する Azure Machine Learning コンピューティング クラスターを指定します。 微調整は GPU コンピューティングで実行する必要があります。 微調整を行うときは、A100/V100 GPU でコンピューティング SKU を使用することをお勧めします。 使用するコンピューティング SKU に十分なコンピューティング クォータがあることを確認します。
- 微調整フォームで [完了] を選択して、微調整ジョブを送信します。 ジョブが完了すると、微調整したモデルの評価メトリックを表示できます。 その後、微調整ジョブによって微調整されたモデル出力を登録し、推論のためにこのモデルをエンドポイントにデプロイできます。
コード ベースのサンプルを使用した微調整
現在、Azure Machine Learning では、次の言語タスクのモデルの微調整がサポートされています。
- テキスト分類
- トークンの分類
- 質問応答
- 要約
- 翻訳
ユーザーが微調整をすぐに開始できるように、 azureml-examples git リポジトリの各タスクのサンプル (Python ノートブックと CLI の例の両方) を公開しました。 各モデル カードは、サポートされている微調整タスクの微調整サンプルにもリンクされています。
推論のためにエンドポイントに基盤モデルをデプロイする
基盤モデルを、推論に使用できるエンドポイントにデプロイできます。これらの基盤モデルには、モデル カタログから事前トレーニングされたモデルと、ワークスペースに登録された微調整されたモデルの両方が含まれます。 標準デプロイとマネージド コンピューティングの両方へのデプロイがサポートされています。 これらのモデルをデプロイするには、UI の展開ウィザードを使用するか、モデル カードからリンクされたコード ベースのサンプルを使用します。
スタジオを使用したデプロイ
モデルをデプロイするには、任意の基礎モデルのモデル カードで [ このモデルを使用 する] ボタンを選択し、 サーバーレス API または マネージド コンピューティングを選択します。 すべてのモデルがサーバーレス API デプロイをサポートしているわけではありません。 モデルがサーバーレス API をサポートしていない場合は、[ マネージド コンピューティング ] オプションのみが表示されます。
[配置の設定]
サーバーレス API を選択すると、展開フォームが表示されます。 展開フォームでは、展開名、および展開に使用するコンテンツ フィルター処理とモデル バージョンを有効にするかどうかを指定できます。 モデルをテストするためのサンプル入力データを提供することもできます。
[マネージド コンピューティング] を選択すると、展開設定フォームが表示されます。 デプロイ設定フォームでは、使用する仮想マシン SKU、インスタンスの数、デプロイに使用するエンドポイント名を指定できます。
共有クォータ
モデル カタログからモデルをデプロイしているが、デプロイに使用できるクォータが不足している場合、Azure Machine Learning では、共有クォータ プールからのクォータを限られた時間使用できます。 共有クォータについて詳しくは、「Azure Machine Learning の共有クォータ」をご覧ください。
コード ベースのサンプルを使用したデプロイ
デプロイと推論をすぐに開始できるように、 azureml-examples Git リポジトリの推論サンプルにサンプルが用意されています。 公開されているサンプルには、Python ノートブックと CLI の例が含まれます。 各モデル カードは、リアル タイムおよびバッチ推論の推論サンプルにもリンクされています。
基盤モデルのインポート
モデル カタログを検索しても、必要なオープン ソース モデルが見つからない場合は、Hugging Face から Azure Machine Learning ワークスペースにインポートできます。 [ インポート] ボタンは、検索で結果が返されない場合にのみ、モデル カタログに表示されます。
Hugging Face は、一般的な NLP タスク用に事前トレーニング済みのモデルを提供する自然言語処理 (NLP) 用のオープンソース ライブラリです。 現時点では、モデル インポート ノートブックに記載されている要件をモデルが満たしている限り、モデル インポートでは次のタスクのモデルのインポートがサポートされています。
- fill-mask
- トークン分類
- 質問応答
- 要約
- テキスト生成
- テキスト分類
- 移動
- 画像分類
- テキストから画像生成
Note
Hugging Face のモデルには、Hugging Face モデルの詳細ページで入手可能なサードパーティ ライセンス条項が適用されます。 モデルのライセンス条項を遵守するのは、お客様の責任です。
検索で結果が返されない場合は、[ モデル ノートブックのインポート ] を選択してモデル インポート ノートブックを使用します。
モデル インポート ノートブックは、こちらの azureml-examples の Git リポジトリにも含まれています。
モデルをインポートするには、Hugging Face からインポートするモデルの MODEL_ID
を渡す必要があります。 Hugging Face ハブでモデルを参照し、インポートするモデルを特定します。 モデルのタスクの種類が、サポートされているタスクの種類の 1 つであることを確認します。 モデル ID をコピーします。これはページの URI で使用できます。または、モデル名の横にあるコピー アイコンを使用してコピーできます。 モデル インポート ノートブックの変数 'MODEL_ID' に割り当てます。 次に例を示します。
モデルのインポートを実行するには、コンピューティングを提供する必要があります。 モデル インポートを実行すると、指定したモデルが Hugging Face からインポートされ、Azure Machine Learning ワークスペースに登録されます。 その後、このモデルを微調整するか、推論のためにエンドポイントにデプロイできます。
詳細情報
- Azure Machine Learning スタジオでモデル カタログを調べます。 カタログを調べるには、Azure Machine Learning ワークスペースが必要です。
- モデル カタログとコレクションについて確認する