Amazon によるモデル推論の最適化 SageMaker - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon によるモデル推論の最適化 SageMaker

Amazon を使用すると SageMaker、推論最適化技術を適用することで、生成 AI モデルのパフォーマンスを向上させることができます。モデルを最適化することで、ユースケースのコストパフォーマンスを向上させることができます。モデルを最適化するときは、量子化、投機的デコード、コンパイルなど、サポートされている最適化手法のうちどれを適用するかを選択します。モデルを最適化したら、評価を実行して、レイテンシー、スループット、料金のパフォーマンスメトリクスを確認できます。

多くのモデルでは、 には事前に最適化されたバージョン SageMaker もいくつか用意されており、それぞれがレイテンシーとスループットに対するさまざまなアプリケーションのニーズに対応します。このようなモデルでは、最初にモデルを自分で最適化することなく、最適化されたバージョンのいずれかをデプロイできます。

最適化手法

Amazon では、以下の最適化手法 SageMaker がサポートされています。

投機デコード

投機的デコードは、大規模な のデコードプロセスを高速化する手法ですLLMs。生成されたテキストの品質を損なうことなく、レイテンシーのためにモデルを最適化します。

この手法では、ドラフトモデルと呼ばれる、より小さく高速なモデルを使用します。ドラフトモデルは候補トークンを生成し、大きくても遅いターゲットモデルによって検証されます。反復ごとに、ドラフトモデルは複数の候補トークンを生成します。ターゲットモデルはトークンを検証し、特定のトークンが受け入れられないことが判明した場合、トークンを拒否して再生成します。したがって、ターゲットモデルはトークンを検証し、少量を生成します。

ドラフトモデルはターゲットモデルよりも大幅に高速です。すべてのトークンをすばやく生成し、検証のためにそれらのバッチをターゲットモデルに送信します。ターゲットモデルはこれらすべてを並行して評価するため、最終的なレスポンスが高速化されます。

SageMaker には、使用できる構築済みのドラフトモデルが用意されているため、独自のドラフトモデルを構築する必要はありません。独自のカスタムドラフトモデルを使用する場合は、 SageMaker もこのオプションをサポートしています。

量子化

量子化は、重みとアクティベーションに精度の低いデータ型を使用することで、モデルのハードウェア要件を減らす手法です。量子化でモデルを最適化した後、より安価で利用可能な でホストできますGPUs。ただし、量子化されたモデルは、最適化したソースモデルよりも精度が低い場合があります。

SageMaker は、 のアクティベーション対応重量量子化 (AWQ) をサポートしますGPUs。AWQ は、効率的、正確、低ビット、重量のみLLMsの の量子化手法です。

コンパイル

コンパイルは、精度を損なわずに、選択したハードウェアタイプで利用可能な最高のパフォーマンスを実現するためにモデルを最適化します。モデルコンパイルを適用して、Trainium や AWS Inferentia などの AWS 高速ハードウェアLLMsを最適化できます。

コンパイルを使用してモデルを最適化すると、コンパイルの ahead-of-time恩恵を受けることができます。モデルのデプロイ時間と自動スケーリングレイテンシーは短縮できます。これは、モデルが新しいインスタンスにデプロイするときにモデルの重みをコンパイルする必要 just-in-timeがないためです。

推論パフォーマンス評価のメトリクスリファレンス

最適化モデルのパフォーマンスを正常に評価すると、Studio の評価の詳細ページに次のメトリクスが表示されます。

レイテンシーメトリクス

レイテンシーセクションには、次のメトリクスが表示されます。

同時実行

エンドポイントを同時に呼び出すために評価がシミュレートした同時ユーザーの数。

最初のトークンまでの時間 (ミリ秒)

リクエストが送信されてからストリーミングレスポンスの最初のトークンが受信されるまでに経過した時間。

トークン間のレイテンシー (ミリ秒)

リクエストごとに出力トークンを生成する時間。

クライアントレイテンシー (ミリ秒)

リクエストが送信されてからレスポンス全体が受信されるまでのリクエストレイテンシー。

入力トークン/秒 (カウント)

すべてのリクエストで生成された入力トークンの合計数を、同時実行の合計時間を秒単位で割った値。

出力トークン/秒 (カウント)

すべてのリクエストで生成された出力トークンの合計数を、同時実行の合計時間を秒単位で割ったものです。

