概述
连续批处理是一种服务技术,可以从正在运行的批处理中逐个令牌添加和删除请求,而不是等待整个固定批处理完成。它使 GPU 持续忙碌,并急剧增加 AI 模型可以同时服务的用户数量。
连续批处理是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。
深入探讨
当 GPU 批量处理多个请求时,速度最快。最简单的方法是静态批处理,将一组固定的请求分组,将它们全部运行完成,然后开始下一个批处理。问题是:语言模型输出的长度差异很大,因此较短的请求会提前完成,并且在批处理等待最长的请求时,它们的插槽会闲置,从而浪费 GPU 周期并延迟新到达。连续批处理(也称为运行中或迭代级批处理,由 Orca 论文推广并用于 vLLM、TensorRT-LLM 和 TGI)以单个解码步骤的粒度进行操作。生成每个令牌后,完成的序列退出批次,新到达的请求立即插入。这可以保持批次满和 GPU 饱和,通常可以将吞吐量提高数倍,同时降低等待用户的延迟。
技术洞察
关键的转变是从批处理整个请求到批处理单个迭代。在每个解码步骤中,调度程序都会构建活动集:它对所有正在进行的序列运行一次前向传递,每个发出一个令牌,逐出任何达到序列结束令牌或长度限制的令牌,并允许排队的请求来填充已释放的插槽。将此与 PagedAttention 灵活的 KV 内存配合使用,可以在飞行中插入和删除序列,成本低廉,因为每个序列的缓存都位于独立的块中。
掌握连续配料
连续批处理是一种服务技术,可以从正在运行的批处理中逐个令牌添加和删除请求,而不是等待整个固定批处理完成。它使 GPU 持续忙碌,并急剧增加 AI 模型可以同时服务的用户数量。连续批处理是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。为了建立深入的理解,请将连续批处理视为一种操作模型,而不是单一功能:定义所需的结果,澄清假设,并将系统可以可靠地执行的操作与仍需要专家判断的操作分开。
在实践中,使用连续批处理的强大团队根据可靠性和成本优化架构、数据和基础设施选择。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。
多年来,架构决策决定着性能和运营成本。与此同时,优化一个基准测试可以隐藏更广泛的系统弱点。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。
战略影响
多年来,架构决策决定着性能和运营成本。
多年来,架构决策决定着性能和运营成本。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。
技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。
更好的工程选择可以减少生产中的可靠性事故。
更好的工程选择可以减少生产中的可靠性事故。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。
现实世界的实施
聊天 API 立即将新到达的用户消息接纳到正在运行的批次中,而不是将它们排队等待下一个批次
在批次中驱逐较短的已完成答案并回填其插槽,以便 GPU 永远不会闲置等待较长的一代
将连续批处理与 vLLM 的 PagedAttention 相结合,在每个解码步骤中以低成本插入和删除序列
代码完成服务通过保持批次完整,在突发、可变长度流量下维持每秒高令牌数
实施模式
连续配料实践
聊天 API 立即将新到达的用户消息接纳到正在运行的批次中,而不是将它们排队等待下一个批次。
聊天 API 立即将新到达的用户消息接纳到正在运行的批次中,而不是将它们排队等待下一个批次。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。
连续配料实践
在批次中驱逐一个已完成的简短答案并回填其插槽,以便 GPU 永远不会闲置等待较长的一代。
在批次中驱逐已完成的简短答案并回填其插槽,以便 GPU 永远不会闲着等待长时间的生成。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。
连续配料实践
将连续批处理与 vLLM 的 PagedAttention 相结合,在每个解码步骤中以低成本插入和删除序列。
将连续批处理与 vLLM 的 PagedAttention 相结合,在每个解码步骤中以低廉的成本插入和删除序列 当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。
连续配料实践
一种代码完成服务,通过保持批次完整,在突发、可变长度流量下维持每秒高令牌数。
代码完成服务通过保持批处理完整,在突发、可变长度流量下维持每秒高令牌数。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。
风险与防护栏
优化一项基准测试可以隐藏更广泛的系统弱点。
基础设施和维护成本常常被低估。
随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
实施路线图
在实施之前定义延迟、质量和成本目标。
在实施之前定义延迟、质量和成本目标。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。
在实际负载和数据条件下进行基准测试。
在实际负载和数据条件下进行基准测试。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。
仪器监控错误、漂移和用户影响。
仪器监控错误、漂移和用户影响。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。
在扩展之前准备回滚和事件响应路径。
在扩展之前准备回滚和事件响应路径。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。