Künstliche Intelligenz

Kostenlose KI-Tools für Entwickler

10.12.2020
Von 
Thomas Joos ist freiberuflicher IT-Consultant und seit 20 Jahren in der IT tätig. Er schreibt praxisnahe Fachbücher und veröffentlicht in zahlreichen IT-Publikationen wie TecChannel.de und PC Welt.

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.
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.
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.
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.
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.
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)