Multi-Bin Batching for Increasing LLM Inference Throughput
本論文は、予測される実行時間が類似したLLMのリクエストを既定のビンにグループ化することで、静的バッチング下での推論スループットを理論的に最大化し、生成長の変動に起因するリソースの低利用率を大幅に削減する制御ポリシーであるMulti-Bin Batchingを提案する。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
デジタル時代において、大規模言語モデルは、物語を書いたり、コードのデバッグを行ったり、複雑な質問に答えたりすることができる、新しいインテリジェントなツールの背後にあるエンジンとなっています。これらのシステムは、次に来る単語をシーケンス内で一つずつ予測することで機能しており、そのプロセスには膨大な計算能力を必要とします。多くの人々が同時にこれらのシステムを利用できるようにするためには、サーバーは数千ものリクエストを同時に処理しなければなりません。これを行う標準的な方法は「バッチング」と呼ばれる手法であり、コンピュータは複数のリクエストを一つのグループにまとめ、それらを同時に処理します。これは、複数の乗客を同じ目的地へ運ぶバスのようなものです。この並列処理は速度面では不可欠ですが、ある微妙な非効率性を生み出します。すなわち、バスが次の行程に出発する前に、グループ内の全員が揃うまで待たなければならないという点です。もし10人のグループのうち一人が準備に長い時間を要する場合、他の人々が即座に準備ができても、コンピュータはその一人の遅いリクエストを待つためにアイドル状態となり、貴重な時間とエネルギーを浪費してしまいます。
研究者たちは、バッチングの効率性を放棄することなく、この「待ちゲーム」を解決する方法を長年模索してきました。新たな研究では、「マルチビン・バッチング(multi-bin batching)」と呼ばれる解決策を提案しています。これは、到着するリクエストを、予想される所要時間に基づいて別々の待ち行列に整理する方法です。すべてのリクエストを一つの混在したキューに投げ込むのではなく、システムは各ユーザーが求める回答の長さを予測し、それらを異なる「ビン(箱)」へと振り分けます。回答が短くなりそうなリクエストは一つのビンに入り、長くなりそうなものは別のビンに入ります。そして、これらのビンの中でバッチが形成されるため、単一のグループ内のリクエストが互いに似たような所要時間を持つようになります。これにより、速いリクエストが遅いリクエストによって足止めされることがなくなり、コンピュータはグループの作業をより早く完了させて、次のグループを開始できるようになります。
研究者たちは、サーバーを定常的なリクエストの流れを処理する単一の機械として扱う数学的フレームワークを用いて、このアイデアをテストしました。彼らは、ビンの数を増やすことで、システムが、遅れているリクエスト(ストラグラー)を待つことで時間が無駄になる理論上の最大速度に限りなく近づけることを証明しました。分析の中で、ビンが正しく設定されていれば、コンピュータがグループの終了を待つ時間は大幅に減少することを示しました。また、回答の生成にかかる時間が特定の統計的パターンに従う場合についても検討し、タイミングが予測不可能であってもこの論理が成立することを確認しました。核心となる発見は、単にリクエストが到着した順序通りに処理するのではなく、似たようなタスクをグループ化するだけで、現在のシステムを悩ませているアイドル時間を劇的に減少させられるということです。
この理論が現実世界で機能するかどうかを確認するため、チームは高性能なグラフィックスカード上で、普及しているオープンソースモデルを使用して実験を行いました。彼らは、この新手法を標準的なバッチング手法、および、空きができ次第新しいリクエストがグループ内に割り込める「コンティニュアス・バッチング(continuous batching)」と呼ばれるより高度なシステムと比較しました。研究者が各回答の長さを正確に把握していた制御されたテストにおいて、16個のビンを用いた彼らのマルチビン手法は、標準的な手法よりも150パーセント以上優れた性能を示しました。この特定のシナリオにおいては、コンティニュウス・バッチングをも僅かに上回っており、もしタスクの所要時間を完璧に予測できるのであれば、それらを厳密なグループに分類することは非常に効果的な戦略であることを示唆しています。
しかし、現実の世界はこれほど予測可能なものではありません。研究者が、回答の長さを確実な知識としてではなく推定値として扱う、実際のユーザーからの質問のデータセットにこの手法を適用したところ、結果は依然として素晴らしいものではありましたが、より控えめなものとなりました。回答の長さを推測するための軽量なツールを使用した場合、マルチビン・システムは標準的な手法に対して150パーセントのスループット向上を実現し、これは莫大な利得です。それでもなお、全体として最も高速であったコンティニュウス・バッチングには及びませんでした。「完璧な知識」による理想的な結果と推定による結果との差は、予測の精度が極めて重要であることを示しており、システムが長さを正しく推測できたとき、パフォーマンスは大幅に跳ね上がりました。これは、分類戦略自体は強力であるものの、その潜在能力を最大限に引き出すには、タスクが始まる前にその長さを予測する非常に優れた方法が必要であることを示しています。
本研究は、このビンニング・アプローチは既存の洗練されたシステムに取って代わるものではなく、むしろそれらに追加できる強力なツールであると結論付けています。メインの処理キューにリクエストが到達する前のスマートな分類メカニズムとして機能することで、現代のサーバーがトラフィックをより効率的に処理する助けとなります。研究者たちは、ビンの数が「チューニング・ノブ(調整つまみ)」として機能することを発見しました。少なすぎると、速度の不一致による問題が残り、多すぎると、分類に費やす時間が処理を遅らせる可能性があります。最適なバランスは、特定のワークロードや、システムがいかに正確にタスクの長さを予測できるかに依存します。結局のところ、この研究は、リクエストのグループ化の方法を変えること、つまり、似たようなタスクを「見知らぬ他人」ではなく「隣人」として扱うことが、私たちの日常のデジタル生活を支える人工知能システムの速度を大幅に向上させる鍵であることを実証しています。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。