Amazon SageMaker AI モデルに対する推論の最適化 - Amazon SageMaker AI

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

Amazon SageMaker AI モデルに対する推論の最適化

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

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

最適化手法

Amazon SageMaker AI は、以下の最適化手法に対応しています。

コンパイル

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

コンパイルを使用してモデルを最適化する場合、事前にコンパイルできるというメリットがあります。これにより、モデルのデプロイ時間と自動スケーリングレイテンシーを短縮できます。モデルが新しいインスタンスにデプロイされるときに、モデルの重みに JIT コンパイルが不要になるためです。

GPU インスタンスのモデルをコンパイルすることにした場合、SageMaker AI では TensorRT-LLM ライブラリを使用してコンパイルを実行します。AWS Trainium インスタンスか AWS Inferentia インスタンスのモデルをコンパイルすることにした場合、SageMaker AI では AWS Neuron SDK を使用してコンパイルを実行します。

量子化

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

量子化のために SageMaker AI でサポートされているデータ形式はモデルによって異なります。サポートされている形式には以下が含まれています。

  • INT4-AWQ – 4 ビットデータ形式。Activation-aware Weight Quantization (AWQ) は、効率的で、正確、低ビット、重み専用の LLM のための量子化手法です。

  • FP8 – 8 ビット浮動小数点 (FP8) は、浮動小数点数の低精度形式です。この形式では、標準の FP16 浮動小数点形式よりもビット数が少ない値を表すことで、メモリ効率とモデル精度のバランスを取っています。

  • INT8-SmoothQuant – 8 ビットデータ形式。SmoothQuant は、動的範囲のバランスを取ることで、アクティベーションと重みの両方をスケールする混合精度量子化方法です。

投機デコーディング

投機的デコーディングとは、大規模な LLM のデータコーディング処理の速度を向上させる技術です。生成されたテキストの品質を損なうことなく、レイテンシーに対してモデルを最適化します。

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

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

SageMaker AI には、構築済みのドラフトモデルが使用できる状態で用意されており、独自のドラフトモデルを構築する必要はありません。SageMaker AI は独自のカスタムドラフトモデルの使用にも対応しているため、必要に応じてモデルを選択できます。

高速モデルロード

高速モデルロード手法では、SageMaker AI が ML インスタンスによりすばやくロードできるように LLM を準備します。

モデルを準備するために、SageMaker AI は、分散推論のためにそれぞれが別々の GPU に存在することができる部分に分割することで、事前にモデルをシャードします。また、SageMaker AI は、SageMaker AI がインスタンスに同時にロードできる同じサイズのチャンクにモデルの重みを保存します。

SageMaker AI が最適化されたモデルをインスタンスにロードすると、モデルの重みが Amazon S3 から直接インスタンスの GPU にストリーミングされます。重みをストリーミングすることで、SageMaker AI は通常必要ないくつかの時間のかかるステップを省略します。これらのステップには、Amazon S3 からディスクへのモデルアーティファクトのダウンロード、ホストメモリへのモデルアーティファクトのロード、最後にシャードを GPU にロードする前のホストへのモデルのシャードが含まれます。

ロードを高速化するためにモデルを最適化したら、SageMaker AI エンドポイントにより迅速にモデルをデプロイできます。また、自動スケーリングを使用するようにエンドポイントを設定すると、トラフィックの増加に対応するためにより迅速にスケールアウトされます。