Machine-Learning-Framework: ML.NET 3.0 erweitert Deep Learning und AutoML

Das Open-Source-Framework erhält im aktuellen Release Ergänzungen vor allem in den Bereichen Deep Learning und AutoML.

In Pocket speichern vorlesen Druckansicht

(Bild: Peshkova/ Shutterstock.com)

Lesezeit: 2 Min.
Inhaltsverzeichnis

Ein Jahr nach ML.NET 2.0 hat Microsoft nun die dritte Hauptversion des Machine-Learning-Frameworks veröffentlicht. ML.NET 3.0 bringt vor allem Erweiterungen für Deep Learning in den Bereichen Computer Vision und Textverarbeitung. Außerdem gibt es Ergänzungen beim Automated Machine Learning und für DataFrames.

Im Zusammenspiel mit der .NET-Library TorchSharp, die sich um die Anbindung an das ML-Framework PyTorch kümmert, lässt sich ML.NET im aktuellen Release für Object Detection nutzen, um Objekte innerhalb von Bildern zu erkennen und zu kategorisieren. Die Funktion hatte Microsoft bereits im Mai im Zusammenspiel mit dem AutoML-Werkzeug Model Builder vorgestellt.

Das aktuelle Release des ML-Frameworks bietet eine Object-Detection-API, die auf TorchSharp aufsetzt.

(Bild: Microsoft)

Für Deep-Learning-Anwendungen im Bereich Natural Language Processing (NLP) bringt ML.NET 3.0 zwei größere Ergänzungen: Named Entity Recognition (NER) und Question Answering (QA). Erstere dient dazu, Eigennamen zu erkennen und zu klassifizieren, die aus einer Folge von Wörtern bestehen und beispielsweise eine Person oder Firma, aber auch Orte, Mengenangaben oder Geldeinheiten bezeichnen. Question Answering ist eine Form der Informationssuche mit Fragen in natürlicher Sprache. Die Integration in Microsofts ML-Framework erfolgt mit dem Sprachmodell RoBERTa, das auf BERT (Bidirectional Encoder Representations from Transformers) aufsetzt.

ML.NET 3.0 bringt einige Ergänzungen für DataFrames, also zweidimensionale Datenstrukturen, um tabellarische Daten zu laden, zu analysieren beziehungsweise zu bearbeiten und zu speichern. Das aktuelle Release führt die Spaltentypen String und VBuffer ein.

Außerdem bietet das Framework neuerdings Funktionen für den Import und Export in SQL-Datenbanken. Ebenfalls neu sind die Funktionen, um Daten aus IEnumerable-Collections zu übernehmen und um den Inhalt eines DataFrame in eine System.Data.DataTable zu exportieren.

Unter der Haube gibt es mit System.Numerics.Tensors.TensorPrimitives eine neue API für Tensor-Operationen. Das CpuMath-Paket erreicht mit den neuen Tensor-Primitiven einige Performanceverbesserungen, wie ein Benchmark im zugehörigen Pull Request zeigt.

.NET für Machine Learning

Das erste stabile Release von ML.NET war 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.

Im November 2022 brachte ML.NET 2.0 vor allem Ergänzungen für die Klassifikation von Texten und im Bereich AutoML.

Weitere Neuerungen in ML.NET 3.0 wie die Ergänzungen für Automated Machine Learning (AutoML) lassen sich dem Developer-Blog bei Microsoft entnehmen. Die vollständige Liste der Neuerungen findet sich in den Release Notes.

(rme)