批量预测以在 GPU 上运行
作者: bfirsh创建于 2022年5月12日更新于 2026年6月26日
标签enhancementtype/epic
在部署 ML 模型以排队请求以运行到 GPU 上时很常见 , 全部可以同时增加吞吐量 。
这不同于用户能够同时运行API的多个预测. 我们称这为"bulk" API以分裂。 GPU批量纯粹是为了使运行中的预测在GPU上更有效率,应该独立于用户提交的预测数量. 模型应确定需要多少预测来拉出队列来使吞吐量最大化.
□ 要求
- ** 让用户定义一个可以接受多个输入的预测函数。 ** 批量预测是单一预测的超组,所以我们最好只允许其中之一。 这意味着你得到更好的业绩,而牺牲它更难执行。 "如果想要使用分批,调整你的预测功能取出输入列表".
- 提出HTTP/Redis请求。 ** 延迟和吞吐量之间有取舍。 大多数服务系统似乎让用户定义最大批量大小和最大延迟/超时。 但是,这意味着,除非队列饱和,预测总是至少需要超时. 也许还有更聪明的我们能做的吗?
□ 潜在设计
我们可能需要从函数签名中定义输入类型,与单一预测不同.
[Python] 类 输入 Obj( BaseModel) : 图像: 文件 另一段:浮点=输入(默认为0.26)
类 : def 预测( 自,输入: List [InputObj] = 批量(批量 大小=25,超时=200) : 已处理的 输入=地图(输入,预处理) 返回自定义. model( 已处理的输入)
也许批量大小和超时应该在运行时间可以配置,这些被认为是默认?
□ 未来工作
- 处理前/处理后往往用CPU进行,因此可以分开进行。
□ 以前的艺术
- https://GitHub.com/tensorflow/ service/blob/master/tensorflow-service/bitching/README.md 互联网档案馆的存檔,存档日期2014-12-20.
- https://pytorch.org/serve/batch inference with ts.html 互联网档案馆的存檔,存档日期2014-12-22.
□ 用户数据
- @daanelson说这样会让语言模型更快.
/cc @ DeNeutoy (英语)内容来源: replicate/cog