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 artikel verwijst naar ML.NET CLI- en ML.NET AutoML-, die momenteel in preview zijn en materiaal onderhevig is aan wijzigingen.
Wat is de ML.NET opdrachtregelinterface (CLI)?
De ML.NET CLI is een .NET-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'.
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:
- classificatie
- 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
Voor meer informatie, zie de handleiding De ML.NET CLI installeren.
Een voorbeeld van gebruik (classificatiescenario):
mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --train-time 10
Er is ook een opdracht waar u kunt trainen met behulp van een mbconfig bestand. Het bestand mbconfig wordt gemaakt wanneer u een Model Builder-sessie start.
U kunt dit op dezelfde manier uitvoeren op Windows PowerShell-, macOS-/Linux bash-of Windows CMD-. Automatische voltooiing in tabelvorm (parametersuggesties) werkt echter niet op Windows CMD-.
Gegenereerde uitvoerassets
De ML-taakopdrachten in de CLI genereren de volgende assets in de uitvoermap:
- C#-oplossing met:
- Een console-app voor het uitvoeren/beoordelen van het gegenereerde model (om voorspellingen te doen in uw eindgebruikers-apps met dat model).
- Een console-app met de trainingscode die wordt gebruikt om dat model te genereren (voor leerdoeleinden of voor het opnieuw trainen van modellen).
- Dit geserialiseerde model ('beste model') wordt ook geleverd als een gecomprimeerd .zip-bestand dat klaar is om te worden gebruikt voor het uitvoeren van voorspellingen.
- Een mbconfig--bestand met configuratiegegevens waarmee u het model kunt openen in Model Builder.
- Logboekbestand met informatie over alle iteraties/sweeps over de verschillende algoritmen die worden geëvalueerd, inclusief hun gedetailleerde configuratie/proces.
De eerste twee assets kunnen rechtstreeks worden gebruikt in uw eindgebruikers-apps (bijvoorbeeld ASP.NET Core-web-apps, -services en bureaublad-apps) 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 kunt onderzoeken en herhalen welke specifieke trainer/algoritme en hyperparameters door de CLI en AutoML achter de schermen zijn geselecteerd.
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:
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.
Zie Evaluatiegegevens voor classificatievoor meer informatie over de metrische gegevens die door de CLI worden uitgevoerd.
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:
Als u de metrische gegevens wilt verkennen en begrijpen die door de CLI worden uitgevoerd, raadpleegt u Evaluatiegegevens voor regressie.