CTranslate2 连续批次

dtcbnfnu  于 6个月前  发布在  其他
关注(0)|答案(5)|浏览(52)

最近,许多基准测试表明,与静态批处理相比,如果要在API后提供模型服务,连续批处理可以实现更高的吞吐量和更低的延迟。一些实现连续批处理的系统示例:

为了实现连续批处理,需要具备以下能力:

  1. 如果有足够的资源来承担它(与静态批处理中需要一起提交请求的情况相比),将请求添加到现有运行的批处理中。
  2. 当请求达到停止标记时,从批处理中提前移除该请求(而不是同时返回所有请求)。
    这个概念是否与CTranslate2架构兼容?我很想在CTranslate2上构建一个推理引擎,希望在深入研究之前听到一些关于这个的想法。
tjrkku2a

tjrkku2a2#

@michaelfeil 这是相关的吗?是的,vLLM支持连续批处理,但我想了解Ctranslate是否可以扩展以支持这一点,而无需使用vLLM。

k5ifujac

k5ifujac3#

  1. 目前无法向正在运行的批处理中添加条目。但是,您可以在调用CTranslate2之前将传入的请求缓冲化并批量处理。我认为在许多情况下这已经足够好了。
  2. 这已经是可能的。有一个callback参数可以在生成令牌后立即获取它们,并且已完成的请求会从批处理中移除。
p1iqtdky

p1iqtdky4#

是的,我的意思是通过缓冲化传入请求并将它们一起发送来实现静态批处理。

  1. 今天不可能实现,因为CT2和HF Transformers之间的架构存在差异,还是说理论上可能实现,但尚未实施机制?
juzqafwq

juzqafwq5#

CT2并未设计成具备这个功能,所以要实现它并非易事。但理论上当然是可行的。

相关问题