减少 LLM 工作流程中推理延迟的 7 种方法

从量化到推测解码,这里有七种工程策略,可以在生产中交付更快、响应更灵敏的生成式 AI 应用程序。

来源:KDnuggets

处理推理延迟

随着大型语言模型 (LLM) 从研究原型转向生产,工程团队遇到了一个残酷的事实:构建智能模型只是成功的一半。实时向用户提供该模型是一个完全不同的工程挑战。

在生成式 AI 中,推理是经过训练的模型处理输入(提示)并生成输出(响应)的阶段。推理延迟是此过程中的时间延迟。与延迟通常以毫秒为单位测量的标准 Web 应用程序不同,如果不进行优化,LLM 延迟可能会延长至数秒或更长时间,从而导致糟糕的用户体验和高昂的计算成本。

了解缓慢响应的解剖结构是第一步。 LLM 的生成分为两个不同的阶段:

  • 预填充阶段(阅读):模型立即摄取整个提示。此阶段受计算限制。您的提示越长,所需的时间就越长。
  • 解码阶段(写入):模型按顺序生成答案,一次一个标记。由于每个新令牌都需要所有先前令牌的上下文,因此此阶段无法并行化并且受内存带宽限制。
  • 这两个阶段产生两个决定用户体验的指标:第一个令牌的时间 (TTFT),测量第一个单词出现之前的时间,以及每个输出令牌的时间 (TPOT),测量持续的生成速度。

    以下是七种经过验证的方法,可以减少 LLM 工作流程中的推理延迟。

    1. 实现模型量化

    LLM 本质上是一个数字权重的大集合。默认情况下,它们以 16 位浮点格式(FP16 或 BF16)存储。 FP16 中的 700 亿个参数模型需要大约 140 GB 的 VRAM 才能加载,并且为每个生成的令牌在 GPU 上移动数据会产生严重的内存带宽瓶颈,从而直接提高 TPOT。

    2. 利用键值缓存

    L3。经常推测解码

  • 一个巨大、缓慢的“目标”模型(例如 Llama-3-70B)