降低LLM工作流推理延迟的七种方法
内容提要
本文探讨大语言模型推理延迟问题,涵盖预填充与解码两阶段及TTFT、TPOT指标。提出七种优化方法:模型量化、KV缓存、投机解码、连续批处理、剪枝蒸馏、优化推理引擎及提示压缩缓存。强调组合应用这些技术可显著降低延迟,但需权衡成本与复杂度,以提升生成式AI应用效率。
延伸解读
延迟指标:TTFT与TPOT的权衡
文章将推理延迟拆分为预填充和解码两个阶段,并引入TTFT(首字延迟)和TPOT(每输出token时间)两个关键指标。理解这两个指标有助于定位瓶颈:TTFT主要受提示长度和预填充计算影响,而TPOT则受模型大小和内存带宽制约。优化时需根据应用场景权衡,例如聊天机器人更关注TTFT,而长文本生成更关注TPOT。
量化与剪枝:精度与速度的取舍
模型量化(如INT8/INT4)和剪枝通过减小模型体积来降低内存带宽压力,从而减少延迟,但可能带来精度损失。文章指出,现代量化技术如AWQ和GPTQ能最小化精度下降,而知识蒸馏则通过训练小模型来保留特定任务能力。实际应用中,需根据任务对精度的敏感度选择合适的技术组合。
投机解码与连续批处理:并行化的突破
投机解码利用小模型草拟多个token,再由大模型验证,从而绕过自回归生成的顺序瓶颈,在理想情况下可加速2-3倍。连续批处理则通过动态调度请求,避免因长尾请求导致的空闲等待,提升整体吞吐。这两种方法分别从算法和系统层面优化,可叠加使用。
推理引擎与提示优化:工程实践的关键
采用专用推理引擎(如vLLM、TGI、TensorRT-LLM)能自动实现PagedAttention、连续批处理和优化内核,显著降低延迟。同时,提示压缩和缓存可减少预填充计算,直接降低TTFT。这些方法通常改动小、见效快,是生产环境中的首选优化手段。
Q&A
LLM推理延迟主要受哪两个阶段影响?
LLM推理延迟主要受预填充阶段和解码阶段影响。预填充阶段处理整个提示词,计算密集;解码阶段逐token生成,受内存带宽限制。
TTFT和TPOT分别代表什么?
TTFT(Time to First Token)是生成第一个token所需的时间,TPOT(Time Per Output Token)是生成每个输出token的平均时间。
模型量化如何降低推理延迟?
模型量化将权重从16位浮点转换为8位或4位整数,减小模型内存占用,从而加快内存访问速度,降低解码延迟。
KV缓存的作用是什么?
KV缓存存储已处理token的键值矩阵,避免重复计算,从而减少计算量并降低TPOT。
投机解码是如何工作的?
投机解码使用一个小型快速模型生成多个候选token,再由大型目标模型并行验证,如果接受则加速生成,可提升2-3倍速度。
连续批处理相比传统批处理有什么优势?
连续批处理在token级别动态调度请求,及时返回已完成请求并插入新请求,减少等待时间,提高GPU利用率。
剪枝和蒸馏如何减少延迟?
剪枝移除不重要的权重或结构,蒸馏训练小模型模仿大模型,两者都减小模型规模,从而降低推理延迟。
使用优化推理引擎(如vLLM)能带来哪些好处?
优化推理引擎如vLLM、TGI、TensorRT-LLM实现了PagedAttention、连续批处理和优化CUDA内核,能显著降低TTFT和TPOT。
提示压缩和缓存如何降低延迟?
提示压缩减少输入token数量,降低预填充计算;提示缓存复用静态系统提示的预填充状态,减少重复计算,直接降低TTFT。
如何组合使用这些优化方法?
可以组合使用量化、连续批处理、投机解码等,例如使用INT8量化模型配合vLLM和投机解码,能显著提升性能,但需权衡成本与复杂度。