使用 ONNX Runtime 进行设备端训练

On-Device Training 指的是在边缘设备上训练模型的过程,例如手机、嵌入式设备、游戏机、Web 浏览器等。这与在服务器或云端训练模型形成对比。设备端训练可用于

  • 个性化任务,其中模型需要在用户数据上进行训练。
  • 联邦学习任务,其中模型在分布在多个设备上的数据上进行本地训练,以构建更鲁棒的聚合全局模型。
  • 提高数据隐私和安全性,特别是在处理不能与服务器或云共享的敏感数据时。
  • 当网络连接不可靠或受限时,在本地进行训练(不影响应用程序功能)。

ONNX Runtime Training 提供了一种在边缘设备上高效训练和推理 ONNX 模型的简单方法。训练过程分为两个阶段

离线阶段

在此阶段,在无法访问用户数据的服务器、云端或台式机上准备训练工件。这些工件可以使用 Python 包中提供的 ONNX Runtime Training工件生成 Python 工具 来生成。

请参考 安装说明

训练阶段

这些工件生成后,可以部署到边缘设备的生产场景中。ONNX Runtime 提供多种语言绑定的广泛软件包。

请参考 安装说明 获取所有语言绑定的完整列表。

边缘设备上的训练完成后,可以在边缘设备本身生成一个可用于推理的 ONNX 模型。然后,该模型可以与 ONNX Runtime 一起用于推理。

安装

请参考 安装说明 获取关于如何为您的场景进行安装的详细信息。

从源代码构建

请参考 构建说明 获取关于如何为您的自定义场景进行构建的详细信息。

功能请求、错误报告或需要帮助

如果您需要帮助,请提交一个 issue