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.
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.
Inhalte von Bildern und Texten erkennen
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.
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.
Tabellarische Daten
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.
Tensor-Operationen und AutoML
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.
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)