如何改善部署的模型延迟
Posted
技术标签:
【中文标题】如何改善部署的模型延迟【英文标题】:How to improve model latency for deployment 【发布时间】:2021-10-22 02:49:46 【问题描述】:问题: 如何在不重新训练模型的情况下改善 Web 部署的模型延迟?我应该标记哪些清单以提高模型速度?
背景: 我有多个模型,它们在一台带有一个 K80 GPU 的机器上按顺序处理视频;每个模型大约需要 5 分钟来处理一个 1 分钟长的视频。在不改变模型架构的情况下,我应该尝试哪些想法和建议来改善每个模型的延迟?我应该如何组织我对这个问题的思考?
【问题讨论】:
你使用哪个框架?火炬?张量流?通常要具有可扩展性并具有良好的性能,您可以使用 Nvidia triton 等推理服务器 【参考方案1】:-
如果适合您的用例,采样帧是最简单的技术。选择每 5 帧进行推理会将推理时间缩短约 5 倍(理论上)。需要注意的是,如果您正在处理诸如对象跟踪之类的任务,则会降低准确性。
fp32 到 fp16 可能会提高推理速度。
Batch Inference 总能将推理时间缩短不少。参考:https://github.com/ultralytics/yolov5/issues/1806#issuecomment-752834571
多进程并发推理基本上是在单独的进程上旋转超过 1 个相同模型的实例并并行推理。
torch
有一个多处理模块 torch.multiprocessing
。我从来没有使用过这个,但我认为设置会有点重要和复杂。
【讨论】:
以上是关于如何改善部署的模型延迟的主要内容,如果未能解决你的问题,请参考以下文章