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.

AutoML-Engine arbeitet in der ML.NET-CLI

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

ML.NET-Klassifizierung über die Befehlszeile

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:

  • Eine serialisierte ZIP-Datei des Modells („bestes Modell“), die sofort für die Ausführung von Vorhersagen verwendet werden kann.
  • C#-Lösung mit:
    • C#-Code, um das generierte Modell auszuführen/zu bewerten (um mit diesem Modell Vorhersagen in Ihren Endbenutzer-Apps zu treffen).
    • C#-Code mit dem Trainingscode, der zur Erstellung dieses Modells verwendet wird (zu Lernzwecken oder zum erneuten Trainieren des Modells).
  • 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:

Klassifizierungsmetrik für die fünf besten 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:

Regressionsmetriken für die fünf besten Modelle

Um die Metriken zu untersuchen und zu verstehen, die von der CLI ausgegeben werden, lesen Sie Auswertungsmetriken für die Regression.

Siehe auch