クライアント呼び出し (カウント)

同時実行ですべてのユーザーにわたってエンドポイントに送信された推論リクエストの合計数。

クライアント呼び出しエラー (カウント)

呼び出しエラーが発生した特定の同時実行時に、すべてのユーザー間でエンドポイントに送信された推論リクエストの合計数。

トークン化に失敗しました (カウント)

トークナイザーがリクエストまたはレスポンスの解析に失敗した推論リクエストの総数。

空の推論レスポンス (カウント)

出力トークンがゼロになったか、トークナイザーがレスポンスの解析に失敗した推論リクエストの総数。

スループットメトリクス

スループットセクションには、次のメトリクスが表示されます。

同時実行

エンドポイントを同時に呼び出すために評価がシミュレートした同時ユーザーの数。

入力トークン/秒/リクエスト (カウント)

リクエストごとに 1 秒あたりに生成された入力トークンの合計数。

出力トークン/秒/リクエスト (カウント)

リクエストあたりの 1 秒あたりの生成出力トークンの合計数。

入力トークン (カウント)

リクエストあたりの生成された入力トークンの合計数。

出力トークン (カウント)

リクエストあたりの生成された出力トークンの合計数。

料金メトリクス

Price セクションには、次のメトリクスが表示されます。

同時実行

エンドポイントを同時に呼び出すために評価がシミュレートした同時ユーザーの数。

100 万入力トークンあたりの料金

1M 入力トークンの処理コスト。

100 万出力トークンあたりの料金

1M 出力トークンの生成コスト。

サポートされているモデルリファレンス

次の表は、 が推論最適化 SageMaker をサポートするモデルと、サポートされている最適化手法を示しています。

