相关文章推荐
忐忑的登山鞋  ·  MapStruct Dozer ...·  1 年前    · 
低调的红豆  ·  ant design ...·  1 年前    · 
豪爽的牛肉面  ·  SourceTree ...·  2 年前    · 
大鼻子的荒野  ·  万字长文 - ...·  2 年前    · 

在2024年全球机器学习技术大会上,大模型的技术进步以及推理阶段的高效性成为了广泛关注的焦点。近年来,随着大规模语言模型(LLM)的参数量和功能复杂性的快速增长,其在实际应用中的计算开销和性能瓶颈逐渐显现,尤其是在推理阶段。如何在有限的硬件资源条件下有效加速推理过程,降低延迟并提升吞吐量,已经成为技术研发的核心议题。

大模型推理不仅仅是单一的算法优化问题,而是涉及到硬件、软件、算法、系统框架等多层次协同优化的综合工程。实际应用场景中,大模型的推理效率直接影响用户体验,尤其是在需要实时响应的场景下,诸如语音生成、智能对话、多模态翻译等任务。因此,推理加速不仅是技术挑战,同时也对大模型的商业化落地具有重要的意义。

在本研究中,基于最新技术实践,我们对大模型推理加速的关键技术进行了分析,并结合MindIE-LLM框架的具体优化案例,探索了从算法到硬件的多层次优化方案。本文的核心目标是为研究者和工程师提供系统化的推理加速思路,助力大模型在实际场景中的高效应用。

一、大模型推理的挑战

大模型在实际应用中的运行成本和推理时间是两个必须考虑的重要因素。一方面,越来越庞大的模型需要更多的计算资源,包括显卡的高负载和大量的内存使用。另一方面,最终用户希望在推理时获得快速的响应时间,这就需要有效的大模型推理加速方案。

大模型推理的主要挑战包括:

1. 高计算成本和内存需求

大模型通常拥有数十亿甚至上百亿的参数,这使得模型在推理阶段需要大量的计算资源和能耗。如图(1)所示,超大模型参数和超长序列是大模型的发展趋势,这使得大模型推理对计算和内存的需求日益增加。例如,具有700亿参数的LLaMA-2-70B模型在推理时需要至少6张RTX 3090Ti GPU或者2张NVIDIA A100 GPU,且多卡并行是必不可少的,以保证推理的高效执行。

Prefill阶段主要处理输入序列的特征提取,而Decode阶段则涉及到逐步生成输出。在这两个阶段中,由于不同请求输入长度的差异,计算的需求和复杂度存在较大变化,导致难以充分利用计算资源。例如,在Prefill阶段,计算需求较大且资源消耗高,而在Decode阶段,每次仅生成一个token,计算任务相对较小且不均匀,导致计算资源利用率低下。

针对传统 PD 分离在 Prefill 和 Decode 阶段存在的计算需求不均衡、通信开销大等问题,本文在后续部分将讨论优化后的方案如何解决这些问题。

2.2. 自回归推理的低计算力利用率

在Decode阶段,大模型需要逐token地生成输出,每次的计算量小,计算效率低下。此外,计算过程中涉及到的解码操作多为GEMV(矩阵向量乘法),其计算密度低,导致计算资源利用不足。同时,KV缓存的访问呈现随机访问模式,增加了访问延迟,使得整个推理过程的效率进一步降低。

2.3. 计算任务的不均衡和资源调度困难

由于Prefill阶段和Decode阶段的计算需求差异显著,这导致了大模型推理过程中计算资源的利用率较低。此外,不同请求的输入长度和输出需求各不相同,使得批量化(batch)处理变得更加困难。例如,batch中的请求在Prefill和Decode阶段的输入、KV缓存的维护等方面均存在显著的差异,进一步加剧了推理系统的复杂性和计算资源利用不均衡的问题。

总体来看,大模型推理中的延迟和吞吐量之间的权衡涉及多方面的技术挑战,包括如何高效地调度计算资源、优化Prefill和Decode阶段的计算过程,以及降低自回归推理中的延迟等。这些挑战直接影响大模型在实际应用中的性能和用户体验,是大模型推理加速中必须解决的重要问题。

3. 从单模态到多模态的推理成本增加

大模型的应用场景正在逐步从单模态扩展到多模态,例如从处理文本到处理图像,再到音视频等复杂数据类型。这种扩展虽然增强了模型的能力,但也带来了推理成本的进一步增加。根据2024年全球机器学习技术大会的讨论,音视频数据具有长序列特性,使得计算量和显存需求进一步增大。

3.1. 多模态处理带来的资源消耗

在多模态场景中,模型需要处理不同类型的数据,例如图像、音频和视频等,这些数据的处理要求模型具备更高的计算能力和更大的存储空间。从单模态(如文本)到多模态(如图像、音视频),处理过程中的计算复杂度呈指数级增长。例如,在处理视频数据时,模型需要对每一帧进行特征提取和推理,这使得推理的计算量远远超过传统文本处理,导致推理时间显著增加。

3.2. OpenAI o1模型的复杂推理任务

根据大会的讨论,OpenAI推出的o1模型经过强化学习训练,具备执行复杂推理任务的能力,其内部包含了很长的思维链路(COT, Chain of Thought),需要处理大量的计算任务。这种增强虽然提升了模型在复杂任务上的表现,但也使得推理过程变得更加耗时。如图(4)所示,o1在进行复杂代码竞赛任务(如CodeForces)和科学领域高难度问题时,其推理性能得到了显著提高,但也需要付出更高的计算成本和推理时间。

