大型语言模型 (LLM) 中的推理延迟通过模型优化、硬件/软件改进和高效的解码策略相结合来降低。目标是最大限度地缩短生成每个 token 所需的时间,同时保持输出质量。 这些方法解决了基于 Transformer 架构中固有的计算瓶颈、内存使用和算法效率低下的问题。
一种主要方法是优化模型架构和参数。 像**量化**这样的技术降低了模型权重的精度(例如,从 32 位浮点数到 8 位整数),从而减少了内存使用并加快了计算速度。 **剪枝**会删除不太重要的权重或层,从而创建一个更小、更快的模型,而不会造成明显的准确性损失。 例如,DistilBERT 通过将知识提炼到更小的网络中,实现了 BERT 60% 的加速。**知识蒸馏**训练较小的模型来模仿较大的模型,从而平衡速度和性能。 此外,像 PyTorch 或 TensorFlow 这样的框架利用算子融合(将多个操作组合成一个)来减少重复内存访问带来的开销。 这些更改直接减少了每个 token 的计算工作量。
硬件和软件优化也发挥着关键作用。 GPU 和 TPU 加速了对 Transformer 至关重要的矩阵运算,而像 NVIDIA 的 TensorRT 或 OpenAI 的 Triton 这样的库则针对特定硬件优化了内核。**KV 缓存**在注意力计算期间存储中间键值对,避免了对先前 token 的冗余计算。 例如,FlashAttention 算法重新组织注意力计算,以最大限度地减少内存读取/写入,从而提高速度和内存效率。 将多个请求批量处理在一起(动态批处理)可以最大限度地提高硬件利用率,尤其是在请求长度不同的情况下。 这些底层优化确保了硬件资源的有效利用。
最后,解码策略减少了生成文本所需的步骤数。**贪婪解码**(在每一步选择概率最高的 token)速度很快,但多样性较差,而像**推测解码**这样的技术使用较小的“草稿”模型来提出 token 序列,然后由较大的模型分批验证,从而减少了总体步骤。 例如,Medusa 框架在每一步生成多个候选 token,主模型并行评估这些 token。 提前退出策略允许某些层在置信度足够高时跳过计算。 这些方法以较小的准确性折衷换取了显著的延迟增益,尤其是在较长的序列中。