微软近日推出了 MInference 1.0,这项技术旨在提升长上下文大语言模型(LLM)的预填充速度。通过引入动态稀疏注意力机制,MInference 1.0 在确保准确性的同时,将 A100 GPU 上的预填充速度提升了 10 倍。
MInference 1.0 的工作原理是先离线确定每个头部的稀疏模式,然后在线近似稀疏索引,并采用自定义内核动态计算注意力。这种方法能够适配几乎所有开源的长上下文 LLM,包括 LLaMA-3(8B)、GLM-4(9B)、Yi(9B)、Phi-3(mini-128k)和 Qwen2(7B)。
预填充阶段在 LLM 的推理过程中非常关键,尤其是当处理长上下文时。传统的注意力机制处理长上下文时,计算复杂度成二次增长,处理时间明显增加。在单个 A100 GPU 上处理 1M 个令牌的提示需要耗费 30 分钟。MInference 1.0 通过利用 LLM 注意力机制的动态稀疏性,提升了预填充速度。
动态稀疏注意力机制是 MInference 1.0 的核心技术。它的基本思路是通过识别和利用注意力矩阵中的稀疏模式,减少计算量,从而提高计算效率。MInference 1.0 在长上下文注意力矩阵中识别了三种稀疏模式 ——A 形、垂直斜线和块稀疏。
在具体实现过程中,MInference 1.0 首先离线确定每个注意力头的稀疏模式。这一步骤通过分析注意力矩阵的结构,找到适合的稀疏模式,以便在推理过程中高效利用 GPU 资源。接下来,在推理过程中,MInference 1.0 根据离线确定的稀疏模式动态构建稀疏索引。通过在线近似稀疏索引,使得注意力计算在保持高准确性的同时减少了计算量。
最后,MInference 1.0 使用优化的自定义 GPU 内核执行动态稀疏注意力计算。这些自定义内核针对识别出的稀疏模式进行了优化,能够处理稀疏矩阵运算,进一步提升了计算速度。通过这一系列技术,MInference 1.0 将长上下文 LLM 的预填充时间减少了多达 10 倍。
MInference 1.0 在实际应用中减少了长上下文 LLM 的预填充时间,让这些模型在处理大规模数据时效率更高。这对于需要快速响应的场景,如实时翻译、智能客服和大规模文本分析,都是一大福音。
在不同任务和数据集上的表现也证明了 MInference 1.0 的有效性。像 InfiniteBench、RULER、PG-19 和 Needle In A Haystack 等下游任务中,MInference 1.0 不仅减少了推理延迟,还保持了高准确性。