Künstliche Intelligenz

Kostenlose KI-Tools für Entwickler

13.07.2018 von Thomas Joos
Um Künstliche Intelligenz in ihre Anwendungen zu injizieren, stehen Entwicklern diverse Open Source Tools zur Verfügung. Wir haben die besten kostenlosen KI-Werkzeuge für Sie zusammengefasst.
Mit Open Source Tools können Entwickler KI- und Machine-Learning-Features in ihre Anwendungen integrieren.
Foto: Besjunior - shutterstock.com

Entwickler, die sich mit dem Thema Künstliche Intelligenz und Machine Learning auseinandersetzen, können beispielsweise Apps für eine bessere Spracherkennung schreiben oder ihre selbst entwickelten Anwendungen auf eine neue Ebene heben. Dieser Artikel gibt einen Überblick über einige der bekanntesten Open-Source-Lösungen.

Entwickler können damit auf die Erfahrungen von Softwareriesen wie Google oder Facebook zurückgreifen, um eigene Apps mit Künstlicher Intelligenz auszustatten. Die Frameworks arbeiten mit den aktuell verbeitetsten Entwicklungsumgebungen und Programmiersprachen zusammen. In den meisten Fällen sind also keine neuen Kenntnisse notwendig, um die eigenen Apps effektiver und intelligenter zu machen.

Open Neural Network Exchange

Mit Open Neural Network Exchange (ONNX) können Entwickler ihre KI-Modelle untereinander austauschen. Die Plattform gehört zur LF AI Foundation, einer Unterorganisation der Linux Foundation. Die Organisation arbeitet mit Microsoft, Amazon, Facebook und vielen anderen Unternehmen zusammen. Die Modelle aus ONNX können in MXNet, PyTorch, OpenCV und anderen Anwendungen und Plattformen genutzt werden. Über Schnittstellen können Modelle auch zwischen verschiedenen Plattformen ausgetauscht werden.

Auf der Plattform steht auch ONNX.js zur Verfügung. Dabei handelt es sich um eine JavaScript-Bibliothek, mit der ONNX-Modelle ausgeführt werden können. Die Bibliothek arbeitet unter anderem auch mit Node.js zusammen. ONNX definiert einen gemeinsamen Satz von Operatoren und ein gemeinsames Dateiformat, mit dem KI-Entwickler Modelle mit zahlreichen Frameworks, Werkzeugen, Laufzeiten und Compilern verwenden können.

Apache MXNet

Bei Apache MXNet handelt es sich um ein Open-Source-Framework für Deep Learning. Mit MXNet können neuronale Netzwerke trainiert und bereitgestellt werden. Das Framework ist sehr flexibel und unterstützt zahlreiche Programmiersprachen. Dazu gehören C++, Python, Java, Julia, Matlab, JavaScript, Go, R, Scala, Perl und Wolfram. Die Library von MXNet kann auch auf Cloud-Plattformen wie Amazon AWS oder Microsoft Azure eingesetzt werden.

OpenCV

Mit OpenCV können auf Basis von Open-Source-Software Anwendungen im KI-Bereich entwickelt werden. Zu den Schwerpunkten gehören zum Beispiel Gesichtserkennung und 3D-Programme. Das System kann etwa zur Mensch-Computer-Interaktion (HCI) und in der Robotik genutzt werden. OpenCV kann auch Daten von Deep Learning Frameworks einlesen und weiterverarbeiten. Unterstützt werden zum Beispiel TensorFlow, Torch, Darknet und Modelle im ONNX Format.

Cortx

Seagate bietet mit Cortx eine Open-Source-Software für Object-Storage-Systeme. Damit lassen sich Daten in KI-Umgebungen wesentlich besser speichern als mit herkömmlichen Speichertechnologien. Bei der Arbeit mit KI fallen große Datenmengen an, die gleichzeitig schnell geschrieben und gelesen werden müssen. Hier kann Object Storage seine Stärken ausspielen. Cortx wird unter anderem von Toyota, Fujitsu und der UK Atomic Energy Authority eingesetzt. Die Software verwaltet Speicher für KI- und ML/DL-Anwendungen, darunter auch TensorFlow. Neben der Integration in Seagate-Produkten, wie etwa im Seagate Lyve Drive Rack, kann Cortx auch mit anderen Speichersystemen genutzt werden, zum Beispiel mit Intel Optane.

OpenIO

