Modeltraining automatiseren met de ML.NET CLI

De ML.NET CLI automatiseert het genereren van modellen voor .NET-ontwikkelaars.

Als u de ML.NET-API zelf wilt gebruiken (zonder de ML.NET AutoML CLI), moet u een trainer (implementatie van een machine learning-algoritme voor een bepaalde taak) en de set gegevenstransformaties (functie-engineering) kiezen die op uw gegevens moet worden toegepast. De optimale pijplijn varieert voor elke gegevensset en het selecteren van het optimale algoritme uit alle keuzes voegt de complexiteit toe. Nog verder heeft elk algoritme een set hyperparameters die moeten worden afgestemd. Daarom kunt u weken en soms maanden besteden aan optimalisatie van machine learning-modellen om de beste combinaties van functie-engineering, leeralgoritmen en hyperparameters te vinden.

De ML.NET CLI vereenvoudigt dit proces met behulp van geautomatiseerde machine learning (AutoML).

Notitie

Dit onderwerp verwijst naar ML.NET CLI en ML.NET AutoML, die momenteel in preview zijn en materiaal kan worden gewijzigd.

Wat is de ML.NET opdrachtregelinterface (CLI)?

De ML.NET CLI is een .NET Core-hulpprogramma. Zodra deze is geïnstalleerd, geeft u deze een machine learning-taak en een trainingsgegevensset en genereert u een ML.NET model, evenals de C#-code die moet worden uitgevoerd om het model in uw toepassing te gebruiken.

Zoals in de volgende afbeelding wordt weergegeven, is het eenvoudig om een model van hoge kwaliteit ML.NET te genereren (geserialiseerd model .zip bestand) plus de C#-voorbeeldcode om dat model uit te voeren/te scoren. Daarnaast wordt de C#-code voor het maken/trainen van dat model ook gegenereerd, zodat u het algoritme en de instellingen kunt onderzoeken en herhalen die worden gebruikt voor dat gegenereerde 'beste model'.

AutoML engine working inside the ML.NET CLI

U kunt deze assets genereren op basis van uw eigen gegevenssets zonder dat u zelf hoeft te coderen, zodat u ook uw productiviteit verbetert, zelfs als u al weet ML.NET.

Op dit moment zijn de ML-taken die worden ondersteund door de ML.NET CLI:

  • Indeling
  • regressie
  • aanbeveling
  • afbeeldingsclassificatie
  • Vooruitzichten
  • Trein

De ML.NET CLI kan worden geïnstalleerd op basis van uw besturingssysteem en de bijbehorende architectuur met de volgende opdracht:

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

De x64-versie van Windows kan bijvoorbeeld worden geïnstalleerd met:

dotnet tool install --global mlnet-win-x64

Zie de handleiding De ML.NET CLI installeren voor meer informatie.

Een voorbeeld van gebruik (classificatiescenario):

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

ML.NET classification from the command line

U kunt het op dezelfde manier uitvoeren op Windows PowerShell, macOS/Linux bash of Windows CMD. Automatische voltooiing in tabelvorm (parametersuggesties) werkt echter niet in Windows CMD.

Gegenereerde uitvoerassets

De ML-taakopdrachten in de CLI genereren de volgende assets in de uitvoermap:

  • Een geserialiseerd model .zip ('beste model') dat kan worden gebruikt voor het uitvoeren van voorspellingen.
  • C#-oplossing met:
    • C#-code voor het uitvoeren/scoren van het gegenereerde model (om voorspellingen te doen in uw eindgebruikers-apps met dat model).
    • C#-code met de trainingscode die wordt gebruikt om dat model te genereren (voor leerdoeleinden of voor het opnieuw trainen van modellen).
  • Logboekbestand met informatie over alle iteraties/veegt over de meerdere algoritmen die worden geëvalueerd, inclusief hun gedetailleerde configuratie/pijplijn.

De eerste twee assets kunnen rechtstreeks worden gebruikt in uw eindgebruikers-apps (ASP.NET Core-web-app, services, desktop-app, enzovoort) om voorspellingen te doen met dat gegenereerde ML-model.

De derde asset, de trainingscode, laat zien welke ML.NET API-code is gebruikt door de CLI om het gegenereerde model te trainen, zodat u uw model opnieuw kunt trainen en herhalen op welke specifieke trainer/algoritme en hyperparameters zijn geselecteerd door de CLI en AutoML.

Inzicht in de kwaliteit van het model

Wanneer u een 'beste model' genereert met het CLI-hulpprogramma, ziet u metrische gegevens over de kwaliteit (zoals nauwkeurigheid en R-Squared) die geschikt zijn voor de ML-taak die u wilt instellen.

Hier worden deze metrische gegevens gegroepeerd op ML-taak, zodat u inzicht krijgt in de kwaliteit van uw automatisch gegenereerde 'beste model'.

Metrische gegevens voor classificatiemodellen

In de volgende afbeelding ziet u de lijst met metrische classificatiegegevens voor de top vijf modellen die door de CLI zijn gevonden:

Classification metrics for top five models

Nauwkeurigheid is een populaire metriek voor classificatieproblemen, maar nauwkeurigheid is niet altijd de beste metrische waarde om het beste model te selecteren, zoals wordt uitgelegd in de volgende verwijzingen. Er zijn gevallen waarin u de kwaliteit van uw model moet evalueren met aanvullende metrische gegevens.

Als u de metrische gegevens wilt verkennen en begrijpen die door de CLI worden uitgevoerd, raadpleegt u De metrische evaluatiegegevens voor classificatie.

Metrische gegevens voor regressie- en aanbevelingsmodellen

Een regressiemodel past goed bij de gegevens als de verschillen tussen de waargenomen waarden en de voorspelde waarden van het model klein en onbevoordeeld zijn. Regressie kan worden geëvalueerd met bepaalde metrische gegevens.

U ziet een vergelijkbare lijst met metrische gegevens voor de top vijf kwaliteitsmodellen die door de CLI zijn gevonden, behalve in dit geval zijn de vijf belangrijkste gerelateerd aan een regressie-ML-taak:

Regression metrics for top five models

Als u de metrische gegevens wilt verkennen en begrijpen die door de CLI worden uitgevoerd, raadpleegt u De metrische evaluatiegegevens voor regressie.

Zie ook