【VScode推理模型部署】ONNX runtime

推理模型部署(一):ONNX runtime 实践

VSCode配置之OnnxRuntime(CPU) && YOLOv7验证

简单来说,对于机器学习模型过程可分为训练迭代部署上线两个方面:

  • 训练迭代,即通过特定的数据集、模型结构、损失函数和评价指标的确定,到模型参数的训练,以尽可能达到SOTA(State of the Art)的结果。
  • 部署上线,即指让训练好的模型在特定环境中运行的过程,更多关注于部署场景、部署方式、吞吐率和延迟。
    在实际场景中,深度学习模型通常通过PyTorch、TensorFlow等框架来完成,直接通过这些模型来进行推理效率并不高,特别是对延时要求严格的线上场景。由此,经过工业界和学术界数年的探索,模型部署有了一条流行的流水线:
    【VScode推理模型部署】ONNX runtime_第1张图片

这一条流水线解决了模型部署中的两大问题:使用对接深度学习框架和推理引擎的中间表示,开发者不必担心如何在新环境中运行各个复杂的框架;通过中间表示的网络结构优化和推理引擎对运算的底层优化,模型的运算效率大幅提升。

接下来,我们将通过一步步的实践来体验模型部署的过程。

1. ONNX 面面观

ONNX (Open Neural Network Exchange)是 Facebook 和微软在2017年共同发布的,用于标准描述计算图的一种格式。ONNX 已经对接了多种深度学习框架(如Tensorflow, PyTorch, Scikit-learn, MXNet等)和多种推理引擎。因此,ONNX 被当成了深度学习框架到推理引擎的桥梁,就像编译器的中间语言一样。由于各框架兼容性不一,我们通常只用 ONNX 表示更容易部署的静态图。

2. ONNX runtime 运行 BERT

2.1 加载数据与模型

2.2 导出ONNX模型

2.3 PyTorch 推理

2.4 使用 ONNX runtime 推理

你可能感兴趣的:(vscode,c++)