当前位置: 首页 > article >正文

continuous batching、chunked-prefill相关概念

batching VS. continuous batching

batching是所有requests的output都生成完毕之后,才能开始处理下一个batch。一般要做input padding,要等待凑够batch才运行(也有超时bar)。

continuous batching是每完成1个request,就让1个新request加入到batch里。好处:可以让decode阶段的一个batch的token数目不减少,确保计算密度。

continuous batching VS. chunked prefill

VLLM里,前者是prefill优先。新到的prefill请求,打断所有decode请求。且prefill和decode不batching。

后者是decode优先。且prefill请求和decode请求可以batching到一起。decode那个batch的token较少填不满batch时,才会把prefill加进来。prefill的tokens太多时,分chunk每次做一段。

如下图,chunked prefill,deepspeed的论文:

2024年初;VLLM是prefill和decode不batch到一起。Orca是两者batch到一起。DeepSpeed是chunked prefill,即把input拆分,和decode阶段的batch到一起。

如何评测:模拟同时有1~32个并发用户(每个用户,拿到AI回复后,才会立即发送下一个prompt)(这里的“立即发送”,其实,跟现实用户想一会儿再打字一会儿,是不符合的)。prompt长度和output长度各自是某个值为均值的正态分布。

为什么用4张A100来测1份LLama-70B: 我猜想,1. 为了让batch能大些,1张卡可能batch大小太受限制;2. 为了推理速度快些,A100之间有NVLink,TP-4速度比TP-1要快。(我的猜测:可能因为我自己的实验是1张A100,所以chunked prefill优势不明显?)

用LLama2-13B测试,相比LLama2-70B,好处不那么明显了:

有效吞吐:

每张图,是人为规定的decode阶段SLA bar(按照人的阅读速度来定的)。

长尾延迟表现好:


http://www.kler.cn/a/526059.html

相关文章:

  • YOLO11/ultralytics:环境搭建
  • 【Linux】线程互斥与同步
  • 安装zsh并美化
  • FireFox | Google Chrome | Microsoft Edge 禁用更新 final版
  • three.js用粒子使用canvas生成的中文字符位图材质
  • 工业级 RAG 实现 - QAnything
  • springboot3 集成 knife4j(接口文档)
  • 【前端学习路线】前端工程化 详细知识点学习路径(附学习资源)
  • 【 CVE-2025-21298】 通过ghidriff查看完整补丁差异
  • 使用SearchCursor检索要素类中的要素
  • 【深度分析】DeepSeek大模型技术解析:从架构到应用的全面探索
  • Go语言编程基础
  • MySQL基本架构SQL语句在数据库框架中的执行流程数据库的三范式
  • Pyside/Pyqt中QWebEngineView和QWebEnginePage的区别
  • 5.桥模式(Bridge)
  • 《大语言模型》综述学习笔记
  • lanqiaoOJ 2097:青蛙过河 ← 二分+前缀和+贪心
  • Vmware虚拟机内存扩展与管理
  • qt内部的特殊技巧【QT】
  • Python 梯度下降法(二):RMSProp Optimize
  • 2022 年 6 月大学英语四级考试真题(第 2 套)——纯享题目版
  • Big Bird:适用于更长序列的Transformer模型
  • Android 启动流程
  • 新版231普通阿里滑块 自动化和逆向实现 分析
  • 【25考研】考研366是否能进北航计算机复试?该怎么准备?
  • Ubuntu全面卸载mysql