Machine Learning: ML.NET 2.0 bringt Textklassifikation und erweitert AutoML

Das ML-Framework für .NET bringt vor allem Ergänzungen im Bereich NLP mit. Parallel erscheint eine neue Version der grafischen Oberfläche Model Builder.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Märchen, Bücher, Buch

(Bild: tomertu / shutterstock.com)

Lesezeit: 3 Min.
Inhaltsverzeichnis

Microsoft hat die zweite Hauptversion von ML.NET und ein neues Release des darauf aufsetzenden UI-basierten Werkzeugs Model Builder veröffentlicht. Das quelloffene Machine-Learning-Framework bringt in Version 2.0 Ergänzungen im Bereich Natural Language Processing (NLP) und Automated Machine Learning mit.

Die Text-Classification-API hat Microsoft im Juni als Preview vorgestellt. Textklassifikation dient dazu, Texte bestimmten Kategorien zuzuordnen. Typische Anwendungsfälle sind das Erkennen von Spam-E-Mails und die Sentiment-Analyse, um zu erkennen, wie positiv oder negativ Meinungsäußerung sind.

Die Textklassifikation dient unter anderem zum Erkennen von Spam im Posteingang.

(Bild: Google)

Die neue Version des Model Builder bietet nun im Bereich Natural Language Processing ein Szenario für die Textklassifikation, die auf der Integration in ML.NET 2 aufsetzt. Die API verwendet eine TorchSharp-Implementierung von NAS-BERT, einer mit Methoden des Neural Architecture Search (NAS) komprimierten Variante des Sprachmodells BERT. TorchSharp ist eine .NET Library, die auf Libtorch aufsetzt, eine C++-API des ML-Frameworks PyTorch.

Das Szenario erlaubt das Trainieren von ML-Modellen zur Textklassifikation über den Model Builder. Das Training läuft lokal sowohl auf CPUs als auch auf CUDA-kompatiblen GPUs. Für den Einstieg in das Training der Modelle für die Textklassifikation hat Microsoft ein Tutorial veröffentlicht, das eine Sentiment-Analyse für Kommentare zu einer Website durchführt.

Die Beispielanwendung versucht zu erkennen, ob Kommentare positiv, negativ oder neutral sind.

(Bild: Microsoft)

ML.NET 2.0 bringt mit dem SentenceSimilarityTrainer eine weitere Ergänzung im Bereich Natural Language Processing mit, die erkennt, wie sehr sich zwei Sätze beziehungsweise Phrasen ähneln. Sie setzt ebenfalls auf die TorchSharp-Implementierung von NAS-BERT. Auch zu dieser API hat Microsoft ein Beispiel veröffentlicht.

Sowohl die Sentence-Similarity- als auch die Text-Classification-API setzen auf Tokenisierung, um den Text in Segmente zu unterteilen. Die API mit den zugehörigen Methoden hat Microsoft in einem separaten NuGet-Paket veröffentlicht.

Neben den NLP-Methoden bringt ML.NET 2 einige Ergänzungen im Bereich AutoML (Automated Machine Learning) mit, darunter den AutoML Featurizer zum Vorverarbeiten der Daten. Außerdem gibt es nun mehr Anpassungsmöglichkeiten für die Auswahl der Hyperparameter und das Konfigurieren der Algorithmen. Das GitHub-Repository bietet vier Beispielanwendungen für AutoML.

Machine Learning mit .NET

Das erste stabile Release von ML.NET ist im Mai 2019 im Rahmen der Build 2019 erschienen. Ein Jahr zuvor hatte Microsoft das Open-Source-ML-Framework erstmals als Preview vorgestellt. Ursprünglich hatte das Microsoft-Research-Team es für den internen Einsatz entwickelt. Laut dem Blogbeitrag zum Start der öffentlichen Preview war es seinerzeit bereits seit Jahren im Rahmen der Entwicklung unterschiedlicher Produktgruppen wie Windows, Bing und Azure im internen Einsatz.

Erklärtes Ziel war von Anbeginn, .NET-Entwicklerinnen und -Entwicklern ein Framework für Machine Learning in die Hand zu geben. Bekannte ML-Frameworks wie TensorFlow, Keras, Caffe beziehungsweise Caffe 2, Theano und PyTorch setzen in erster Linie auf Python, auch wenn Letzteres auf Torch aufsetzt, das Lua verwendet.

ML.NET besteht aus Kernkomponenten für die Datenrepräsentation, für unterschiedliche ML-Szenarien wie Regression, Clustering und binäre Klassifikation sowie für die Datentransformation unter anderem für die Feature Selection und zum Normalisieren. Einige Funktionen gelten auch im 1.0-Release noch als Preview, darunter die Integration von TensorFlow-Modellen und solchen, die im Austauschformat ONNX vorliegen.

Weitere Details zu ML.NET 2.0 und dem aktuellen Release des Model Builder lassen sich dem .NET-Blog entnehmen. ML.NET 2.0 ist über den .NET-Paketmanager NuGet verfügbar und der Model Builder ist Bestandteil von Visual Studio 2019 und 2022 und lässt sich außerdem aus dem Visual Studio Marketplace herunterladen, wobei es nicht eigenständig läuft, sondern ebenfalls Visual Studio 2022 oder 2019 benötigt. Der Sourcecode von ML.NET findet sich auf GitHub.

(rme)