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 模型训练管道无缝集成。
适用于 Azure AI 精选模型
ORT 训练已在 Azure AI | Machine Learning Studio 模型目录中的精选模型上启用。
可用于加速诸如 Llama-2-7b 等主流模型
可以通过这些脚本使用 ORT 训练来加速诸如 Llama-2-7b 的 Hugging Face 模型。
通过 ORT 训练提升基础模型性能
端侧训练
端侧训练是指在边缘设备(如手机、嵌入式设备、游戏机、网页浏览器等)上训练模型的过程。这与在服务器或云端训练模型相对。端侧训练扩展了推理生态系统,利用设备上的数据在边缘提供定制化的用户体验。模型在设备上训练完成后,可用于获取用于部署的推理模型、更新联邦学习的全局权重,或创建用于将来使用的检查点。它还通过在设备上进行训练来保护用户隐私。
开始进行端侧训练 →
优势
内存和性能效率
以降低设备上的资源消耗
简单的 API 和多语言绑定
便于在多个目标平台上进行扩展
提高数据隐私与安全
特别是在处理无法与服务器或云共享的敏感数据时
跨平台运行相同的解决方案
在云端、桌面端、边缘端和移动端
用例
个性化任务,模型需要在用户的数据上进行训练
示例- 图像/音频分类
- 文本预测
联邦学习任务,模型在分布于多个设备的数据上进行本地训练,以构建更强大的聚合全局模型
示例- 医学研究
- 自动驾驶汽车
- 机器人技术