Amazon Web Services ブログ
Amazon Bedrock Model Distillation (プレビュー) を使用して、より高速でコスト効率が高く、高精度なモデルを構築する
12 月 3 日、Amazon Bedrock Model Distillation のプレビュー版の提供開始をお知らせします。これは、教師モデルと呼ばれる大規模な基盤モデル (FM) から応答を生成し、生成された応答を使用して生徒モデルと呼ばれるより小さな FM をファインチューニングすることで、特定のユースケースのための蒸留モデルを作成するプロセスを自動化します。データ合成手法を用いて、教師モデルからの応答を改善します。その後、Amazon Bedrock は推論のために蒸留された確定モデルをホストし、ユースケースに合わせて、教師モデルに近い精度を持つ、より高速でコスト効率の高いモデルを提供します。
お客様からは、Amazon Bedrock で極めて強力かつ正確な FM を生成 AI アプリケーションのために使用できることについての喜びの声が寄せられています。ただし、一部のユースケースでは、これらのモデルに関連するレイテンシーは理想的ではありません。さらに、お客様は、生成 AI アプリケーションを数十億のユーザーインタラクションにスケールする際に、より優れた料金パフォーマンスを求めています。レイテンシーを低減し、ユースケースのコスト効率を高めるために、お客様はより小さなモデルに目を向けています。しかし、一部のユースケースでは、より小さなモデルでは最適な精度を提供できません。モデルをファインチューニングするには、質の高いラベル付きデータセットを作成し、お客様のユースケース向けにモデル精度を高めるための追加のスキルセットが必要です。
Amazon Bedrock Model Distillation では、知識転送のプロセスを使用して、より小さなサイズの生徒モデルの精度を高め、より高性能な教師モデルを模倣できます。任意の教師モデルから同じファミリーの生徒モデルに知識を転送することで、特定のユースケースでは、元の大きなモデルよりも最大 5 倍高速で、最大 75% 低コストの蒸留モデルを作成できます。また、検索拡張生成 (RAG) などのユースケースでは、精度の低下が 2% 未満です。
仕組み
Amazon Bedrock Model Distillation は、教師モデルからの応答を生成し、独自のデータ合成を追加することで教師モデルからの応答生成を改善して、生徒モデルをファインチューニングします。
Amazon Bedrock は、さまざまなデータ合成手法を用いて、教師モデルからの応答生成を強化し、質の高いファインチューニングデータセットを作成します。これらの手法は、特定のユースケースに合わせてカスタマイズされています。例えば、Amazon Bedrock は、同様のプロンプトを生成することでトレーニングデータセットを拡張し、ファインチューニングデータセットの量を効果的に増やすことができます。
あるいは、提供されたプロンプトと応答のペアをゴールデンサンプルとして使用することで、質の高い教師応答を生成することもできます。プレビューでは、Amazon Bedrock Model Distillation は、Anthropic、Meta、および Amazon モデルをサポートしています。
Amazon Bedrock Model Distillation の使用を開始する
使用を開始するには、Amazon Bedrock コンソールに移動し、左側のナビゲーションペインで [カスタムモデル] を選択します。ファインチューニング、蒸留、継続的な事前トレーニングの 3 つのカスタマイズ方法をご使用いただけるようになりました。
モデル蒸留を使用してモデルのファインチューニングを開始するには、[蒸留ジョブを作成] を選択します。
蒸留モデル名とジョブ名を入力します。
その後、教師モデルを選択し、選択した教師モデルに基づいて、使用可能な生徒モデルのリストから生徒モデルを選択します。教師モデルと生徒モデルは同じファミリーに属している必要があります。例えば、教師モデルとして Meta Llama 3.1 405B Instruct モデルを選択した場合、生徒モデルとして選択できるのは Llama 3.1 70B または 8B Instruct モデルのいずれかのみです。
合成データを生成するには、教師モデルによって生成される応答を決定する推論パラメータである [最大応答長] の値を設定します。Amazon Simple Storage Service (Amazon S3) バケットにある蒸留入力データセットを選択します。この入力データセットは、ユースケース用のプロンプトまたはプロンプトと応答のゴールデンペアを示します。入力ファイルは、モデルに応じたデータセット形式である必要があります。詳細については、「Amazon Bedrock ユーザーガイド」の「Prepare the datasets」にアクセスしてください。
その後、蒸留出力メトリクスデータと、ユーザーに代わって Amazon S3 に書き込むための許可を保存する Amazon S3 の場所を設定した後、[蒸留ジョブを作成] を選択します。
蒸留ジョブが正常に作成されたら、[ジョブ] タブでトレーニングの進行状況を追跡でき、モデルは [モデル] タブで使用できるようになります。
Amazon Bedrock Model Distillation での本番データの利用
蒸留のために本番データを再利用し、教師応答を再度生成しないようにするには、モデル呼び出しログ記録をオンにして、Amazon Bedrock で使用される AWS アカウントのすべての呼び出しについての呼び出しログ、モデル入力データ、およびモデル出力データを収集します。リクエストメタデータを追加すると、後で呼び出しログを簡単にフィルタリングするのに役立ちます。
request_params = {
'modelId': 'meta.llama3-1-405b-instruct-v1:0',
'messages': [
{
'role': 'user',
'content': [
{
"text": "What is model distillation in generative AI?"
}
]
}
},
'requestMetadata': {
"ProjectName": "myLlamaDistilledModel",
"CodeName": "myDistilledCode"
}
}
response = bedrock_runtime_client.converse(**request_params)
pprint(response)
---
'output': {'message': {'content': [{'text': '\n''\n'
'Model distillation is a technique in generative AI that involves training a smaller,'
'more efficient model (the '"student") to mimic the behavior of a larger, '
'more complex model '(the "teacher").The goal of model distillation is to'
'transfer the knowledge and capabilities of the teacher model to the student model,'
'allowing the student to perform similarly well on a given task, but with much less computational'
'resources and memory.\n'
'\n'}]
}
}
次に、Amazon Bedrock Model Distillation を使用する場合は、ユースケースのために必要な精度を備えた教師モデルと、ファインチューニングする生徒モデルを選択します。その後、呼び出しログを読み取るためのアクセスを Amazon Bedrock に付与します。ここで、生徒モデルをファインチューニングするためにユースケースに有効な特定のログのみが読み取られるよう、リクエストメタデータフィルターを指定できます。Amazon Bedrock で呼び出しログからの応答を再利用するには、蒸留のために選択した教師モデルと呼び出しログで使用されるモデルが同じである必要があります。
蒸留モデルからの推論
蒸留モデルを使用する前に、Amazon Bedrock のプロビジョンドスループットを購入し、その結果得られた蒸留モデルを推論のために使用する必要があります。プロビジョンドスループットを購入すると、契約期間を選択し、モデルユニットの数を選択して、時次、日次、月次の推定コストを確認できます。
モデルの蒸留ジョブは、AWS API、AWS SDK、または AWS コマンドラインインターフェイス (AWS CLI) を使用して完了できます。AWS CLI の使用の詳細については、AWS ドキュメントの「Code samples for model customization」にアクセスしてください。
知っておくべきこと
知っておくべき重要な事項をいくつか次に示します。
- モデルの蒸留は、特定のユースケースのために、教師モデルのパフォーマンスと同等になるよう、生徒モデルの精度を高めることを目的としています。モデルの蒸留を開始する前に、ユースケースに照らしてさまざまな教師モデルを評価し、ユースケースに適した教師モデルを選択することをお勧めします。
- 教師モデルの精度が許容可能であると判断したユースケースのためにプロンプトを最適化することをお勧めします。これらのプロンプトを蒸留入力データとして送信します。
- 対応する生徒モデルを選択してファインチューニングするには、ユースケース用のさまざまな生徒モデルオプションのレイテンシープロファイルを評価します。最終的な蒸留モデルのレイテンシープロファイルは、選択した生徒モデルと同じになります。
- 特定の生徒モデルが既にユースケースで適切に機能している場合は、蒸留モデルを作成するのではなく、該当の生徒モデルをそのまま使用することをお勧めします。
プレビューにご参加ください!
Amazon Bedrock Model Distillation は、米国東部 (バージニア北部) および米国西部 (オレゴン) の AWS リージョンでプレビューでご利用いただけるようになりました。今後の最新情報については、詳細なリージョンリストをご確認ください。詳細については、「Amazon Bedrock ユーザーガイド」の「Model Distillation」をご覧ください。
教師モデルによる合成データの生成コストと、モデル蒸留中に生徒モデルをファインチューニングするコストをお支払いいただきます。蒸留モデルの作成後は、蒸留モデルの保存にかかる月額コストをお支払いいただきます。蒸留モデルからの推論は、モデルユニットごとにプロビジョンドスループットに基づいて時間単位で課金されます。詳細については、「Amazon Bedrock の料金」にアクセスしてください。
今すぐ Amazon Bedrock コンソールで Amazon Bedrock Model Distillation をお試しいただき、AWS re:Post for Amazon Bedrock に、または通常の AWS サポートの連絡先を通じて、フィードバックをぜひお寄せください。
– Channy
原文はこちらです。