Condividi tramite


Che cos'è Windows ML?

Windows Machine Learning (ML) consente agli sviluppatori C#, C++/WinRT, C/C++e Python di eseguire modelli di intelligenza artificiale ONNX in locale nei PC Windows tramite il runtime ONNX Runtime, con la gestione automatica del provider di esecuzione per cpu diverse (CPU, GPU, NPU). È possibile usare modelli di PyTorch, Tensorflow/Keras, TFLite, scikit-learn e altri framework con ONNX Runtime.

Un diagramma illustrante un modello ONNX che passa attraverso Windows ML per raggiungere quindi le NPU, le GPU e le CPU.

Se non si ha già familiarità con il runtime ONNX, è consigliabile leggere la documentazione ONNX Runtime. In breve, Windows ML fornisce una copia condivisa a livello di Windows del runtime ONNX, oltre alla possibilità di scaricare dinamicamente provider di esecuzione (EPS).

Vantaggi principali

  • Runtime ONNX condiviso: runtime facoltativo a livello di sistema invece di creare un bundle personalizzato, riducendo le dimensioni dell'app
  • Ottenere dinamicamente gli EPS più recenti : scaricare i provider di esecuzione specifici dell'hardware più recenti con una chiamata API
  • Download/installazioni di app più piccole - non è necessario includere grandi EP e il runtime ONNX nell'app
  • supporto hardware Broad - Viene eseguito su PC Windows (x64 e ARM64) e Windows Server con qualsiasi configurazione hardware

Requisiti di sistema

  • OS: versione di Windows supportata da SDK per app di Windows
  • Architettura: x64 o ARM64
  • Hardware: qualsiasi configurazione pc (CPU, GPU integrate/discrete, NPU)

Annotazioni

Il supporto per CPU e GPU (tramite DirectML) è disponibile in tutte le versioni Windows supportate. I provider di esecuzione ottimizzati dai fornitori per unità di elaborazione neuromorfica e hardware GPU specifici richiedono Windows 11 versione 24H2 (build 26100) o versione successiva. Per informazioni dettagliate, vedere Provider di esecuzione supportati.

Che cos'è un provider di esecuzione?

Un provider di esecuzione (EP) è un componente che consente ottimizzazioni specifiche dell'hardware per le operazioni di Machine Learning (ML). I provider di esecuzione astraggono diversi back-end di calcolo (CPU, GPU, acceleratori specializzati) e forniscono un'interfaccia unificata per il partizionamento dei grafi, la registrazione del kernel e l'esecuzione dell'operatore. Per altre informazioni, vedere la documentazione sul runtime ONNX.

È possibile visualizzare l'elenco di EPS supportate da Windows ML qui.

Come funziona

Windows ML include una copia di ONNX Runtime e consente di scaricare dinamicamente execution providers (EP) specifici, in modo che l'inferenza del modello possa essere ottimizzata attraverso l'ampia gamma di CPU, GPU e NPU nell'ecosistema Windows.

Acquisizione del provider di esecuzione:

  1. Rilevamento di hardware - Windows ML identifica gli EP compatibili
  2. Download ep - Chiamare le API per scaricare gli EP compatibili
  3. Pronto per l'esecuzione: la app può accelerare i modelli di intelligenza artificiale con EP

In questo modo si elimina la necessità di:

  • Bundle execution providers for specific hardware vendors (Provider di esecuzione bundle per fornitori hardware specifici)
  • Creare compilazioni di app separate per provider di esecuzione diversi
  • Gestire manualmente gli aggiornamenti del provider di esecuzione

Annotazioni

L'utente è comunque responsabile dell'ottimizzazione dei modelli per hardware diverso. Windows ML gestisce la distribuzione del provider di esecuzione, non l'ottimizzazione del modello. Per altre informazioni sull'ottimizzazione, vedere Foundry Toolkit e onNX Runtime Tutorials (Esercitazioni sul runtime ONNX ).

Ottimizzazione delle prestazioni

La versione più recente di Windows ML funziona direttamente con provider di esecuzione dedicati per GPU e NPU, offrendo prestazioni to-the-metal pari agli SDK dedicati del passato, ad esempio TensorRT per RTX, AI Engine Direct e l'estensione Intel per PyTorch. Abbiamo progettato Windows ML per ottenere prestazioni di fascia alta per GPU e NPU, pur mantenendo i vantaggi di scrivi una volta ed esegui ovunque che la precedente soluzione basata su DirectML offriva.

Uso di provider di esecuzione con Windows ML

Il runtime di Ml Windows offre un modo flessibile per accedere ai provider di esecuzione di Machine Learning (ML), che possono ottimizzare l'inferenza del modello di Machine Learning in configurazioni hardware diverse. Tali EP vengono distribuiti come pacchetti separati che possono essere aggiornati indipendentemente dal sistema operativo. Per ulteriori informazioni sul download e l'installazione dinamica degli EP, vedere la documentazione sui provider di esecuzione.

Conversione di modelli in ONNX

È possibile convertire i modelli da altri formati a ONNX in modo da poterli usare con Windows ML. Per altre informazioni, vedere la documentazione di Foundry Toolkit for Visual Studio Code su come convertire i modelli nel formato ONNX. Per altre informazioni sulla conversione di modelli PyTorch, TensorFlow e Hugging Face in ONNX, vedere anche le esercitazioni sul runtime ONNX .

Gestione di modelli

Windows ML offre opzioni flessibili per la gestione dei modelli di intelligenza artificiale:

  • Catalogo modelli- Scaricare dinamicamente modelli da cataloghi online senza creare bundle di file di grandi dimensioni
  • Modelli locali - Includere i file di modello direttamente nel pacchetto dell'applicazione

Integrazione con Windows ecosistema di intelligenza artificiale

Windows ML funge da base per la piattaforma di intelligenza artificiale Windows più ampia:

Fornire commenti e suggerimenti

È stato rilevato un problema o si hanno suggerimenti? Cercare o creare problemi nel SDK per app di Windows GitHub.

Passaggi successivi