Mit OpenIO steht Entwicklern eine weitere Lösung für Object-Storage zur Verfügung. Mit OpenIO können auch Big-Data-Lösungen wie Hadoop und Spark genutzt werden. Auch die Anbindung an Amazon S3 oder OpenStack Swift ist möglich. Über eine native REST/HTTP-API können externe Anwendungen die erweiterten Speicherfunktionen nutzen. Zusätzlich gibt es noch APIs für Python, C/C++ und Java. Der Quellcode ist auf GitHub verfügbar.

MinIO

MinIO ist eine weitere, quelloffene Object-Storage-Lösung. Die Lösung gehört zu den beliebtesten Objektspeichern für Container-Umgebungen mit Kubernetes und bietet Amazon-S3-Kompatibilität.

Caffe2/PyTorch

Das Deep Learning Framework Caffe wurde ursprünglich an der University of California entwickelt. Das Projekt ist mittlerweile Bestandteil der Machine-Learning-Bibliothek PyTorch. Die Software basiert auf der beliebten Programmiersprache Python. Diese wird auch bevorzugt für die Entwicklung von KI/ML-Systemen eingesetzt.

Das Deep Learning Framework Cafee2 ermöglicht eine bessere Spracherkennung und das Erstellen von KI-Apps.
Foto: caffe2

Neben den Funktionen von Caffe sind mit PyTorch zahlreiche weitere Funktionen integriert, mit denen Machine- und Deep-Learning-Systeme effektiver genutzt werden können. Wie ursprünglich bei Caffe, werden zur Berechnung von Daten auch GPUs eingesetzt, zum Beispiel von Nvidia. Mit PyTorch können neuronale Netze aufgebaut werden. Zusammen mit PyTorch können Bibliotheken wie NumPy, SciPy oder Cython genutzt werden.

R/Rstudio

Die Programmiersprache R ist wichtig, wenn es darum geht, statistische Analysen und Berechnungen durchzuführen, die für KI und ML eine Rolle spielen. Sie steht als Open Source Software zur Verfügung. R kann in Windows, Linux und macOS genutzt werden. Der Download erfolgt direkt auf der Projektseite.

RStudio: Entwickeln mit R.
Foto: R Foundation

Wer mit R arbeitet, nutzt in den meisten Fällen auch eine Programmierumgebung. Beim Einsatz von R kann auch RStudio genutzt werden. Dieses steht zum Teil auch kostenlos zur Verfügung.

scikit-learn

Die Library scikit-learn, abgeleitet von SciPy Toolkit, baut auf der Programmiersprache Python auf. Pakete wie NumPy, SciPy, oder Matplotlib werden von scikit-learn genutzt, um mathematische, wissenschaftliche oder statistische Programme in Python zu schreiben. Auch für das Data Mining und zur Datenanalyse kann scikit-learn genutzt werden. Die Library kann parallel zu PyTorch genutzt werden.

Scikit-learn kann KI-Funktionen in Apps integrieren.
Foto: scikit-learn

scikit-learn steht unter der BSD-Lizenz kostenlos zur Verfügung. Auch diese Lösung ist in der Lage, KI-Anwendungen zu erstellen, beispielsweise Bots oder Apps für Sprachassistenten. scikit-learn kann also von Computerprogrammen erstellte Nachrichten im Internet von menschlich erstellten Texten unterscheiden.

Wer auf Basis von Python mit Machine Learning und künstlicher Intelligenz arbeiten will, sollte sich die Möglichkeiten von Scikit-Learning ansehen. Die Anbieter stellen auch verschiedene Tutorials zur Verfügung, mit denen sich Entwickler die Arbeit mit Python und scikit-learn aneignen können. Durch die aktive Community und die ausgearbeitete Dokumentation lassen sich schnell Ergebnisse erzielen. scikit-Learn arbeitet auch mit anderen Paketen zusammen, zum Beispiel Pandas oder TensorFlow.

Die Programme und Funktionen, die mit scikit-learn geschrieben werden, lassen sich auch in andere Programme integrieren. Dadurch können Programme KI-Funktionen erhalten, die ohne scitkit-learn nicht dazu in der Lage waren.

TensorFlow

Das Open-Source-Framework TensorFlow wird von zahlreichen anderen KI-Programmen und -Tools unterstützt. Mit den Bibliotheken können ML-Modelle entwickelt und trainiert werden. TensorFlow bietet einen schnellen Einstieg. So lassen sich zum Beispiel Colab-Notebooks direkt im Browser ausführen.

Microsoft Azure

