mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-16 18:31:27 +00:00
Changes include: - Added a new page for `On-Device Training` overview: [Preview](https://baijumeswani.github.io/onnxruntime/docs/get-started/on-device-training.html) - Added a new section for `On-Device Training` installation: [Preview](https://baijumeswani.github.io/onnxruntime/docs/install/#install-for-on-device-training) - Added a new section for `On-Device Training` build from source: [Preview](https://baijumeswani.github.io/onnxruntime/docs/build/training.html#build-for-on-device-training) - Updated Large Model Training overview, installation, build pages to reflect what is currently accurate. Website preview: https://baijumeswani.github.io/onnxruntime/ Pending website work: - Update links for released packages for training. - Add tutorial for on-device training - Add links to the blog posts that detail on device training.
48 lines
2.8 KiB
Markdown
48 lines
2.8 KiB
Markdown
---
|
|
title: On-Device Training
|
|
parent: Get Started
|
|
nav_order: 12
|
|
---
|
|
|
|
# On-Device Training with ONNX Runtime
|
|
{: .no_toc }
|
|
`On-Device Training` refers to the process of training a model on an edge device, such as mobile phones, embedded devices, gaming consoles, web browsers, etc. This is in contrast to training a model on a server or a cloud. Training on the device can be used for:
|
|
|
|
- Personalization tasks, where the model needs to be trained on the user's data.
|
|
- Federated learning tasks, where the model is locally trained on data that is distributed across multiple devices in an effort to build a more robust aggregated global model.
|
|
- Improving data privacy and security, especially when working with sensitive data that cannot be shared with a server or a cloud.
|
|
- Training locally (without impacting application functionality) when network connectivity is unreliable or limited.
|
|
|
|
|
|
`ONNX Runtime Training` offers an easy way to efficiently train and infer ONNX models on edge devices. The training process is divided into two phases:
|
|
- [the offline phase](#the-offline-phase)
|
|
- [the training phase](#the-training-phase).
|
|
|
|
## The Offline Phase
|
|
In this phase, training artifacts are prepared on a server, cloud or a desktop that does not have access to user data. These artifacts can be generated by using the `ONNX Runtime Training`'s [artifact generation Python tools](./../api/python/on_device_training/training_artifacts.html) available in the Python package.
|
|
|
|
Refer to the [installation instructions](./../install/index.md#offline-phase---prepare-for-training)
|
|
|
|
## The Training Phase
|
|
Once these artifacts are generated, they can be deployed to production scenarios on edge devices. `ONNX Runtime` offers a wide range of packages in multiple language bindings.
|
|
|
|
Refer to the [installation instructions](./../install/index.md#training-phase---on-device-training) for a complete list of all language bindings.
|
|
|
|
Once training on the edge device is complete, an inference-ready ONNX model can be generated on the edge device itself. This model can then be used with ONNX Runtime for inferencing.
|
|
|
|
[comment]: <> (Learn more from the blogs. Links to the blogs go here.)
|
|
|
|
## Installation
|
|
|
|
Refer to the [installation instructions](./../install/index.md#install-for-on-device-training) for details on how to install for your scenario.
|
|
|
|
## Building from Source
|
|
|
|
Refer to the [build instructions](./../build/training.md#build-for-on-device-training) for details on how to build for your custom scenario.
|
|
|
|
[comment]: <> (Learn more from the tutorials. Links to the demo and website tutorial go here.)
|
|
[comment]: <> (Also link to the onnxruntime-training-examples repo goes here.)
|
|
|
|
## Feature Request, Bug Report or Help Needed
|
|
|
|
In case you need help, please open an [issue](https://github.com/microsoft/onnxruntime/issues/new?assignees=&labels=training&projects=&template=06-training.yml&title=%5BTraining%5D+).
|