この Microsoft の研究により、開発者は 100 万を超える入力テキストを 1 台のカード マシンで 10 倍高速に処理できるようになります。
Large Language Model (LLM) は長いコンテキスト処理の時代に入り、サポートされるコンテキスト ウィンドウは以前の 128K から 10M トークン レベルまで急増しました。 ただし、アテンション メカニズムの二次的な複雑さのため、モデルが入力プロンプト (つまり、事前入力段階) を処理し、最初のトークンの生成を開始するまでに数分かかる場合があります。その結果、最初のトークンの生成に時間がかかりすぎ、ユーザー エクスペリエンスに重大な影響を及ぼし、ロング コンテキスト LLM の広範な適用も大幅に制限されます。 たとえば (図 2a に示すように)、A100 を搭載した単一マシンで LLaMA-3-8B を提供する場合、300,000 個のトークンがあるというプロンプトが表示された場合、モデルはプリセットを完了するまでに 6 分かかります。事前入力フェーズ中に、プロンプトが 100 万トークンに増加すると、この数は 30 分に増加します。 セルフアテンション計算のオーバーヘッドは、事前入力遅延全体の 90% 以上を占め、LLM が長いコンテキストを処理する場合の主なボトルネックになります。既存の高速事前設定手法は、ロングコンテキスト LLM に適用すると、許容できる精度や効率を維持できないことがよくあります。 上記の問題を解決するために、Microsoft とサリー大学の研究者は、長いシーケンス処理における事前充填を高速化するように設計されたスパース計算手法、MInference (Milliontokens Inference) を提案しました。
- 論文アドレス: https://arxiv.org/pdf/2407.02490
- 論文ホームページ: https://hqjiang.com/minference.html
- 論文タイトル: MInference 1.0: Accelerated動的スパース アテンションによるロングコンテキスト LLM の事前入力
MInference は、事前トレーニング設定の変更や追加の微調整を行わずに、既存の LLM に直接適用できます。 さまざまな下流タスク (InfiniteBench、RULER、PG-19、Needle In A Haystack を含む) とモデル (LLaMA-3-1M、Yi-200K、GLM-4-1M、Phi-3-128K を含む) をテストすることによっておよび Qwen2-128K)、実験では、MInference が精度を維持しながら、A100 で事前設定された推論レイテンシを最大 10 分の 1 まで効果的に削減できることを示しています。
使用 MInference 1.0 ,长上下文 LLM(如 LLaMA-3-8B-1M、GLM-4-1M)在单个 A100 上的推理速度实现了 10 倍提升,并且准确度更高。作者提出了 MInference,这个名字反映了他们希望在一台 A100 机器上实现百万(million)token 推理的雄心。MInference 是一种无需训练的高效方法,用于基于动态稀疏注意力的长上下文 LLM 的预填充阶段。研究者认为注意力,特别是在长上下文中,是稀疏和动态的,即在不同的输入中,稀疏模式有很大的不同。这种动态稀疏性呈现出三种适用于所有输入的独特空间聚合模式:A 形(A-shape)、垂直 - 斜线(Vertical-Slash)和块状 - 稀疏(Block-Sparse)。MInference 首先使用内核感知稀疏模式搜索算法为每个头部离线确定最佳动态稀疏模式,如算法 1 所示。在推理过程中,它会根据头部的模式动态逼近动态稀疏指数,如算法 2、3 所示。最后,作者使用优化后的 GPU 内核执行高效的动态稀疏注意力计算,大大减少了长上下文 LLM 的预填充阶段延迟。例如,对于「垂直 - 斜线」模式,作者首先利用最后一个 Q 和 K 之间的注意力计算来估计垂直线和斜线的最佳指数。然后,他们利用动态稀疏编译器 PIT 和 Triton 构建垂直 - 斜线 FlashAttention 内核,加速注意力计算。对于 A 形、垂直 - 斜线和块状 - 稀疏模式,作者首先在注意力计算中使用 Q 和 K 的均值池。利用均值池和 MatMul 的交换属性,可以估算出块状 - 稀疏指数。然后,他们使用 Triton 构建块稀疏 FlashAttention 内核,加速注意力计算。有关内核的详细实现,请参阅附录 C.4 和代码。作者在一系列场景中测试了 MInference,包括 QA、编码、基于检索的任务、multi-hop QA、总结和数学任务。RULER 基准包括几个复杂的 multi-hop 或 multi-needle 任务,有效地反映了 LLM 的实际上下文窗口大小。如表 1 所示,MInference 有效地保留了 LLM 的实际上下文窗口处理能力,甚至将实际上下文窗口大小略微扩展到 32K。作者还使用平均 token 长度为 214K 的 InfiniteBench 在更广泛的任务中测试了 MInference,如表 2 所示。与 SoTA 基线相比,MInference 在所有任务中都始终保持了良好的性能。值得注意的是,在更具挑战性的检索任务(如 KV 检索任务)中,所有基线都无法做出准确预测,准确率低于 1.2%。但是,MInference 成功地保留了处理动态 KV 对检索的能力。为了进一步评估不同上下文长度和关键信息在提示中不同位置时的性能,作者使用「大海捞针」任务测试了各种模型和方法。如图 1 所示,MInference 在不同的模型、上下文窗口和提示信息位置下都表现良好,与原始模型相比,其性能保持不变甚至略有提高。在 LLaMA-3-8B 和 GLM-4-9B-1M 的情况下,MInference 在高达 1M 的上下文窗口中实现了完全绿色的性能。相比之下,即使在 70K 上下文窗口中,StreamingLLM 和 InfLLM 在提示的中间段性能也会下降到 20% 以下。作者还使用 PG-19 在语言模型任务中测试了 MInference,其中包括多达 100k 的 token。図 2 に示すように、MInference は LLaMA-3-8B および Yi-9B-200K のパープレキシティを効果的に維持しますが、すべてのベースラインはさまざまな程度のパープレキシティの低下を示します。さらに、拡張およびストライド構成を使用する StreamingLLM は、標準の StreamingLLM と比較して、パープレキシティのパフォーマンスをよりよく維持します。 図 3 は、この記事で提案されている 3 つのアテンション モードと、FlashAttendant のマイクロ ベンチマーク結果を示しています。垂直スラッシュは 3 つのモードの中で最も遅いことがわかりますが、1M コンテキスト ウィンドウの下では、FlashAttend と比較して 13 倍の高速化を達成しています。 図 4 は、Vertical-Slash ヘッダー カーネルのスパース インデックスを示しています。垂直線は PIT FlashAttendant 経由で 1x64 ブロックを使用して計算され、対角線はブロックレベルの FlashAttendant 経由で 64x64 ブロックを使用して計算されます。 参考リンク:https://hqjiang.com/minference.html以上が1 枚のカード A100 で数百万のトークン推論を実行できます。これは、Microsoft の公式の大規模モデル推論の高速化です。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。