continuous batching、chunked-prefill相关概念

server/2025/2/1 18:48:19/

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/server/164134.html

相关文章

栅格数据金字塔层级的地理变换信息

1. 引言 笔者在实现栅格数据的可视化的时候遇到了一个问题,计算栅格数据金字塔层级的地理变换信息错误导致可视化的时候存在微小的误差。地理变换信息指的就是栅格数据的地理坐标起点和分辨率,笔者在另外一篇文章中《GDAL读取的坐标起点在像素左上角还是…

论文阅读(十):用可分解图模型模拟连锁不平衡

1.论文链接:Modeling Linkage Disequilibrium with Decomposable Graphical Models 摘要: 本章介绍了使用可分解的图形模型(DGMs)表示遗传数据,或连锁不平衡(LD),各种下游应用程序之…

Elasticsearch:如何搜索含有复合词的语言

作者:来自 Elastic Peter Straer 复合词在文本分析和标记过程中给搜索引擎带来挑战,因为它们会掩盖词语成分之间的有意义的联系。连字分解器标记过滤器等工具可以通过解构复合词来帮助解决这些问题。 德语以其长复合词而闻名:Rindfleischetik…

玩转大语言模型——使用langchain和Ollama本地部署大语言模型

系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型——使用GraphRAGOllama构建知识图谱 玩转大语言模型——完美解决Gra…

STM32外设应用

1. 什么是STM32外设? STM32微控制器集成了多种外设,这些外设可以帮助我们实现各种功能,比如控制LED灯、读取传感器数据、与其他设备通信等。常见的外设有GPIO(通用输入输出)、ADC(模数转换器)、…

软件工程概论试题一

一、单选 1.下面关于“发布测试”的观点错误的是( )。 A.系统开发团队不应该负责发布测试 B.发布测试是一个确认检查的过程 C.发布测试的目的是让系统供应商确信系统足够好可以使用了 D.发布测试通常采用白盒测试 正答:D 2.下图最有可能是()体系结构风格。 A. C…

Pyecharts之图表组合与布局优化

在数据可视化中,我们经常需要将多个图表组合在一起,以展示不同维度的数据或者进行对比分析。同时,合理的布局能够提升图表的可读性和用户体验。Pyecharts 提供了强大的组件和方法,让我们可以轻松实现图表的组合和布局优化。本篇将…

leetcode——搜索二维矩阵II(java)

编写一个高效的算法来搜索 *m* x *n* 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例 1: 输入:matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,1…