随着多模态任务的普及,大模型的推理需要处理更高维度的数据,且通常需要更多的计算资源来完成一系列复杂的推理任务。从PPT的推理计算比较图中可以看出,随着生成输出的增加,推理所需的计算量(以FLOPS为单位)呈现指数级增长,这进一步加剧了推理的计算成本。尤其是在视频处理等场景中,推理成本的增加对硬件性能提出了更高的要求,甚至需要专门设计的硬件加速器来满足实时推理的需求。

总的来说,从单模态到多模态的扩展,以及复杂推理任务(如OpenAI o1的COT)对计算资源的要求显著增加,使得大模型的推理成本不断攀升。未来的大模型推理需要进一步优化硬件和软件协同设计,以实现对多模态数据的高效处理,并降低推理的计算和存储成本。

二、加速方案的主要思路

为了应对这些挑战,研究者们提出了多种大模型推理加速技术,主要包括以下几个层次的优化:

1. 算子层优化

在算子层优化方面,主要通过对底层算子的加速和融合来减少计算开销、提高性能。例如:

1.1. Operator Fusion

通过将多个算子融合为一个复杂算子,可以减少内存访存次数,加快计算速度。常用的融合算子包括但不限于FlashAttention、KVCache、LayerNorm、RMSNorm等。

例如FlashAttention通过在计算过程中优化内存带宽利用,将数据块从HBM(高带宽内存)复制到SRAM中,减少了计算过程中的内存访问延迟,并在SRAM中进行尽可能多的计算,以提高整体带宽利用率和计算效率。这种方法有效地减少了传统Attention机制中由于大量内存访问而产生的性能瓶颈。如图(5)所示, FlashAttention的计算和数据传输过程,下表逐步解释它的计算和数据传输过程。

在多头注意力机制中,可以将所有操作合并到一个计算核中,减少数据传输并提高数学密度,从而加速推理阶段的计算。层融合的一个典型例子是在多头注意力机制中,通过将Queries、Keys、Values的所有操作合并到一个计算核中执行(如Grouped-query和Multi-query方式)。Grouped-query是将若干个查询头合并为一个计算核处理,从而减少计算和内存访问次数,降低开销。而Multi-query则是将所有查询共享相同的Keys和Values,从而减少数据传输的量,提高计算效率。图(7)中展示了三种不同的Attention机制:Multi-head、Grouped-query、Multi-query,表明通过Grouped-query和Multi-query可以显著减少注意力计算中的数据传输次数,进而提升推理速度。

这些框架通过支持多种Attention机制(如MHA、MQA、GQA),以及流水线并行、跨层并行等技术,进一步提高了推理的吞吐量和响应速度[4]。

TensorRT-LLM 框架对 Multi-Head Attention 进行了硬件加速和算子优化,能够通过减少矩阵操作的计算量来提高推理速度。

在 MindelIE-LLM 中,通过使用 Grouped-Query Attention (GQA) 和 Multi-Query Attention (MQA),有效提升了在多任务并行和长序列推理任务中的性能表现。GQA 可以通过分组共享 Key 和 Value 来减少内存占用和提升计算效率,而 MQA 则能通过对所有 Query 使用相同的 Key 和 Value,进一步减少计算和内存开销

四、案例分析与实验结果

在本文中,我们通过实际案例研究和实验分析,展示了MindIE-LLM框架在推理加速中的效果。MindIE LLM(Mind Inference Engine Large Language Model)是华为昇腾推出的大语言模型推理组件,旨在为大模型推理任务提供高性能解决方案。该组件基于昇腾硬件,支持多并发请求的调度功能,并集成了多种加速特性,如连续批处理(Continuous Batching)、分页注意力(Page Attention)和快速解码(FlashDecoding),以满足用户对高性能推理的需求。MindIE LLM主要提供大模型推理的Python API和调度的C++ API,帮助用户快速部署和测试大模型推理任务,下面我们具体介绍MindIE-LLM中的优化技术及其实验结果:

1. MindIE-LLM框架结构

MindIE-LLM框架通过模块化设计,实现了LLM推理的高效管理和部署。该框架包括多个子模块,如LLM Manager、Text Generator、Modeling等,它们分别负责不同的推理任务管理和计算优化工作。下图展示了MindIE-LLM的整体架构和各模块功能(见图11)。

[1] Jacob, B., Kligys, S., Chen, B., Zhu, M., Tang, M., Howard, A., Adam, H., & Kalenichenko, D. (2018). Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR).

[2] Han, S., Pool, J., Tran, J., & Dally, W. J. (2015). Learning both Weights and Connections for Efficient Neural Networks. Advances in Neural Information Processing Systems (NeurIPS).

[3] Shoeybi, M., Patwary, M., Puri, R., LeGresley, P., Casper, J., & Catanzaro, B. (2019). Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism. arXiv preprint arXiv:1909.08053.

[4] NVIDIA Corporation. (2021). NVIDIA TensorRT: High-Performance Deep Learning Inference Optimizer and Runtime. Available: https://developer.nvidia.com/tensorrt

-End-

作者丨FastJson

Qwen3-VL-8B

Qwen3-VL是迄今为止 Qwen 系列中最强大的视觉-语言模型,这一代在各个方面都进行了全面升级:更优秀的文本理解和生成、更深入的视觉感知和推理、扩展的上下文长度、增强的空间和视频动态理解能力,以及更强的代理交互能力

Qwen3-VL

Qwen3-VL-8B

Qwen3-VL是迄今为止 Qwen 系列中最强大的视觉-语言模型,这一代在各个方面都进行了全面升级:更优秀的文本理解和生成、更深入的视觉感知和推理、扩展的上下文长度、增强的空间和视频动态理解能力,以及更强的代理交互能力

Qwen3-VL