提示处理 vs 解码:AI推理中的计算能力 vs 内存带宽
理解AI推理中提示处理和解码的区别
大型语言模型(LLM)的推理过程分为两个根本不同的阶段:提示处理(也称为预填充)和解码。每个阶段都有其独特的硬件要求和瓶颈。理解这些差异对于优化AI基础设施至关重要,因为根据主导工作负载的不同,GPU或加速器的选择可能会有很大差异。
1. 提示处理(预填充):计算密集型
在此阶段,整个用户提示一次性处理完毕。模型执行矩阵-矩阵乘法(GEMM),因为提示中的所有令牌可以并行计算。这是一个计算密集型(compute-bound)任务:所需的浮点运算次数(FLOPs)随提示长度呈二次方增长,尤其是由于注意力计算。具有高TFLOPS(每秒万亿次浮点运算)的GPU在此至关重要。对于长提示,计算能力不足可能导致生成第一个令牌(Time to First Token, TTFT)之前出现数秒甚至数分钟的延迟。
2. 解码(令牌生成):内存带宽密集型
预填充之后,模型逐个令牌生成响应。每个新令牌依赖于之前的令牌,因此无法跨多个输出令牌进行并行化。计算主要由矩阵-向量乘法(GEMV)组成。此阶段是内存密集型(memory-bound):对于每个单独的令牌,GPU必须将整个模型权重(数十亿参数)从VRAM加载到计算核心。由于每个加载字节的操作数非常低(低算术强度),GPU大部分时间都在等待数据,而不是进行计算。因此,高内存带宽(例如HBM3)是快速令牌生成的关键因素。
主要差异一览
| 方面 | 提示处理(预填充) | 解码(令牌生成) |
|---|---|---|
| 计算类型 | 矩阵-矩阵(GEMM) | 矩阵-向量(GEMV) |
| 瓶颈 | 计算能力(TFLOPS) | 内存带宽(GB/s) |
| 并行性 | 高(所有提示令牌并行) | 低(一次一个令牌) |
| 算术强度 | 高 | 低 |
| 主要硬件要求 | 高TFLOPS | 高内存带宽 |
| 资源不足的影响 | 长TTFT(Time to First Token) | 令牌生成缓慢(低令牌/秒) |
对基础设施优化的启示
这种区别对AI服务器的选择和配置有直接影响。对于具有非常长提示的应用(例如文档分析、代码审查),具有高计算能力的GPU(如NVIDIA H100或AMD MI300X)在预填充部分具有优势。对于生成大量令牌的实时聊天应用,高内存带宽至关重要。一些系统甚至为两个阶段使用单独的硬件,或通过KV缓存压缩和推测解码等技术进行优化。理解根本瓶颈有助于开发人员和运维人员在成本和性能之间找到适当的平衡。
总结:提示处理是原始计算能力(TFLOPS)的挑战,而解码是数据传输(内存带宽)的挑战。高效的LLM推理需要优化这两个阶段。
