一 推理加速基础
1. 了解基本概念与术语
首先需要了解关于大模型的一些基本的历史发展,概念和术语,不需要全部看懂,只需要掌握大概情况,可以通过下面这篇文章进行:
大模型入门基本概念,术语
2. 了解Transformer模型
大型模型的结构基础是Transformer,所以必须对Transformer的结构有所熟悉,可以看下面这篇文章:
图解Transformer | The Illustrated Transformer
Transformer是2017年提出的,而2018提出的GPT和BERT也需要做一个粗略了解,但不需要太深入,大概知道结构之类的就行,如下两篇文章提供了内容:
图解GPT-2 | The Illustrated GPT-2 (Visualizing Transformer Language Models)
图解BERT、ELMo(NLP中的迁移学习)| The Illustrated BERT, ELMo, and co.
3. 了解部分Transformer细节
做推理加速,肯定需要掌握一些需要优化的关键部分计算细节,如下文章给出:
大型模型运行过程概述
大模型推理加速的基础
大型模型Transformer掩码机制与计算细节
大型模型K V Cache机制详解
二 推理加速背景
因为 Decoding 阶段 Token 逐个处理,使用 KV Cache 之后,上面介绍的 Multi-Head Attention 里的矩阵乘矩阵操作全部降级为矩阵乘向量。
除此之外,Transformer 模型中的另一个关键组件 FFN 中主要也包含两个矩阵乘法操作,但是 Token 之间不会交叉融合,也就是任何一个 Token 都可以独立计算,因此在 Decoding 阶段不用 Cache 之前的结果,但同样会出现矩阵乘矩阵操作降级为矩阵乘向量。
矩阵乘向量操作是明显的访存 bound,而以上操作是 LLM 推理中最主要的部分,这也就导致 LLM 推理是访存 bound 类型。
而推理加速使用的技术中,模型量化相关加速技术和模型采样相关加速技术都是基于上述前提进行的。
三 推理加速技术
推理加速技术是提升大型语言模型(LLM)和其他深度学习模型性能的关键,旨在减少生成预测所需的时间和计算资源,同时保持或尽量减少对输出质量的影响。这些技术覆盖了从硬件层面的优化到软件算法的改进,以及两者之间的协同工作。
在硬件方面,专用的加速器如图形处理单元(GPU)、张量处理单元(TPU)和现场可编程门阵列(FPGA)被广泛采用,它们能够并行处理大量数据,显著加快矩阵运算的速度。此外,新型存储技术和内存架构也在不断演进,以更好地支持大规模模型所需的快速数据访问需求。
软件层面的优化同样重要,其中包括量化技术,它通过将模型参数从浮点数转换为低精度整数来减小模型大小并提高计算效率。剪枝是一种删除网络中不重要的权重或神经元的方法,从而使得模型更轻量化,减少了不必要的计算。知识蒸馏则是训练一个较小的学生模型去模仿较大教师模型的行为,以此实现高性能的同时降低部署成本。
对于基于Transformer架构的模型来说,KV缓存技术是一个特别有效的手段。通过缓存解码阶段中先前时间步的键(K)和值(V),可以在后续步骤中避免重复计算,大大提高了长序列生成任务的速度。而自回归模型中的因果掩码确保了解码过程中每个位置只能依赖于之前的信息,维持了因果关系。
并行解码和投机解码等高级策略进一步推动了推理速度的极限。并行解码尝试一次性预测多个接下来的词,而不是逐个进行,这可以显著缩短生成完整句子的时间。投机解码则提前做出多个不同的猜测,并沿多条路径探索,最终选择最佳结果,这种方法在保持高质量输出的同时提升了处理速度。