Top 10 Open-Source Machine Learning Frameworks

von | 8. April 2022 | Grundlagen

Wir feiern 2022 das 10-jährige Jubiläum von [at] – Alexander Thamm.  

2012 waren wir die erste Beratung im deutschsprachigen Raum, die sich Data & AI auf die Fahne geschrieben hat. Heute lässt sich sagen, Künstliche Intelligenz hat das Potential, einen wichtigen Beitrag bei einigen der großen wirtschaftlichen und gesellschaftlichen Herausforderungen unserer Zeit zu leisten: KI spielt eine Rolle bei der Energiewende und Klimawandel, beim autonomen Fahren, bei der Erkennung und Behandlung von Krankheiten oder einer Pandemiebekämpfung. KI steigert die Effizienz von Produktionsprozessen und erhöht die Anpassungsfähigkeit von Unternehmen auf Marktveränderungen durch Echtzeitinformationen sowie Vorhersagen.  

Die wirtschaftliche Bedeutung der Technologie steigt rasant an. Mittlerweile nutzen mehr als zwei Drittel der deutschen Unternehmen Künstliche Intelligenz und Machine Learning.  

Mit #AITOP10 zeigen wir Dir, was gerade im Bereich Data & AI angesagt ist. Unsere TOP10-Listen präsentieren Podcast-Highlights, industriespezifische KI-Trends, KI-Experten, Tool-Empfehlung und vieles mehr. Hier bekommt ihr einen breiten Querschnitt über das Data & AI-Universum, das uns seit nunmehr 10 Jahren antreibt.  

Viel Spaß beim Lesen – und fühlt Euch herzliche eingeladen, die Liste zu ergänzen! 

Platz 10 Metaflow

Das von Netflix entwickelte und seit 2019 als Open-Source-Projekt verfügbare Framework vereinfacht diverse Herausforderungen rund um die Skalierung und Versionierung von ML-Projekten. Metaflow speichert Code, Daten und Dependencies in einem inhaltsadressierten Speicher und macht es so möglich, Workflows weiterzuentwickeln, alte zu reproduzieren sowie neue zu bearbeiten. Durch die Auslagerung einzelner Schritte auf separate Nodes auf AWS, lässt sich mit Metaflow der ML-Workflow leichter skalieren, ohne sich mit der Kommunikation zwischen den Nodes beschäftigen zu müssen. Das Framework ist vor allem dann praktisch, wenn man plant, seinen ML-Workflow in einer Produktionsumgebung auf AWS zu verwalten und auszuführen.

Platz 9 H2O

Die ML-Plattform H2O schlägt gleich mehrere Fliegen mit einer Klappe: Mit diversen vorkonfigurierten Algorithmen wie GLM, XGBoost, Random Forest, DNN, GAM oder K-means sowie einfachen Erweiterungsmöglichkeiten mit Hadoop, Spark und weiteren Frameworks löst die Plattform viele Schwierigkeiten der ML-Modellentwicklung und -Bereitstellung. Das intuitive UI sowie AutoML-Funktionalitäten automatisieren Feature-Engineering, Modelltraining und -tuning für einen schnelleren Workflow bei der Erstellung neuer ML-Modelle. Wegen der Unterstützung vieler gängiger Programmiersprachen und nützliche MLOps-Funktionen wird diese Plattform von viele großen Unternehmen für Use Cases in den Bereich Versicherung, Finanzen und Gesundheitswesen genutzt.

Platz 8 Apache MXNet

Das schlanke Deep-Learning-Framework, entwickelt von der Apache Software Foundation in Partnerschaft mit Intel, eignet sich für flexibles Prototyping sowie zur Nutzung in der Produktionsumgebung. Das Framework wurde für die Entwicklung neuronaler Netze konzipiert und überzeugt durch eine gut skalierbare Infrastruktur und ein flexibles Modell neuronaler Netze in verschiedenen Programmiersprachen. MXNet eignet sich hervorragend, um in der Cloud Deep-Learning-Berechnungen auf mehreren CPUs oder GPUs zu parallelisieren – mit einer fast linearen Skalierbarkeit. Die Gluon API als Frontend vereinfacht die Nutzung des Frameworks durch viele Plug-and-Play Bausteine zur Entwicklung neuronaler Netze, inklusive vordefinierter Layers, Optimizern und Initializern.

Platz 7 FastAI

Einen ML-Model-Prototypen zu entwickeln, ist zeitaufwändig. Mit fast.ai geht’s – wie der Name vermuten lässt – schneller. Die High-Level-API des Frameworks bietet vorkonfigurierte Algorithmen sowie eine gut durchdachte Struktur und sorgt so für die schnellere Entwicklung funktionierender Deep-Learning-Modell-Prototypen. Für Experten ist das Framework deshalb aber nicht weniger interessant: Mit der Low-Level-API können ausgefeilte und fein abgestimmte ML-Modelle erstellt und bis ins kleinste Detail optimiert werden. Ziel des Frameworks und der dahinterstehenden Non-Profit-Organisation ist es, „neuronale Netze wieder uncool zu machen”. Das soll die Popularität von neuronalen Netzen nicht schmälern, sondern die Zugänglichkeit der Technologie über die akademische Elite und Experten hinaus erweitern.

Platz 6 XGBoost

