「前方予測デコーディング」:LLM推論を加速するための並列デコーディングアルゴリズム
「前方予測デコーディング」:LLM推論をスピードアップするパラレルデコーディングアルゴリズム
大規模な言語モデル(LLM)であるGPT-4やLLaMAなどは現代のアプリケーションを再構築し続けているが、推論は遅く最適化が困難であるため、自己回帰デコーディングに基づいている。LLMのリクエストの遅延は、リクエストの回答の長さ、または同等の復号化ステップの数にほとんど依存しており、自己回帰デコーディングの各ステップでは時間ごとに1つのトークンしか生成されないため、現在のGPUの並列処理能力は一般的に十分に活用されていない。これは、チャットボットや個人アシスタントなどの実用的なLLMアプリケーションでは問題となり、瞬時の応答を必要とするため、低レイテンシで大規模なシーケンスを頻繁に生成することになる。
自己回帰デコーディングは、メドゥーサとOSDのような先読みデコーディング手法を使用することで高速化することができる。これらの手法は、「予測して確認する」という戦略を採用し、予備モデルが将来のいくつかの可能なトークンについて予測し、オリジナルのLLMがこれらの予測を並列で確認する。これにより、デコードのステップ数が少なくて済む場合にレイテンシを削減することができる。しかし、これらの手法には制約もある。まず、ドラフトモデルが主モデルの出力を適切に予測することができる割合、または同等のトークン受理率は、先読みデコーディング手法が達成できる最大の高速化の上限である。第二に、信頼性のある予備モデルを開発することは容易ではなく、通常はトラフィックの時間的な変動を考慮してトレーニングと細かい調整が必要となる。
LMSYS ORGによる新しい研究では、これらの困難に対処するために開発された新しい正確なデコーディング技術である「先読みデコーディング」を紹介している。1つのステップで多くの後続トークンをデコードすることは計算上制約がありますが、LLMは複数の直交n-gramを同時に生成できることが観察されています。これらのn-gramは将来のシーケンスの一部に適用することができます。従来のヤコビ反復法は並列デコーディングに適応され、自己回帰デコーディングを非線形方程式の解と見なすことが可能になります。生成されたn-gramは記録され、確認後、シーケンスに組み込まれます。先読みデコーディングは特に次のような点で注目に値するです。
- AWS AIサービスの能力がFMによって強化されました
- 20/11〜26/11の間におけるコンピュータビジョン分野におけるトップ重要論文
- 新しいAmazon SageMakerコンテナでLLMの推論パフォーマンスを強化する
- 事前モデルを使用しないため、展開が高速化されます。
- 各ステージごとにデコードのステップ数をlog(FLOPs)倍減少させる
研究者は、先読みデコーディングがレイテンシを1.5倍から2.3倍低減することを実証しています。特に、ほとんど計算負荷を増やすことなく処理を削減することが可能です。ただし、利点は限定的です。
彼らは自分たちの実装を作成し、huggingface/transformersとの互換性を持つように先読みデコーディングを作動させています。HuggingFaceはネイティブ生成関数を提供していますが、ユーザーはわずかなコードで効率を大幅に向上させることができます。
ヤコビ反復法は非線形システムを解決するための確立された技術です。LLM推論は事前トレーニングモデルを必要とせず、並列にトークンを作成するためにも使用することができます。ヤコビデコーディングでは、各ステップで1つ以上のトークンに対してLLMの前方計算が行われるため、自己回帰デコーディングの各ステップよりもFLOPが多く必要です。研究者は、実世界のアプリケーションにおいてヤコビデコーディングのウォールクロック性能を大幅に改善しようとする際に遭遇するいくつかの困難を観察しています。ヤコビデコーディングは、多くのトークンを複数のステップでデコードすることができますが、トークンの順序がしばしば間違ってしまいます。適切に予測された場合でも、トークンは次のサイクルで置き換えられることがよくあります。そのため、わずかな反復で複数のトークンを同時に正確にデコードすることはできません。これにより、並列デコーディングを使用する目的が無効化されます。一般に、グラフィックス処理ユニットの並列処理能力のおかげで、パフォーマンスの低下は起こりません。
先読みデコーディングは、ヤコビデコーディングの並列n-gram生成能力を生かすことで、これらの欠点を克服することができます。ある時点での各新しいトークンは、ヤコビデコーディングで前の反復のその位置の値を使用してデコードされます。このプロセスにより、多くのn-gramが形成され、各トークン位置の過去のトークンのタイムラインが作成されます。これを活用するため、先読みデコーディングではこれらのn-gramが軌跡に基づいて収集され、キャッシュされます。先読みデコーディングは、将来のトークンに対してヤコビ反復を使用した並列デコーディングを実行しながら、キャッシュから期待されるn-gramを同時に確認します。
各先読みデコードフェーズは、効率を向上させるために、先読みブランチと検証ブランチの2つの並行したブランチに分割されます。Jacobi反復軌跡からn-gramを生成するため、先読みブランチは定数サイズの二次元ウィンドウを保持します。同時に、有望なn-gramの候補は検証ブランチによって選択され、確認されます。
LLMデコードにおいて主要なボトルネックはメモリーバンド幅であるため、研究者は先読みブランチと検証ブランチを1回の通過に組み合わせ、関連するオーバーヘッドを隠蔽しながらGPUの並列処理能力を活用します。
研究チームは、LLaMA-2-ChatとCodeLLaMAの異なるサイズをMT-bench、HumanEval、GSM8Kでテストし、先読みデコードの有効性を確認しました。先読みデコード技術は、微調整や事前モデルの必要性なしに高速化を実現します。彼らはfp16精度の下で、単一のA100 GPUで7B、13B、33Bモデルを評価し、2つのA100 GPUで70Bモデルをパイプライン並列処理します。
- MT-Bench LLaMA Discussion: 多くのモデル構成で、先読みデコードによるスピードアップは約1.5倍です。
- HumanEval’s CodeLLaMA: CodeLLaMAでは、先読みデコードを使用するとHumanEvalのレイテンシが2倍以上減少します。これは、コードには数多くの容易に推測可能なN-gramが含まれているためです。
- GSM8Kの教育用CodeLLaMA: 先読みデコードにより、CodeLLama-InstructorをGSM8Kの数学的な課題に適用することで、レイテンシが1.8倍減少します。
The post ‘Lookahead Decoding’: A Parallel Decoding Algorithm to Accelerate LLM Inference appeared first on MarkTechPost.
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles