MODEL DEPLOYMENT
从训练模型到推理服务
部署的目标是让模型在固定环境中稳定、可重复地处理输入。模型导出只是开始,预处理一致性、算子兼容、性能测试和错误处理同样重要。
1. 明确推理契约
需要记录输入尺寸、颜色顺序、数据类型、归一化参数、张量布局和输出含义。训练端与部署端任一细节不一致,都可能导致模型“能运行但结果错误”。
2. 模型导出与校验
- 将模型切换到推理模式,固定随机行为。
- 使用代表性输入导出 ONNX 等中间格式。
- 检查动态维度和不支持的算子。
- 对相同输入比较原框架与部署框架输出误差。
- 再测试真实图片,而不只测试随机张量。
3. 性能不只是模型前向时间
端到端耗时还包括图片解码、缩放、颜色转换、数据拷贝、后处理、结果编码和网络传输。服务压测应分别记录冷启动、预热后延迟、并发吞吐与内存峰值。
4. 轻量服务器的稳定性控制
- 模型在进程启动时加载一次,不要按请求重复加载。
- 限制上传大小、图片像素和允许格式。
- 资源紧张时使用单并发队列或信号量。
- 设置请求超时,并清理临时文件。
- 提供健康检查、日志和进程自动重启。
部署检查:正确性对齐、内存可控、延迟可接受、异常输入可处理、服务重启后可恢复,这五项缺一不可。
参考资料
- CSDN:工业视觉轻量化与稳定性
- ONNX Runtime、FastAPI 等公开技术文档。