Microsoft bietet auf seiner Cloud-Plattform Azure ebenfalls zahlreiche Funktionen und Ressourcen für KI und ML. Über ein kostenloses Test-Konto bietet das Unternehmen diverse Möglichkeiten und verschiedene Dienste dauerhaft kostenlos an. Etliche KI-Ressourcen stehen auf der Azure-Webseite bereit. Microsoft schottet Azure nicht von anderen KI-Diensten ab und unterstützt die Integration mit verschiedenen Werkzeugen, die in diesem Beitrag vorgestellt werden. Auch Open-Source-Dienste wie Open Neural Network Exchange (ONNX) können angebunden werden. Das gilt auch für PyTorch, TensorFlow und scikit-learn.

IBM Watson Machine Learning

Mit dem Dienst "Watson Machine Learning" steht in der IBM-Cloud ebenfalls ein KI-Dienst kostenlos zur Verfügung. Um ihn zu nutzen, müssen Entwickler ein Konto für IBM Cloud Free Tier erstellen. Mit dem Lite-Konto können insgesamt 40 Dienste in der IBM-Cloud kostenlos genutzt werden.

IBM stellt Cloud-Dienste kostenlos zur Verfügung.
Foto: IBM

Oracle Free Tier

Neben IBM stellt auch Oracle seine Cloud-Plattform zum Teil kostenlos zur Verfügung. Beispielsweise seine autonome Datenbank, die ebenfalls für KI genutzt werden kann.

Shogun

Die Machine-Learing-Software "Shogun" gehört ebenfalls zu den bekannten Lösungen im Bereich Künstliche Intelligenz. Die Library unterstützt zahlreiche Sprachen, wie zum Beispiel Python, Octave, R, Java/Scala, Lua, C# und Ruby. Dadurch lassen sich wissenschaftliche Programme auf Basis von Linux/Unix, macOS und Windows erstellen. Die Lösung ist also nicht von Trends in Programmiersprachen abhängig und lässt sich flexibel mit der Sprache einsetzen, die jeweils am besten für das entsprechende Objekt geeignet ist. Ein Wechsel ist jederzeit möglich, sodass sich Entwickler nicht in eine Sackgasse manövrieren, wenn die aktuell verwendete Programmiersprache in Zukunft weniger verbreitet ist.

KI mit Shogun bietet Entwicklern viele Möglichkeiten, zum Beispiel natürliche Spracherkennung.
Foto: shogun

Shogun kann bei Regressionsanalysen- und Problemen mit Klassifikationen helfen. Der Schwerpunkt liegt in der Bioinformatik. Das System nutzt dazu Kern-Methoden und -Sequenzen, auch String-Kerne genannt. Dadurch lassen sich große Datenmengen in kurzer Zeit analysieren. Shogun verfügt über Schnittstellen zu Support Vector Machines (SVM). Dabei handelt es sich um Lernmodelle mit zugehörigen Lernalgorithmen, die Daten analysieren. SVMs sind also keine Maschinen, sondern mathematische Verfahren zur Unterteilung von Objekten in Klassen.

Dazu gehören SVMlight oder libSVM. Shogun läuft auch als Container-Image. Außerdem arbeitet Shogun auch mit anderen Bibliotheken zusammen. Dazu gehören neben SVMlight und libSCM auch LibLinear, LibOCAS, libqp, VowpalWabbit, Tapkee, SLEP, GPML und einige mehr. Die Entwickler bieten auf Ihrer Webseite Tutorials, um den Umgang mit der Lösung zu erlernen.

Accord.NET Framework

Accord.NET Framework ist eine Software für das Erstellen von Software für maschinelles Lernen. Sie bietet auch Bibliotheken zur Audio- und Bildverarbeitung. Die Lösung ist der Nachfolger von AForge.NET. Bei dem Framework handelt es sich um ein .NET-Framework, das mit vollständig in C# geschriebenen Audio- und Bildverarbeitungs-Bibliotheken kombiniert wird.

Das Framework dient der Erstellung von produktionstauglichen Signalverarbeitungs- und Statistikanwendungen für die kommerzielle Nutzung. Eine Sammlung von Beispielanwendungen ermöglicht einen raschen Start und ist schnell einsatzbereit. Eine Dokumentation und ein Wiki helfen dabei, sich einzuarbeiten.

Das Accord.NET Framework unterstützt auch neuronale Netze.
Foto: Accord

