Continous Batching、Inflight Batching、Prefill Decode分离、SpecDecode

Continous Batching(也叫Iteration Batch,vllm是这种思路)

简单来说就是batch内的请求长度和回复长度长短不一,存在Early-Finished的情况,但是空占着GPU的情况。Orca: A Distributed Serving System for Transformer-Based Generative Models这篇论文解决了这个问题,解决思路可以参考以下两个视频:

  • Continous Batching:https://www.youtube.com/watch?v=oYUz0phWFEU&list=TLGGQ-lnizqcSg0wNzAyMjAyNQ
  • 传统的Batching:https://www.youtube.com/watch?v=DnFH9d_nHPU&list=TLGGf4I7wLCYLRIwNzAyMjAyNQ

具体来说要处理3类问题:

  • 对Early-finished Requests的处理。不同请求所生成的文本长度不一致,可能差别很大,并且不易预测。如果没有一个将已生成结束的请求从Batch中移除并提前返回结果的机制,那么只能等一个Batch内所有请求都完成生成后才返回生成结果,导致生成短文本的用户则需要多“陪跑”数秒到数十秒才能得到结果,这对于服务响应时间是不利的;
  • 对Late-joining Requests的处理。完整生成一段文本需要长达数秒或数十秒的时间,是漫长的。所以如果没有一个将新请求插入到推理Batch的机制,那么只能像CV业务那样,等前面的请求都完成推理了才进行后续请求的推理。这会导致请求需要在系统中长时间等待排队,表现为服务响
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值