continuous batching、chunked-prefill相关概念

ops/2025/1/31 13:18:55/

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.ppmy.cn/ops/154484.html

相关文章

漂亮数 (线性筛+前缀和)

登录—专业IT笔试面试备考平台_牛客网 #include<bits/stdc.h> using namespace std; typedef long long ll; #define endl \nconst int N1e85; int primes[N],cnt; bool st[N]; int ans[N]; /* //多余 bool divide(int n) {int cnt0;for(int i2;i<n/i;i){if(n%i0){…

使用冒泡排序模拟实现qsort函数

1.冒泡排序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>int main() {int arr[] { 0,2,5,3,4,8,9,7,6,1 };int sz sizeof(arr) / sizeof(arr[0]);//冒泡排序一共排序 sz-1 趟for (int i 0; i < sz - 1; i){//标志位&#xff0c;如果有序&#xff0c;直接…

什么情况该换手机?先看后买不踩坑

现在的智能手机发展的非常快&#xff0c;很多刚出来的1000多元的手机性能已经可以流畅玩游戏、刷视频了&#xff0c;而且基本上也能使用3-5年的时。如果真要把手机用到实在不能用了&#xff0c;可能真的会影响生活体验&#xff0c;还有可能因为电池鼓包等问题发生危险&#xff…

将Deepseek接入本地Vscode

第一步&#xff1a;获取Deepseek APIKEY 1.1 登录Deepseek官网 https://www.deepseek.com/ 1.2 选择API开放平台 1.3 注册账号并登录 1.4 登录成功后的就界面 1.5 点击左侧菜单栏“API keys”&#xff0c;并创建API key 名称自定义输入 生成API key 复制保存&#xff0c;丢失…

.Net / C# 繁体中文 与 简体中文 互相转换, 支持地方特色词汇

版本号 Nuget 搜索 “OpenCCNET”, 注意别找错, 好多库的名字都差不多 支持 “繁,简” 的互相转换, 支持多个地区常用词汇的转换, 还支持 日文的新旧转换. OpenCC 在 .Net 中的实现 https://github.com/CosineG/OpenCC.NET <PackageReference Include"OpenCCNET"…

005 单点登录

单点登录&#xff08;Single Sign-On&#xff0c;简称SSO&#xff09;是一种集中式的身份验证和授权机制&#xff0c;用户只需在一处输入一次凭证&#xff08;例如用户名和密码&#xff09;就可以访问多个相关但独立的软件系统。 单点登录的核心是身份提供者&#xff08;Ident…

「全网最细 + 实战源码案例」设计模式——抽象工厂模式

核心思想 抽象工厂模式是一种创建型设计模式&#xff0c;它提供一个接口&#xff0c;用于创建一系列相关或互相依赖的对象&#xff0c;而无需指定它们的具体类。抽象工厂模式解决了产品族的问题&#xff0c;可以管理和创建一组相关的产品。 结构 1. 抽象工厂 定义创建一些列…

智慧园区管理平台实现智能整合提升企业运营模式与管理效率

内容概要 在当今数字化的背景下&#xff0c;智慧园区管理平台正逐渐成为企业提升运营效率和管理模式的重要工具。这个平台汇聚了多种先进技术&#xff0c;旨在通过智能整合各类资源与信息&#xff0c;帮助企业实现全面的管理创新。 智慧园区管理平台不仅仅是一个数据处理工具…