推論の最適化をサポートするモデル
モデル名 JumpStart モデル ID 量子化をサポート 投機的デコードをサポート SageMaker ドラフトモデルによる投機的デコード
ファルコン huggingface-llm-falcon-40b-bf16 あり はい 不可
huggingface-llm-falcon-40b-instruct-bf16 あり はい 不可
huggingface-llm-falcon-180b-chat-bf16 不可 はい 不可
huggingface-llm-falcon-180b-bf16 不可 はい いいえ
huggingface-llm-amazon-falconlite はい はい 不可
huggingface-llm-amazon-falconlite2 あり はい 不可
huggingface-llm-tiiuae-falcon-rw-1b あり はい 不可
huggingface-llm-falcon-7b-bf16 あり はい 不可
huggingface-llm-falcon-7b-instruct-bf16 あり はい 不可
huggingface-llm-falcon2~11b あり はい 不可
gpt-neox ハギングフェイステキスト生成2-gpt-neoxt-chat-base-20b-fp16 あり はい 不可
huggingface-textgeneration2-gpt-neox-20b-fp16 あり はい 不可
LLaMA meta-textgeneration-llama-3-70b-instruct あり はい 可能
meta-textgeneration-llama-3~70b あり はい 可能
meta-textgeneration-llama-3-8b あり はい 可能
meta-textgeneration-llama-3-8b-instruct あり はい 可能
meta-textgeneration-llama-2-7b あり はい 可能
meta-textgeneration-llama-2-7b-f あり はい 可能
meta-textgeneration-llama-2-13b あり はい 可能
meta-textgeneration-llama-2-13b-f あり はい 可能
meta-textgeneration-llama-2-70b あり はい 可能
meta-textgeneration-llama-2-70b-f あり はい 可能
meta-textgeneration-llama-codellama-7b あり はい 可能
meta-textgeneration-llama-codellama-7b-instruct あり はい 可能
meta-textgeneration-llama-codellama-7b-Python あり はい 可能
meta-textgeneration-llama-codellama-13b あり はい 可能
meta-textgeneration-llama-codellama-13b-instruct あり はい 可能
meta-textgeneration-llama-codellama-13b-Python あり はい 可能
meta-textgeneration-llama-codellama-34b あり はい 可能
meta-textgeneration-llama-codellama-34b-instruct あり はい 可能
meta-textgeneration-llama-codellama-34b-Python あり はい 可能
meta-textgeneration-llama-codellama-70b あり はい 可能
meta-textgeneration-llama-codellama-70b-instruct あり はい 可能
meta-textgeneration-llama-codellama-70b-Python あり はい 可能
meta-textgeneration-llama-guard-7b あり はい はい
ブルーム huggingface-textgeneration-bloom-1b7 あり はい 不可
huggingface-textgeneration-bloom-1b1 あり はい 不可
huggingface-textgeneration-bloom-560m あり はい 不可
huggingface-textgeneration-bloomz-560m あり はい 不可
huggingface-textgeneration-bloomz-1b1 あり はい 不可
huggingface-textgeneration-bloomz-1b7 あり はい 不可
huggingface-textgeneration1-bloomz-7b1-fp16 あり はい 不可
ハギングフェイステキスト生成1-ブルーム-7b1 あり はい 不可
huggingface-textgeneration1-bloomz-3b-fp16 あり はい 不可
ハギングフェイステキスト生成1-ブルーム3b あり はい 不可
huggingface-textembedding-bloom-7b1 あり はい 不可
huggingface-textembedding-bloom-7b1-fp16 あり はい 不可
Cohere huggingface-llm-cohereforai-c4ai-command-r-plus 可能
宝石 huggingface-llm-gemma-7b あり はい 不可
huggingface-llm-gemma-7b-instruct あり はい 不可
huggingface-llm-gemma-2b あり はい 不可
huggingface-llm-gemma-2b-instruct あり はい 不可
huggingface-llm-zephyr-7b-gemma あり はい 不可
gpt2 huggingface-textgeneration-gpt2 可能 いいえ なし
huggingface-textgeneration-distilgpt2 可能 いいえ なし
霧状 huggingface-llm-mistral-7b あり はい 可能
huggingface-llm-mistral-7b-instruct あり はい 可能
huggingface-llm-mistral-7b-openorca-gptq あり はい はい
huggingface-llm-amazon-mistrallite はい はい 可能
huggingface-llm-thebloke-mistral-7b-openorca-awq あり はい 可能
huggingface-llm-huggingfaceh4-ミスタル-7b-sft-beta あり はい 可能
huggingface-llm-huggingfaceh4-ミスタル-7b-sft-alpha あり はい 可能
huggingface-llm-teknium-openhermes-2-ミストラル-7b あり はい 可能
huggingface-llm-nousresearch-yarn-ミストラル-7b-128k あり はい 可能
huggingface-llm-dolphin-2-2-1-ミストラル-7b あり はい 可能
huggingface-llm-cultrix-mistraltrix-v1 あり はい 可能
Mixtral huggingface-llm-mixtral-8x7b-instruct あり はい 可能
huggingface-llm-mixtral-8x7b-instruct-gptq あり はい 可能
huggingface-llm-mixtral-8x7b あり はい 可能
huggingface-llm-mistralai-mixtral-8x22B-instruct-v0-1 あり はい 可能
huggingface-llm-dolphin-2-5-mixtral-8x7b あり はい 可能
huggingface-llm-dolphin-2-7-mixtral-8x7b あり はい 可能
Phi huggingface-llm-phi-2 可能

最適化済み JumpStart モデル

以下は、事前に最適化された設定を持つ JumpStart モデルです。

Meta
  • Llama 3 8B 指示

  • Llama 3 8B

  • Llama 3 70B 指示

  • Llama 3 70B

  • Llama 2 70B チャット

  • Llama 2 7B チャット

  • Llama 2 13B チャット

HuggingFace
  • Mixtral 8x7B インストラクション

  • Mixtral 8x7B

  • 霧状 7B 指示

  • ミストラル 7B

コンパイル済み JumpStart モデル

一部のモデルと設定では、特定の Inferentia インスタンスと AWS Trainium AWS インスタンス用に事前にコンパイルされたモデル SageMaker を提供します。これらのために、コンパイルまたは最適化ジョブを作成し、デプロイインスタンスタイプとして ml.inf2.48xlarge または ml.trn1.32xlarge を選択すると、 はコンパイルされたアーティファクト SageMaker を取得します。ジョブは、すでにコンパイルされたモデルを使用しているため、コンパイルをゼロから実行せずにすばやく完了します。

以下は、 にコンパイル済み JumpStart モデル SageMaker があるモデルです。

Meta
  • Llama3 8B

  • Llama3 70B

  • Llama2 7B

  • Llama2 70B

  • Llama2 13B

  • コード Llama 7B

  • コード Llama 70B

HuggingFace
  • ミストラル 7B