如何改善部署的模型延迟

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。我从来没有使用过这个,但我认为设置会有点重要和复杂。

【讨论】:

以上是关于如何改善部署的模型延迟的主要内容,如果未能解决你的问题,请参考以下文章

rocketMQ安装部署详细解析

Anylogic-改善输出

知识点总结:处理高并发的实践及系统架构部署

81TensorFlow 2 模型部署方法实践--TensorFlow Serving 部署模型

如何将pytorch模型部署到安卓

如何将 TensorFlow 模型部署到云端?