Das Framework bietet eine Reihe verschiedener Bibliotheken. Diese sind im Quellcode verfügbar, als ausführbare Installer, sowie als NuGet-Pakete. Sie lassen sich also direkt aus der NuGet-Quelle herunterladen und auf dem entsprechenden Gerät nutzen. Accord.NET Framework unterstützt numerische und lineare Algebra, numerische Optimierung, Statistik und maschinelles Lernen. Auch neuronale Netze sind mit Accord.NET Framework umsetzbar.

Apache Mahout

Apache Mahout ist eine Bibliothek von skalierbaren ML-Algorithmen, die auf Apache Hadoop und MapReduce basiert. Apache Mahout ermöglicht maschinelles Lernen zusammen mit Big Data-Umgebungen, und kann dazu direkt mit Apache Hadoop zusammenarbeiten. Auch statistische Berechnungen lassen sich durchführen.

Die Lösung arbeitet mit anderen Big-Data-Produkten, zum Beispiel Apache Spark zusammen. Die interaktive Shell ermöglicht eine direkte Verbindung in verschiedene Apps. Dazu wird eine Scala-basierte Library verwendet, die ähnlich wie R funktioniert. Diese nutzt Mahout als Domain Specific Language (DSL), die sich mit R vergleichen lässt. Wer R kennt, kommt mit Mahout schnell zurecht. Spark und Flink lassen sich parallel nutzen. Code, der mit der DSL für Spark geschrieben wurde, funktioniert meistens auch mit Flink.

Apache Mahout lässt sich in Big Data Apache-Infrastrukturen integrieren.
Foto: Mahout

Mahout hat lineare Algebra im Fokus. Die verteilte Zeilenmatrix (distributed row matrix) kann als Datentyp in Mahout genutzt werden. Mahout ist in Apache Zeppelin integriert. Dabei handelt es sich um eine Lösung zur vereinfachten Sammlung und Analyse von Big Data. Visualisierungen aus ggplot, einem Plot-System, und matplotlib, einer Programmbibliothek für Python, lassen sich in Mahout ebenfalls nutzen. Beschleunigen lassen sich die Berechnungen auch durch Grafik-CPUs im Rechner.

Spark MLlib

Spark MLlib ist eine Machine-Learning-Bibliothek, mit der Apache Spark maschinelles Lernen optimal mit seinen anderen Funktionen nutzen kann. Spark MLlib kann mit Java, Scala, Python und R genutzt werden. MLlib nutzt die APIs von Spark und interagiert mit NumPy in Python. Bei NumPy handelt es sich um eine Python-Bibliothek, mit der sich Vektoren, Matrizen und mehrdimensionale Arrays handhaben lassen. ,

R-Bibliotheken lassen sich, zusammen mit Apache Spark und MLlib, ebenfalls nutzen(ab Spark 1.5). Sie können eine beliebige Hadoop-Datenquelle verwenden, um die Integration in Hadoop-Workflows zu erleichtern. Dateisysteme wie HDFS, HBase und lokale Dateien lassen sich parallel verwenden. Dadurch lassen sich Daten für maschinelles Lernen verarbeiten und gemeinsam nutzen.

Die Machine-Learning-Bibliothek MLlib arbeitet mit Hadoop und Spark zusammen.
Foto: Apache Spark

Die Entwickler gehen davon aus, dass die Algorithmen teilweise hundertmal schneller sind als MapReduce. Bei beiden Systemen lassen sich strukturierte und unstrukturierte Daten mit hoher Geschwindigkeit verarbeiten. Wichtig ist das vor allem für Umgebungen im Big-Data-Bereich. MLlib enthält Algorithmen, welche besser mit Apache Spark zusammenarbeiten und daher bessere Ergebnisse liefern als die in MapReduce verwendeten One-Pass-Näherungen.

Der Vorteil von MLlib liegt auch darin, dass die Bibliothek überall läuft, wo auch Spark, Hadoop, Apache Mesos und Kubernetes genutzt werden. Cluster lassen sich lokal betreiben, es können aber auch Daten in der Cloud genutzt werden. MLlib läuft auch auf Clustern in der Cloud, die wiederum verschiedene Datenquellen nutzen können.

Spark kann mit MLlib mit seinem eigenständigen Cluster-Modus, auf Amazon AWS (EC2), auf Hadoop YARN, Mesos oder mit Containern betrieben werden. Daten lassen sich aus HDFS, Apache Cassandra, Apache HBase, Apache Hive und vielen anderen Quellen einlesen.

H2O