Wenn du mit strukturierten oder tabellarischen Daten arbeitest, sollte ein Algorithmus, basierend auf Entscheidungsbäumen, mit in der engeren Auswahl sein. XGBoost bietet die perfekte Kombination aus Soft- und Hardwareoptimierung zur Beschleunigung des Gradient Boosted Trees Algorithmus. Mit APIs in Python, Java, C++, Scala und Julia unterstützt das Framework mehrere Implementierungsmöglichkeiten für Gradient Boosted Trees und läuft auf CPUs, GPUs sowie verteilten Rechenressourcen. Das Framework konnte schon bei vielen Kaggle-Wettbewerben überzeugen und bietet durch seine Schnelligkeit kürzere Berechnungszeiten als normales Gradient Boosting. Die Kombination aus Hardwareoptimierung, Parallelisierung und Cloud-Integration macht das Framework optimal für die Beschleunigung von Berechnungen, die auf Entscheidungsbäumen basieren.

Platz 5 Apache Spark

Spark bietet dir eine Komplettlösung für deinen ML-Workflow als eines der größten Open-Source-Projekte der Geschichte. Die Unified-Computing-Engine für groß angelegte Data-Analytics-Projekte ist eines der am aktivsten entwickelten Open-Source-Engines für Machine Learning und zur Datenverarbeitung. Die Spark Engine unterstützt alle gängigen Programmiersprachen und lässt sich zusammen mit diversen Frameworks und Bibliotheken problemlos kombinieren. Mit Spark MLLib bietet die Engine verschiedene Algorithmen und Workflow-Tools zum Experimentieren, Bereitstellen und Skalieren deines ML-Modells mit der schnellen Spark Computing-Engine. Von SQL über Data Streaming bis hin zu Machine Learning – Spark läuft überall, von der CPU deines Laptops bis zu einem Servercluster, und ist daher das richtige Framework, um klein anzufangen und groß zu skalieren.

Platz 4 Scikit-Learn

Für Einsteiger, die mit Predictive Data Analysis in die Welt des ML starten wollen, ist Scikit-Learn genau das Richtige. Das robuste und einfach zu verstehende Framework bietet eine Reihe an einfachen und effizienten Tools für Data Mining und Data Analytics. Weil Scikit-Learn auf verschiedenen Python Packages wie Numpy, SciPy und Matplotlib basiert, lässt sich der typische ML Workflow einfach durchschauen und erlernen. Durch die einfache Nutzung und viele gut beschriebene Beispiele ist Sckikit-Learn ein tolles Tool für Anfänger und neue ML-Engineers, die schnell Ergebnisse mit ML-Algorithmen erzielen wollen.

Platz 3 Keras

Neuronale Netze zu entwickeln kann schwieriger sein als gedacht – gerade für Anfänger. Das Keras Framework bietet hier Abhilfe und vereinfacht die Definierung und das Training von jeglicher Art neuronaler Netze. Keras wurde ursprünglich für wissenschaftliche Zwecke entwickelt, um die Zeit von der Idee bis zum Experiment mit neuronalen Netzen zu reduzieren. Das Framework beinhaltet einheitliche und einfache APIs, reduziert die benötigten Schritte bei der Entwicklung neuronaler Netze für typische Use Cases und bietet user-freundliches Debugging. Mit der Performance von TensorFlow und einer API für schnelles Experimentieren ist Keras ein etabliertes Framework, dass sowohl von Wissenschaftlern als auch von vielen großen Unternehmen genutzt wird.

Platz 2 PyTorch

Auf der Suche nach einem flexiblen und gut skalierbaren Deep-Learning-Framework hast du vielleicht schonmal von PyTorch gehört – mit gutem Grund! Einer der Hauptvorteile bei der Nutzung von PyTorch für Deep Learning sind PyTorchs’s sogenannte ‚dynamischen Berechnungsgraphen‘. Während statische Berechnungsgraphen, wie in TensorFlow, schon vor der Laufzeit definiert werden, definieren sich dynamische Berechnungsgraphen erst bei der Berechnung des Modells. Mit anderen Worten: Bei jeder Iteration wird der Graph neu aufgebaut. Das kann vor allem hilfreich bei der Definition rekurrenter neuronaler Netze (RNN) sein, beispielweise bei NLP-Use-Cases mit variabler Länge der Inputs. Weil PyTorch für eine Low-Level Umgebung konzipiert ist, bietet das Framework eine hohe Flexibilität und viele Möglichkeiten – kann aber für Anfänger etwas überfordernd sein.

Platz 1 TensorFlow

Das beliebteste Deep-Learning-Framework darf auf dieser Liste natürlich nicht fehlen. Mit APIs in Java, Python und JavaScript – aber der Kernstruktur geschrieben in C++ – ist TensorFlow schnell aber trotzdem einfach zu handhaben. Das Framework kann genutzt werden, um tiefe neuronale Netze zu trainieren und einzusetzen, ganz egal ob auf Servern, im Web oder auf Edge-Geräten. Mit unzähligen branchenführenden ML-Use-Cases ist TensorFlow eines der vielseitigsten und beliebtesten Frameworks zur Entwicklung neuronaler Netze. Außerdem bietet das neu entwickelte TensorFlow Extended sogar eine End-to-End-Plattform für die Entwicklung und den Einsatz kompletter ML-Pipelines.

Mit welchem Framework arbeitest du am liebsten, wenn es um ML und Deep Learning geht?

Kommentiere deine Favoriten unter diesem Artikel!

Autor:innen

Lukas Lux

Lukas Lux ist Werkstudent im Bereich Customer & Strategy bei der Alexander Thamm GmbH. Neben seinem Studium des Sales Engineering & Product Management mit dem Schwerpunkt IT-Engineering beschäftigt er sich mit den aktuellsten Trends und Technologien im Bereich Data & AI und stellt diese in Zusammenarbeit mit unseren [at]Experten für euch zusammen.

0 Kommentare