Entwickler-Frameworks für Machine Learning (ML)
Apache Spark MLlib: Früher als Teil des Hadoop-Universums bekannt, ist Apache Spark mittlerweile ein bekanntes Machine-Learning-Framework. Sein umfangreiches Angebot an Algorithmen wird ständig überarbeitet und erweitert.
Apache Singa, seit Kurzem Teil des Apache Incubator, ist ein Open-Source-Framework, das Deep-Learning-Mechanismen auf große Datenvolumen hin „trainieren“soll. Singa stellt ein simples Programmiermodell für Deep-Learning-Netze bereit und unterstützt dabei diverse Entwicklungsroutinen.
Caffe umfasst ein ganzes Set an frei verfügbaren Referenzmodellen für gängige Klassifizierungsroutinen; die gewachsene Caffe-Community steuert weitere Modelle bei. Caffe unterstützt die Nvidia-Programmiertechnik CUDA, mit der Programmteile wahlweise auch durch den Grafikprozessor (GPU) abgearbeitet werden können.
Microsoft Azure ML Studio: Weil die Cloud also die ideale Umgebung für ML-Anwendungen darstellt, hat Microsoft seine Azure-Cloud mit einem eigenen ML-Service auf der Basis von „Pay as you go“ausgestattet: Mit Azure ML Studio können Nutzer KI-Modelle entwickeln, trainieren und anschließend ü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 Klassifizierungen und Multiklassen-Kategorisierung von vorgegebenen Daten lassen sich neue KI-Modelle bauen. Das DMTK (Distributed Machine Learning Toolkit) von Microsoft soll ML-Anwendungen über mehrere Maschinen hinweg skalieren. Es ist eher als Out-of-the-Box-Lösung gedacht und weniger als Framework – entsprechend gering ist die Zahl der unterstützten Algorithmen.
Google TensorFlow basiert auf sogenannten Data-Flow-Graphen, in denen Bündel von Daten („Tensors“) durch eine Reihe von Algorithmen verarbeitet werden, die durch einen Graph beschrieben sind. Die Bewegungsmuster der Daten innerhalb des Systems heißen „Flows“. Die Graphen lassen sich mittels C++ und Python zusammenbauen und via CPU oder GPU verarbeiten. Das Microsoft Computational Network Toolkit (CNTK) funktioniert ähnlich wie Google TensorFlow: Neuronale Netze lassen sich durch gerichtete Graphen erzeugen. Microsofts eigener Beschreibung zufolge lässt sich CNTK außerdem mit Projekten wie Caffe, Theano und Torch vergleichen, sei aber schneller und könne im Gegensatz zu den genannten parallel auf Prozessor- und Grafikprozessorleistung zugreifen.
Samsung Veles: Das Samsung-Framework ist dazu gedacht, Datensätze zu analysieren und automatisch zu normalisieren, bevor sie in den Produktivbetrieb übergehen, was wiederum durch eine eigene API namens REST sofort möglich ist – vorausgesetzt, die eingesetzte Hardware hat genügend Power. Der Python-Einsatz in Veles umfasst auch ein eigenes Analyse- und Visualisierungs-Tool namens Jupyter (früher IPython) für die Darstellung einzelner Anwendungs-Cluster.
Brainstorm setzt auf Python, um zwei Data-Management-APIs („Handers“genannt) bereitzustellen – eine für CPU-Processing durch die Bibliothek „Numpy“und eine für GPU-Verarbeitung via CUDA. Ein benutzerfreundliches GUI ist in Arbeit.
mlpack 2: Die neue Version der in C++ geschriebenen Machine-Learning-Bibliothek mlpack, die erstmals im Jahr 2011 erschien, bringt eine Menge Neuerungen mit – darunter neue Algorithmen und überarbeitete alte.
Marvin: Der Quellcode von Marvin ist sehr übersichtlich – die enthaltenen vortrainierten Modelle ermöglichen bereits eine umfangreiche Weiterentwicklung.
Neon von NervanaSystems ist ein Open-Source-Framework, das auf ein- und abschaltbaren Modulen basiert und KI-Prozesse via CPU, GPU oder Nervanas eigene Hardware ermöglicht.