Automatizzare il training del modello con l'interfaccia della riga di comando di ML.NET

L'interfaccia della riga di comando di ML.NET automatizza la generazione di modelli per gli sviluppatori .NET.

Per usare l'API ML.NET in modo indipendente, ovvero senza l'interfaccia della riga di comando AutoML di ML.NET, è necessario scegliere un formatore (implementazione di un algoritmo di apprendimento automatico per una determinata attività) e il set di trasformazioni dei dati (progettazione di funzionalità) da applicare ai dati. La pipeline ottimale varia in base al set di dati e selezionare l'algoritmo ottimale da tutte le opzioni disponibili aumenta la complessità. In più, ogni algoritmo ha un set di iperparametri da ottimizzare. Di conseguenza, il processo di ottimizzazione del modello di apprendimento automatico può richiedere settimane, a volte mesi, poiché si tenta di trovare le combinazioni migliori di progettazione di funzionalità, algoritmi di apprendimento e iperparametri.

L'interfaccia della riga di comando ML.NET semplifica questo processo usando Machine Learning automatizzato (AutoML).

Nota

Questo articolo fa riferimento all'interfaccia della riga di comando ML.NET e alla funzionalità di Machine Learning automatico (AutoML), attualmente in anteprima, e il materiale può essere soggetto a modifiche.

Informazioni sull'interfaccia della riga di comando (CLI) ML.NET

L'interfaccia della riga di comando di ML.NET è uno strumento .NET. Dopo l'installazione, si assegnano un'attività di apprendimento automatico e un set di dati di training per generare un modello di ML.NET, nonché il codice C# da eseguire per usare il modello nell'applicazione.

Come illustra la figura che segue, è facile generare un modello ML.NET di buona qualità (file ZIP di modello serializzato) e il codice C# di esempio per eseguire/assegnare un punteggio al modello. Viene anche generato automaticamente il codice C# per creare/eseguire il training del modello in modo da ricercare l'algoritmo e le impostazioni usate per il "modello ottimale" generato.

Motore AutoML usato all'interno dell'interfaccia della riga di comando ML.NET

Poiché questi asset si possono generare dal proprio set di dati senza scrivere alcun codice, è possibile migliorare la produttività anche se si conosce già ML.NET.

Attualmente, le attività di Machine Learning supportate dall'interfaccia della riga di comando di ML.NET sono:

  • classificazione
  • Regressione
  • suggerimento
  • Classificazione immagini
  • previsione
  • eseguire il training

L'interfaccia della riga di comando ML.NET può essere installata in base al sistema operativo e alla relativa architettura con il comando seguente:

dotnet tool install --global mlnet-<OS>-<ARCH>

Ad esempio, è possibile installare la versione x64 di Windows con:

dotnet tool install --global mlnet-win-x64

Per altre informazioni, vedere la guida pratica Installare l'interfaccia della riga di comando ML.NET.

Esempio di utilizzo (scenario di classificazione):

mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --train-time 10

È anche disponibile un comando in cui è possibile eseguire il training usando un file mbconfig. Il file mbconfig viene creato all'avvio di una sessione di Model Builder.

classificazione ML.NET dalla riga di comando

È possibile eseguire la funzionalità allo stesso modo di Windows PowerShell, *bash di macOS/Linux o una finestra di comando di Windows. Tuttavia, il completamento automatico in formato tabella (suggerimento dei parametri) non funzionerà nella finestra di comando di Windows.

Asset di output generati

I comandi dell'attività ML nell'interfaccia della riga di comando generano gli asset seguenti nella cartella di output:

  • Soluzione C# con:
    • Un'app console per eseguire e assegnare punteggi al modello generato (per eseguire previsioni nelle app per utenti finali con il modello).
    • Un'app console con il codice di training usato per generare il modello (a scopo di apprendimento o nuovo training del modello).
      • Questo modello serializzato ("modello migliore") viene fornito anche come file ZIP compresso pronto per l'uso per l'esecuzione di previsioni.
      • Un file mbconfig che contiene i dati di configurazione che consentono di aprire il modello in Model Builder.
  • File di log con informazioni su tutte le iterazioni e gli sweep eseguiti su più algoritmi valutati, inclusa la configurazione/pipeline dettagliata.

I primi due asset possono essere usati direttamente nelle app degli utenti finali (app Web ASP.NET Core, servizi e app desktop) per effettuare previsioni con il modello di Machine Learning generato.

Il terzo asset, ovvero il codice di training, indica quale codice API ML.NET è stato usato dall'interfaccia della riga di comando per eseguire il training del modello generato, in modo che sia possibile ripetere il training del modello ed esaminare il formatore/algoritmo e gli iperparametri specifici selezionati in background dall'interfaccia della riga di comando e dalla funzionalità AutoML.

Informazioni sulla qualità del modello

Quando si genera un "modello ottimale" con lo strumento dell'interfaccia della riga di comando vengono visualizzate metriche relative alla qualità, ad esempio accuratezza e R quadrato, in base all'attività di apprendimento automatico che interessa.

Nel riepilogo che segue le metriche sono raggruppate per attività di apprendimento automatico per consentire all'utente di comprendere la qualità del "modello ottimale" generato automaticamente.

Metriche per i modelli di classificazione

L'immagine seguente mostra l'elenco delle metriche di classificazione per i primi cinque modelli trovati dall'interfaccia della riga di comando:

Metriche di classificazione per i primi cinque modelli

L'accuratezza è una metrica molto diffusa per i problemi di classificazione, tuttavia non è sempre la metrica più adatta per selezionare il modello ottimale, come spiegato di seguito. Vi sono casi in cui è necessario valutare la qualità del modello con metriche supplementari.

Per esaminare e comprendere le metriche generate dall'interfaccia della riga di comando, vedere Metriche di valutazione per la classificazione.

Metriche per i modelli di regressione e raccomandazione

Un modello di regressione risulta adatto ai dati se le differenze tra i valori osservati e valori stimati del modello sono ridotti e non distorti. La regressione può essere valutata con alcune metriche.

Verrà visualizzato un elenco simile di metriche per i cinque modelli di qualità principali trovati dall'interfaccia della riga di comando, se non che in questo caso i primi cinque sono correlati a un'attività di Machine Learning di regressione:

Metriche di regressione per i primi cinque modelli

Per esaminare e comprendere le metriche generate dall'interfaccia della riga di comando, vedere Metriche di valutazione per la regressione.

Vedi anche