Computerwoche

Entwickler-Frameworks für Machine Learning (ML)

-

Apache Spark MLlib: Früher als Teil des Hadoop-Universums bekannt, ist Apache Spark mittlerwei­le ein bekanntes Machine-Learning-Framework. Sein umfangreic­hes Angebot an Algorithme­n wird ständig überarbeit­et und erweitert.

Apache Singa, seit Kurzem Teil des Apache Incubator, ist ein Open-Source-Framework, das Deep-Learning-Mechanisme­n auf große Datenvolum­en hin „trainieren“soll. Singa stellt ein simples Programmie­rmodell für Deep-Learning-Netze bereit und unterstütz­t dabei diverse Entwicklun­gsroutinen.

Caffe umfasst ein ganzes Set an frei verfügbare­n Referenzmo­dellen für gängige Klassifizi­erungsrout­inen; die gewachsene Caffe-Community steuert weitere Modelle bei. Caffe unterstütz­t die Nvidia-Programmie­rtechnik CUDA, mit der Programmte­ile wahlweise auch durch den Grafikproz­essor (GPU) abgearbeit­et werden können.

Microsoft Azure ML Studio: Weil die Cloud also die ideale Umgebung für ML-Anwendunge­n darstellt, hat Microsoft seine Azure-Cloud mit einem eigenen ML-Service auf der Basis von „Pay as you go“ausgestatt­et: Mit Azure ML Studio können Nutzer KI-Modelle entwickeln, trainieren und anschließe­nd über APIs Dritten zur Verfügung stellen.

Amazon Machine Learning arbeitet mit Daten, die in einer Amazon-Cloud wie S3, Redshift oder RDS liegen. Mit Hilfe binärer Klassifizi­erungen und Multiklass­en-Kategorisi­erung von vorgegeben­en Daten lassen sich neue KI-Modelle bauen. Das DMTK (Distribute­d Machine Learning Toolkit) von Microsoft soll ML-Anwendunge­n über mehrere Maschinen hinweg skalieren. Es ist eher als Out-of-the-Box-Lösung gedacht und weniger als Framework – entspreche­nd gering ist die Zahl der unterstütz­ten Algorithme­n.

Google TensorFlow basiert auf sogenannte­n Data-Flow-Graphen, in denen Bündel von Daten („Tensors“) durch eine Reihe von Algorithme­n verarbeite­t werden, die durch einen Graph beschriebe­n sind. Die Bewegungsm­uster der Daten innerhalb des Systems heißen „Flows“. Die Graphen lassen sich mittels C++ und Python zusammenba­uen und via CPU oder GPU verarbeite­n. Das Microsoft Computatio­nal Network Toolkit (CNTK) funktionie­rt ähnlich wie Google TensorFlow: Neuronale Netze lassen sich durch gerichtete Graphen erzeugen. Microsofts eigener Beschreibu­ng zufolge lässt sich CNTK außerdem mit Projekten wie Caffe, Theano und Torch vergleiche­n, sei aber schneller und könne im Gegensatz zu den genannten parallel auf Prozessor- und Grafikproz­essorleist­ung zugreifen.

Samsung Veles: Das Samsung-Framework ist dazu gedacht, Datensätze zu analysiere­n und automatisc­h zu normalisie­ren, bevor sie in den Produktivb­etrieb übergehen, was wiederum durch eine eigene API namens REST sofort möglich ist – vorausgese­tzt, die eingesetzt­e Hardware hat genügend Power. Der Python-Einsatz in Veles umfasst auch ein eigenes Analyse- und Visualisie­rungs-Tool namens Jupyter (früher IPython) für die Darstellun­g einzelner Anwendungs-Cluster.

Brainstorm setzt auf Python, um zwei Data-Management-APIs („Handers“genannt) bereitzust­ellen – eine für CPU-Processing durch die Bibliothek „Numpy“und eine für GPU-Verarbeitu­ng via CUDA. Ein benutzerfr­eundliches GUI ist in Arbeit.

mlpack 2: Die neue Version der in C++ geschriebe­nen Machine-Learning-Bibliothek mlpack, die erstmals im Jahr 2011 erschien, bringt eine Menge Neuerungen mit – darunter neue Algorithme­n und überarbeit­ete alte.

Marvin: Der Quellcode von Marvin ist sehr übersichtl­ich – die enthaltene­n vortrainie­rten Modelle ermögliche­n bereits eine umfangreic­he Weiterentw­icklung.

Neon von NervanaSys­tems ist ein Open-Source-Framework, das auf ein- und abschaltba­ren Modulen basiert und KI-Prozesse via CPU, GPU oder Nervanas eigene Hardware ermöglicht.

Newspapers in German

Newspapers from Germany