ONNX Runtime 训练



ONNX Runtime 可用于加速大模型训练和端侧训练。


大模型训练



ORTModule 可加速基于 Transformer 的大型 PyTorch 模型的训练。只需修改几行代码,即可减少训练时间和训练成本。它构建在 ONNX Runtime 和 ONNX 格式高度成功且经过验证的技术之上。它可与 DeepSpeed 等技术组合,并能加速最先进大语言模型(LLM)的预训练和微调。它已集成到 Hugging Face Optimum 库中,该库提供了 ORTTrainer API,可将 ONNX Runtime 用作训练加速的后端。


- model = build_model() # 用户的 PyTorch 模型
+ model = ORTModule(build_model())


开始进行大模型训练 →

优势

更快的训练

优化的内核和内存优化可将训练速度提升 >1.5X。

灵活且可扩展的硬件支持

相同的模型和 API 适用于 NVIDIA 和 AMD GPU,并且可扩展的“执行提供程序”(execution provider) 架构允许您接入自定义算子、优化器和硬件加速器。

PyTorch 生态系统的一部分

ONNX Runtime 训练可通过 torch-ort 软件包获取,它是 Azure Container for PyTorch (ACPT) 的一部分,并且可与现有的 PyTorch 模型训练管道无缝集成。

可与主流加速系统组合

可与 DeepSpeedFairScaleMegatron 等组合使用,以实现更快、更高效的训练。

适用于 Azure AI 精选模型

ORT 训练已在 Azure AI | Machine Learning Studio 模型目录中的精选模型上启用。

可用于加速诸如 Llama-2-7b 等主流模型

可以通过这些脚本使用 ORT 训练来加速诸如 Llama-2-7b 的 Hugging Face 模型。

通过 ORT 训练提升基础模型性能

Foundation Model Throughput chart
平均吞吐量提升
2.7x
中位吞吐量提升
1.7x

端侧训练



端侧训练是指在边缘设备(如手机、嵌入式设备、游戏机、网页浏览器等)上训练模型的过程。这与在服务器或云端训练模型相对。端侧训练扩展了推理生态系统,利用设备上的数据在边缘提供定制化的用户体验。模型在设备上训练完成后,可用于获取用于部署的推理模型、更新联邦学习的全局权重,或创建用于将来使用的检查点。它还通过在设备上进行训练来保护用户隐私。


开始进行端侧训练 →

优势

内存和性能效率

以降低设备上的资源消耗

简单的 API 和多语言绑定

便于在多个目标平台上进行扩展

提高数据隐私与安全

特别是在处理无法与服务器或云共享的敏感数据时

跨平台运行相同的解决方案

在云端、桌面端、边缘端和移动端

用例

个性化任务,模型需要在用户的数据上进行训练

示例
  • 图像/音频分类
  • 文本预测

联邦学习任务,模型在分布于多个设备的数据上进行本地训练,以构建更强大的聚合全局模型

示例
  • 医学研究
  • 自动驾驶汽车
  • 机器人技术