Die Open-Source-Software H2O kombiniert Funktionen aus dem maschinellen Lernen mit einer skalierbaren In-Memory-Verarbeitung für Big Data. Maschinelles Lernen kann in diesem Fall in Kombination mit Analysen aus Big Data genutzt werden. In H2O wird die Reaktionsfähigkeit der In-Memory-Verarbeitung mit der Fähigkeit zur schnellen Serialisierung zwischen Knoten und Clustern kombiniert. H2O lässt sich schnell und einfach skalieren. Die Verwaltung erfolgt zunächst mit einer webbasierten Flow GUI. POJOs lassen sich bereitstellen, um Daten für genaue Vorhersagen in jeder Umgebung zu erhalten. Ein POJO ist ein Java-Objekt, das keinerlei Einschränkungen aufweist.

H2O kombiniert Funktionen aus dem maschinellen Lernen mit einer skalierbaren In-Memory-Verarbeitung für Big Data.
Foto: H2O

H2O kann direkt auf HDFS zugreifen, aber ebenso auf Daten aus Yarn, einem Big Data-Analyse-System, und MapReduce. H2O lässt sich zudem direkt in Amazon AWS-EC2-Instanzen starten. Es kann mit Hadoop über Java kommunizieren, aber auch Python, R und Scala lassen sich nutzen, inklusive aller unterstützten Pakete.

Da H2O direkt auf HDFS aufbaut, erzielt die Lösung eine hohe Leistung, wenn HDFS als Speichersystem eingesetzt wird. Das KI-Framework H2O bietet eine Palette an Algorithmen, mit denen sich KI, zusammen mit Big Data und maschinellem Lernen, entwickeln und verwalten lässt. Beispiele sind Deep Learning, Gradient Boosting und Generalized Linear Models. Dabei handelt es sich um Technologien aus dem maschinellen Lernen, mit denen sich zum Beispiel Regressionsanalysen durchführen lassen. Zusammen mit Apache Spark können dadurch auch Berechnungen und Anwendungen in der Cloud genutzt werden. Versicherungsunternehmen nutzen beispielsweise H2O, da hier auch komplexe Berechnungen erstellt werden können.

Oryx 2

Oryx ist eine Software, die Daten aus Kafka und Spark nutzt. Dadurch lassen sich Daten aus Analysen im Big-Data-Bereich auch für maschinelles Lernen nutzen. Dabei ist es möglich, maschinelles Lernen in Echtzeit durchzuführen. Daten lassen sich in Echtzeit verarbeiten, und zwar aus verschiedenen Quellen.

Oryx 2 basiert auf der Lambda-Architektur. Diese neue Art der Datenhaltung wird vor allem in Big-Data-Umgebungen genutzt. Die Architektur wird daher auch mit Apache Spark und Apache Kafka eingesetzt. Spezialisiert ist die Lösung auf maschinelles Lernen. Das Framework kann für die Erstellung von Anwendungen genutzt werden, bietet aber auch gepackte End-to-End-Anwendungen für kollaboratives Filtern, Klassifizieren, Regression und Clustering.

Oryx 2 arbeitet mit Apache Spark und Apache Kafka zusammen.
Foto: Oryx2

Oryx 2 besteht aus drei Ebenen: Der Batch-Layer berechnet historische Daten. Diese Operation kann mehrere Stunden dauern und einige Male pro Tag gestartet werden. Die Geschwindigkeitsebene erstellt und veröffentlicht die inkrementellen Modellaktualisierungen aus einem Strom neuer Daten. Diese Updates können in der Größenordnung von Sekunden stattfinden. Die dritte Ebene, der Serving Layer, empfängt Modelle und Updates. Die Datentransportschicht verschiebt Daten zwischen Schichten und empfängt Eingaben von externen Quellen.

Google DeepVariant

Google DeepVariant ist eine KI-Software zur Gensequenzierung. Die Software kann in der Google- Cloud betrieben werden. Die Open-Source-Software basiert auf TensorFlow. Sie kann Daten aus Gensquenzierungen nutzen, um ein Genom zu berechnen.

Die KI-Software Google DeepVariant ist für die Genom-Erforschung konzipiert.
Foto: Google

Google DeepVariant macht beim Analysieren von Genen besonders wenig Fehler und kann besonders schnell Genanalysen durchführen. Daher hat die Software auch bereits Preise der "Food and Drug Administration (FDA)" gewonnen. Die KI-basierte Software arbeitet auch mit neuralen Netzwerken. (fm)