大语言模型(LLM)的推理计算挑战一直是其广泛应用的障碍,尤其是在处理长上下文时。由于注意力计算的二次复杂性,一个8B参数的LLM在单个A100 GPU上处理1M token的提示(即预填充阶段)需要30分钟。
为了解决这个问题,微软提出了MInference(百万token推理),这是一种基于动态稀疏注意力的计算方法,旨在加速长序列的预填充。
MInference的核心思想是利用长上下文注意力矩阵中的三种独特模式(A-形状、垂直斜线和块稀疏)进行高效的稀疏计算。通过离线确定每个注意力头的最佳模式,并在推理过程中动态构建稀疏索引,MInference能够仅计算最相关的注意力权重,从而显著减少计算量。
在广泛的下游任务和模型上进行了实验,包括InfiniteBench、RULER、PG-19和Needle In A Haystack,以及LLaMA-3-1M、GLM-4-1M、Yi-200K、Phi-3-128K和Qwen2-128K。结果显示,MInference在保持准确性的同时,将推理延迟减少了多达10倍,将1M上下文的预填充时间从30分钟缩短到3分钟。
MInference的优点是可以直接应用于现有的LLM,而不需要修改预训练设置或进行额外的微调。它还具有较低的计算开销,并能够有效地利用GPU的并行性。
然而,MInference仍然存在一些局限性。首先,它可能无法适用于所有类型的LLM,特别是那些具有不同注意力模式的LLM。其次,虽然MInference在保持准确性方面表现出色,但在某些情况下,它可能会引入一些性能损失。最后,MInference的实现可能需要一些专业知识,并且可能需要一些时间和资源来集成到现有的系统中。