Automatisieren des Modelltrainings mit der ML.NET-CLI
Die ML.NET-CLI automatisiert die Modellgenerierung für .NET-Entwickler.
Um die ML.NET-API selbst zu verwenden (ohne ML.NET AutoML-CLI), müssen Sie einen Trainer (Implementierung eines Machine Learning-Algorithmus für eine bestimmte Aufgabe) und den Satz von Datentransformationen (Featureentwicklung) auswählen, die auf Ihre Daten angewendet werden. Die optimale Pipeline variiert für jedes Dataset, und die Auswahl des optimalen Algorithmus aus allen Optionen erhöht die Komplexität. Darüber hinaus muss für jeden Algorithmus ein Satz an Hyperparametern optimiert werden. Daher kann es manchmal Wochen oder Monate dauern, ein Machine Learning-Modell zu optimieren, um die beste Kombination aus Featureentwicklung, Lernalgorithmen und Hyperparametern zu finden.
Die ML.NET-CLI vereinfacht diesen Prozess mithilfe von automatisiertem Machine Learning (AutoML).
Hinweis
Dieser Artikel bezieht sich auf die ML.NET-CLI und ML.NET AutoML, die derzeit als Vorschauversion verfügbar sind. Änderungen sind vorbehalten.
Was ist die ML.NET-Befehlszeilenschnittstelle (CLI)?
Die ML.NET-CLI ist ein .NET-Tool. Nach der Installation erhalten Sie eine Machine Learning-Aufgabe und ein Trainingsdataset. Es werden ein ML.NET-Modell und der C#-Code generiert, der für die Verwendung des Modells in der Anwendung ausgeführt wird.
Wie in der folgenden Abbildung dargestellt, ist es einfach, ein qualitativ hochwertiges ML.NET-Modell (serialisierte ZIP-Datei des Modells) plus den Beispiel-C#-Code zu generieren, um dieses Modell auszuführen/zu bewerten. Darüber hinaus wird der C#-Code zum Erstellen/Trainieren dieses Modells generiert, sodass Sie suchen und iterieren können, welcher Algorithmus und welche Einstellungen für dieses generierte „beste Modell“ verwendet wurden.
Sie können diese Objekte aus Ihren eigenen Datasets generieren, ohne selbst zu codieren. Damit steigern Sie also auch Ihre Produktivität, selbst wenn Sie ML.NET bereits kennen.
Derzeit unterstützt die ML.NET-CLI folgende Aufgaben:
- Klassifizierung
- Regression
- Empfehlung
- Bildklassifizierung
- Planung
- Training
Die ML.NET CLI kann basierend auf Ihrem Betriebssystem und seiner Architektur mit dem folgenden Befehl installiert werden:
dotnet tool install --global mlnet-<OS>-<ARCH>
Beispielsweise kann die x64-Version von Windows installiert werden mit:
dotnet tool install --global mlnet-win-x64
Weitere Informationen finden Sie in der Schrittanleitung Installieren der ML.NET CLI.
Ein Verwendungsbeispiel (Klassifizierungsszenario):
mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --train-time 10
Es gibt auch einen Befehl, den Sie zum Trainieren mit einer mbconfig-Datei verwenden können. Die mbconfig-Datei wird erstellt, wenn Sie eine Model Builder-Sitzung starten.
Sie können sie auf die gleiche Weise auf Windows PowerShell, macOS-/Linux-Bash oder Windows CMD ausführen. Die tabellarische automatische Vervollständigung (Parametervorschläge) funktioniert jedoch nicht unter Windows-CMD.
Generierte Ausgabeobjekte
Die ML-Taskbefehle in der CLI generieren die folgenden Objekte im Ausgabeordner:
- C#-Lösung mit:
- Eine Konsolen-App, um das generierte Modell auszuführen/zu bewerten (um mit diesem Modell Vorhersagen in Ihren Endbenutzer-Apps zu treffen).
- Eine Konsolen-App mit dem Trainingscode, der zur Erstellung dieses Modells verwendet wird (zu Lernzwecken oder zum erneuten Trainieren des Modells).
- Dieses serialisierte Modell („bestes Modell“) wird auch als komprimierte ZIP-Datei bereitgestellt, die für die Ausführung von Vorhersagen verwendet werden kann.
- Eine mbconfig-Datei, die Konfigurationsdaten enthält, mit denen Sie das Modell im Model Builder öffnen können.
- Protokolldatei mit Informationen über alle Iterationen/Sweep-Vorgänge über die verschiedenen ausgewerteten Algorithmen, einschließlich ihrer detaillierten Konfiguration/Pipeline.
Die ersten beiden Objekte können direkt in Ihren Endbenutzer-App (z. B. ASP.NET Core-Web-Apps, Dienste und Desktop-Apps) verwendet werden, um mit dem generierten ML-Modell Vorhersagen zu treffen.
Das dritte Objekt, der Trainingscode, zeigt Ihnen, welchen ML.NET-API-Code die CLI zum Trainieren des generierten Modells verwendet hat, sodass Sie Ihr Modell erneut trainieren und untersuchen und iterieren können, welchen spezifischen Trainer/Algorithmus und Hyperparameter die CLI und AutoML im Hintergrund ausgewählt haben.
Verstehen der Qualität des Modells
Wenn Sie mit dem CLI-Tool ein „bestes Modell“ erstellen, werden Qualitätsmetriken angezeigt (wie Genauigkeit und Bestimmtheitsmaß), die für die von Ihnen angestrebte ML-Aufgabe geeignet sind.
Hier werden diese Metriken zusammengefasst, die nach ML-Aufgaben gruppiert sind, damit Sie die Qualität Ihres automatisch generierten „besten Modells“ verstehen können.
Metriken für Klassifizierungsmodelle
Die folgende Abbildung zeigt die Liste mit Klassifizierungsmetriken für die fünf besten von der CLI gefundenen Modelle:
Die Genauigkeit ist eine beliebte Metrik für Klassifizierungsprobleme. Allerdings ist die Genauigkeit nicht immer die beste Metrik, um das beste Modell auszuwählen, wie in den folgenden Referenzen erläutert. Es gibt Fälle, in denen Sie die Qualität Ihres Modells mit zusätzlichen Metriken bewerten müssen.
Lesen Sie Auswerten des ML.NET-Modells mit Metriken, um die Metriken kennenzulernen und zu verstehen, die von der CLI ausgegeben werden.
Metriken für Regressions- und Empfehlungsmodelle
Ein Regressionsmodell eignet sich gut für die Daten, wenn die Unterschiede zwischen den beobachteten Werten und den vorhergesagten Werten des Modells klein und zufällig sind. Die Regression kann mit bestimmten Metriken ausgewertet werden.
Sie können eine ähnliche Liste von Metriken für die fünf besten Qualitätsmodelle anzeigen, die von der CLI gefunden wurden, außer dass in diesem Fall die fünf besten Modelle mit einer Regressions-ML-Aufgabe verbunden sind:
Um die Metriken zu untersuchen und zu verstehen, die von der CLI ausgegeben werden, lesen Sie Auswertungsmetriken für die Regression.