LLM推論の効率的フロンティア
The efficient frontier of LLM inference (baseten.co)
要約
この記事では、LLM推論における「効率的フロンティア」の概念を解説しています。これは、レイテンシ、スループット、コストといった要素間のトレードオフを管理するフレームワークです。効率的フロンティアを「移動させる」技術と、フロンティア上の特定の点を「ターゲットにする」技術に分け、それぞれの具体的な手法を説明しています。
全文翻訳
LLM推論の効率的フロンティア
AI業界では、経済学から「効率的フロンティア」という言葉を借用しています。これは、モデルのコストと能力の間のトレードオフを管理するために使われます。モデルが「フロンティアモデル」であるとは、特定のコストまたはサイズで最高の知能を提供するものを指します。
✕
[画像: 効率的フロンティアは、リソースが制約された環境で2つの価値ある結果の間でトレードオフを行う際の最適な組み合わせの範囲を示します。]効率的フロンティアは、リソースが制約された環境で2つの価値ある結果の間でトレードオフを行う際の最適な組み合わせの範囲を示します。
推論エンジニアリングにも効率的フロンティアが存在します。これは最も頻繁にはレイテンシとスループット(コストを決定する)の間のトレードオフとして表現されますが、品質をスループットと交換したり(量子化、蒸留、プルーニング経由)、知能を速度と交換したり(推論レベルの形式で)することも可能です。
推論エンジニアが利用できる技術には2種類あります。
- デプロイメントを効率的フロンティアに沿って移動させるために、2つの要素間のトレードオフを行う技術。
- 特定のデプロイメントのフロンティア全体を押し広げ、最も有益な結果に割り当てられる全体的な効率をさらに高める技術。
どちらのタイプの技術も価値があります。
トレードオフを行うことで、効率的フロンティア上の任意の点をターゲットにできることは有用です。ユーザーごとの速度を犠牲にすることで、バッチワークロード向けのハイ・スループット、ロー・コストなパイプラインを構築することが可能になります。レイテンシに敏感なユーザーが高額を支払う意思がある場合、スループットを犠牲にして速度を向上させることは理にかなっています。
そしてもちろん、フロンティア全体を押し広げることは信じられないほど有用です。より多くの効率を解放することで、レイテンシの低減、スループットの向上、またはその両方の組み合わせに割り当てられる利点が生み出されます。
この記事では、フロンティア上の点をターゲットにできる推論エンジニアリング技術と、フロンティア全体を押し広げる技術について詳しく説明します。この記事では、KVキャッシュの再利用を有効にし、KVを意識した最適なルーティングで、エージェント的なコーディングのためにGLM-5.3やKimi K3のようなLLMを実行することを想定します。
トレードオフを管理する技術
本番環境で特定のターゲットを達成することは、しばしば新しいアプローチを発見することよりも、トラフィックの性質に応じて適切な設定を見つけることが重要です。
✕
[画像: トレードオフを管理する技術により、効率的フロンティアに沿った結果をターゲットにできます。]トレードオフを管理する技術により、効率的フロンティアに沿った結果をターゲットにできます。
実際には、効率的フロンティアは非常にギザギザしています。結果間の滑らかで連続的な線ではなく、小さな変化が大きな影響を与えることがあります。これらのカットオフポイントは直感的でないことが多く、スイープを通じて経験的に発見する必要があります。
バッチサイズ
レイテンシとスループットの間の最も明白なトレードオフは、バッチサイズに由来します。バッチとは、同時に処理されるリクエストの数です。トークンレベルの連続バッチングは、バッチの開始を待つことによるレイテンシがないことを意味しますが、設定されたバッチサイズがユーザーごとのレイテンシと全体のスループットを決定します。
小さいバッチサイズでは、ユーザーごとのレイテンシは優れていますが、GPUあたりで生成される総トークン数は少なくなります。これは、トークンあたりのコストが非常に高いことを意味します。バッチサイズを増やすと逆の効果が得られます。ユーザーごとのレイテンシは悪化しますが、全体のスループットは向上し、コストは低くなります。
並列化戦略
今日のLLMは数百億から数兆のパラメータを持ち、複数のGPUに分散させる必要があります。それらがGPU間で共有される、つまり並列化される方法は、レイテンシまたはスループットのいずれかをブーストできます。
✕
[画像: 並列化は、大規模なモデルを複数のGPUに分割します。]並列化は、大規模なモデルを複数のGPUに分割します。
レイテンシに敏感なデプロイメントでは、テンソル並列化(TP)を増やすことに焦点を当ててください。TPは高価なall-to-all通信を伴いますが、これらの操作は高帯域幅のNVLinkインターコネクト上で高速であるため、レイテンシを低減するのに効果的です。
エキスパート並列化(EP)は、レイテンシとスループットの両方に役立ちます。低い度のEPはしばしばレイテンシの向上と関連付けられますが、GPUのフルラック全体にわたるEPを含む広いEPは、一般的により高いスループットをサポートします。
スループットを向上させる別の並列化技術は、アテンションデータ並列化(ADP)です。この技術は、並列計算のためにアテンションレイヤーを複製し、リクエストごとの速度を犠牲にしてシステムのスループットを向上させます。
量子化
量子化、つまり重み、アクティベーション、および/またはKVキャッシュ値の精度を低くしてモデルを実行することは、レイテンシとスループットの両方を改善します。量子化されたモデルは、サービングのトレードオフにおける効率的フロンティアを押し広げます。
しかし、量子化は品質とサービング効率の間の新しいトレードオフのセットを導入します。これは特にギザギザしたフロンティアであり、MXFP4やNVFP4のようなマイクロ・スケーリング浮動小数点数フォーマットを使用する場合、モデル品質の低下がほとんどまたは全くない状態で、サービング効率の大幅な改善が可能です。
フロンティアを移動させる技術
これらの技術は、見出しを飾るものです。全体的なパフォーマンスの向上は、推論エンジニアリングの最も楽しい部分です。
✕
[画像: フロンティアを押し広げる技術は、普遍的な利点をもたらします。]フロンティアを押し広げる技術は、普遍的な利点をもたらします。
最も良い点は、これらの技術がしばしば相乗効果を生むことです。例えば、より良いハードウェアによるパフォーマンスの倍増と、より良いソフトウェアによるパフォーマンスの倍増は、全体的なサービングで4倍の改善を意味し、これはレイテンシとスループットに割り当てることができます。
カーネル最適化とランタイム改善
CUDAカーネルは、推論プロセスの一部分(行列乗算など)を実行する低レベルの関数です。個々のカーネルのパフォーマンス、および推論エンジニアリングにおけるフォワードパスのエンドツーエンドのパフォーマンスを改善することは、各トークンを生成するために必要なリソースが少なくなることを意味します。これらの効率の向上はスタック全体で積み重なり、パフォーマンスのフロンティアを押し広げます。
カーネルレベルのパフォーマンスの詳細については、BasetenのインターンであるBrian Liによる優れた解説をお読みください。
推測デコーディング(Speculative decoding)
推測デコーディングは、モデルが生成する可能性のあるトークンを推測し、その推測を検証するプロセスです。推測デコーディングが新しい技術だった頃は、レイテンシとスループットのトレードオフを伴いました。推測はコストが高く、シーケンス長は短く、受け入れ率は低かったため、推測デコーディングは小さいバッチサイズでのみ実行可能でした。
今日では、EAGLE-3、DSpark、DFlashのような技術は、依然としてメインモデルループとリソースを競合し、最大バッチサイズをいくらか制限しています。しかし、これらの技術の強力なパフォーマンス、特にコード生成のように出力トークンシーケンスが比較的予測可能な場合、推測デコーディングは、ユーザーあたりの毎秒トークン数の増加という形でレイテンシを直接削減するだけでなく、スキップされたフォワードパスからの効率向上をもたらします。
分離(Disaggregation)
P/D分離、つまりプリフィルとデコードを専用ワーカーに分離することは、LLMの高ボリュームデプロイメントを最適化するための戦略です。プリフィルとデコードを独立して実行することは、ワーカーが各推論フェーズのユニークな特性に合わせて最適化できることを意味し、プリフィルとデコードワーカーの比率を入力および出力シーケンス長と受信トラフィックからのキャッシュヒット率に合わせて調整できることを意味します。
✕
[画像: 実際には、分離はレイテンシを同じかわずかに改善したまま、スループットを向上させるために最も役立つことが多いです。]実際には、分離はレイテンシを同じかわずかに改善したまま、スループットを向上させるために最も役立つことが多いです。
この記事では、トレードオフを管理する技術とシステム全体のパフォーマンスを向上させる技術の基本的な概要を提供しました。この記事で言及されているすべての技術の詳細については、私の無料書籍『Inference Engineering』をお読みください。