MindsDB Machine Learning und Künstliche Intelligenz mit SQL nutzen

Von Thomas Joos 5 min Lesedauer

Mit MindsDB ML-SQL Server können Entwickler Abläufe für Programme und Modelle in den Bereichen Künstliche Intelligenz (KI) und Machine Learning (ML) über SQL abwickeln. Dadurch lassen sich zum Beispiel Modelle als KI-Tabellen bereitstellen. Das ermöglicht beispielsweise umfassende Prognosen für komplexe Daten.

Mit der Open-Source-Lösung MindsDB ML-SQL-Server können Anwender Workflows für maschinelles Lernen über SQL abwickeln.
Mit der Open-Source-Lösung MindsDB ML-SQL-Server können Anwender Workflows für maschinelles Lernen über SQL abwickeln.
(Bild: https://github.com/mindsdb/mindsdb)

MindsDB ML-SQL-Server ist eine Open-Source-Lösung, mit der sich Workflows für maschinelles Lernen über SQL abwickeln lassen. ML-Modelle können dadurch zum Beispiel als Tabellen bereitgestellt werden. MindsDB ermöglicht es Benutzern, über eine SQL-ähnliche Schnittstelle Vorhersagen treffen zu können. Die Lösung soll es Entwicklern und Datenwissenschaftlern leicht machen, Modelle für maschinelles Lernen in Produktionsumgebungen zu erstellen und einzusetzen.

MindsDB unterstützt eine breite Palette von Modellen für maschinelles Lernen und kann mit gängigen Datenspeichersystemen wie MySQL und PostgreSQL integriert werden. Darüber hinaus bietet es eine webbasierte Benutzeroberfläche für die Verwaltung und Überwachung der eingesetzten Modelle.

MindsDB MS-SQL Server ermöglicht umfassende Abfragen für KI/ML-Modelle mit einer SQL-Syntax.
MindsDB MS-SQL Server ermöglicht umfassende Abfragen für KI/ML-Modelle mit einer SQL-Syntax.
(Bild: T. Joos)

Ein großer Vorteil von MindsDB ist die Benutzerfreundlichkeit. Der Einstieg gelingt ohne tief greifende Kenntnisse in der Datenwissenschaft oder im Machine Learning. Mit MindsDB können Entwickler einfach Fragen an den Server stellen, anstatt komplexe Codezeilen zu schreiben. MindsDB unterstützt eine Vielzahl von Machine-Learning-Modellen, darunter Regression, Klassifizierung und NLP. Die webbasierte Benutzeroberfläche ermöglicht es Benutzern, ihre Modelle einfach zu verwalten und zu überwachen.

Ein weiterer Vorteil von MindsDB ist die Unterstützung für die Integration mit populären Datenspeichersystemen. Das erlaubt es Entwicklern, ihre bestehenden Datenbanken zu verwenden, um Machine-Learning-Modelle zu trainieren und Vorhersagen zu treffen. Trotz der einfachen Oberfläche bietet MindsDB die Möglichkeit, Machine-Learning-Modelle in Echtzeit zu trainieren und zu aktualisieren. Das erhöht die Flexibilität und Skalierbarkeit. Darüber hinaus können Entwickler ihre Modelle schnell an sich ändernde Anforderungen anpassen.

MindsDB in der Praxis

Um MindsDB ML-SQL-Server zu installieren, sollte die aktuelle Python-Version installiert sein. Die Installation kann mit „pip install mindsdb“ installiert werden. Nach der Installation kann der MindsDB-Server mit dem Befehl „mindsdb“ in der Befehlszeile gestartet werden. Wenn der Server gestartet ist, steht die MindsDB-API über eine HTTP-Schnittstelle zur Verfügung, um Machine-Learning-Modelle zu trainieren oder zu verwalten. Es besteht zudem die Möglichkeit, MindsDB in einer Docker-Umgebung zu installieren. Der Download kann zum Beispiel mit „docker pull mindsdb/mindsdb“ erfolgen. Über die Weboberfläche kann anschließend eine Abstraktion von ML-Modellen als KI-Tabellen genutzt werden. MindsDB ML SQL-Server bietet Vorhersagen über komplexe multivariate Zeitreihendaten mit hoher Kardinalität

Um ML-Modelle zu trainieren, sollte nach der Installation eine Verbindung mit den vorhandenen Datenbanken umgesetzt werden. Danach kann MindsBD automatisch mit einer einzigen SQL-Anweisung aus historischen Daten lernen. Parallel dazu können Entwickler ML-Modelle über JSON-AI in einen Predictor importieren. Die Vorhersagen werden mit SQL-Anweisungen umgesetzt und der Predictor wird als virtuelle KI-Tabellen dargestellt. Die Verknüpfung von ML-Modellen mit vorhandenen Daten ist genauso möglich, wie die Erkennung von Anomalien. Für eine höhere Leistung bietet MindsDB auch GPU-Unterstützung für das Training der Modelle. Die offene JSON-AI-Syntax zur Erstellung von Modellen und zum Einbringen von ML-Blöcken in einer deklarativen Weise ist standardmäßig integriert.

Diese Möglichkeiten bietet MindsDB ML SQL-Server für Entwickler und Datenwissenschaftler

MindsDB ML-SQL-Server kann in verschiedenen Szenarien verwendet werden. Beispiele dafür sind:

  • Vorhersage von Verkaufszahlen: Ein Machine-Learning-Modell wird trainiert, um die zukünftigen Verkaufszahlen eines Unternehmens vorherzusagen, indem historische Verkaufsdaten und andere relevante Faktoren wie Wetter, Feiertage und Werbekampagnen verwendet werden.
  • Anomalie-Erkennung: Anomalien in Daten wie Ausreißer oder ungewöhnliche Aktivitäten in einem Netzwerk erkennen.
  • Bilder automatisch kategorisieren oder beschriften, indem Beispielbilder und die entsprechenden Labels verwendet werden.
  • Texte automatisch kategorisieren oder klassifizieren, indem Beispieltexte und die entsprechenden Labels verwendet werden.
  • Emotionen in Texten erkennen, indem Beispieltexte und die entsprechenden Emotionen als Labels verwendet werden.
  • Wartungszeitpunkte von Geräten vorhersagen, indem historische Wartungsdaten und andere relevante Faktoren wie Betriebszeit, Fehlermeldungen und Umgebungsbedingungen verwendet werden.

Beispiel-Abfragen für die Möglichkeiten von MindsDB

Diese vielfältigen Szenarien sind durch die flexible Verwendung von SQL innerhalb von Modellen möglich. Ein Beispiel für die Syntax ist:

# Trainiere ein Modell mit dem Namen "housing_model" auf einer Tabelle namens "housing_data"

TRAIN MODEL housing_model ON housing_data

# Frage das Modell "housing_model" nach einer Vorhersage für das "price"-Attribut basierend auf den "sqft"- und "bedrooms"-Attributen

PREDICT price FROM housing_model WHERE sqft = 2000 AND bedrooms = 3

In diesem Beispiel wird zunächst ein Modell mit dem Namen „housing_model“ auf der Tabelle „housing_data“ trainiert. Anschließend wird das Modell verwendet, um eine Vorhersage für das „price"-Attribut basierend auf den Werten „sqft“ = 2000 und „bedrooms“ = 3 zu erhalten.

Ein weiteres Beispiel für die Verwendung von MindsDB ist:

# Erstelle eine Tabelle namens "sales_data" mit den Attributen "product", "region" und "sales"

CREATE TABLE sales_data (product VARCHAR, region VARCHAR, sales INT)

# Füge Daten in die Tabelle "sales_data" ein

INSERT INTO sales_data (product, region, sales) VALUES ('Shampoo', 'West', 5000), ('Shampoo', 'East', 6000), ('Conditioner', 'West', 2500), ('Conditioner', 'East', 3500)

# Trainiere ein Modell mit dem Namen "sales_prediction" auf der Tabelle "sales_data"

TRAIN MODEL sales_prediction ON sales_data

# Frage das Modell "sales_prediction" nach einer Vorhersage für die "sales" basierend auf dem "product" und "region"

PREDICT sales FROM sales_prediction WHERE product = 'Shampoo' AND region = 'West'

In diesem Beispiel wird zunächst eine Tabelle namens „sales_data“ erstellt, welche die Attribute „product“, „region“ und „sales“ enthält. Dann werden Daten in die Tabelle eingefügt. Anschließend wird ein Modell mit dem Namen „sales_prediction“ auf dieser Tabelle trainiert. Schließlich wird das Modell verwendet, um eine Vorhersage für die „sales“ basierend auf dem „product“ = Shampoo und „region“ = West zu erhalten.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Die Beispiele zeigen die einfache Verwendung der Syntax, für das Erstellen von Analysen. Auf dem gleichen Weg lassen sich Abfragen auf Basis vorhandener Daten, zum Beispiel aus einer PostgreSQL-Datenbank erstellen:

# Verbinde mit einer PostgreSQL-Datenbank mit dem Namen "mydb" und dem Benutzernamen "myuser" und dem Passwort "mypassword"

CONNECT TO POSTGRESQL mydb USER myuser PASSWORD mypassword

# Frage die Tabelle "sales_data" aus der Datenbank "mydb" ab

SELECT * FROM mydb.sales_data

# Frage die Tabelle "sales_data" aus der Datenbank "mydb" nach allen Einträgen mit dem Wert "West" im Attribut "region" ab

SELECT * FROM mydb.sales_data WHERE region = 'West'

# Trainiere ein Modell mit dem Namen "sales_prediction" auf der Tabelle "sales_data" aus der Datenbank "mydb"

TRAIN MODEL sales_prediction ON mydb.sales_data

# Frage das Modell "sales_prediction" nach einer Vorhersage für die "sales" basierend auf dem "product" und "region"

PREDICT sales FROM sales_prediction WHERE product = 'Shampoo' AND region = 'West'

In diesem Beispiel wird zunächst eine Verbindung zu einer PostgreSQL-Datenbank mit dem Namen „mydb“ und dem Benutzernamen „myuser“ und dem Passwort „mypassword“ hergestellt. Dann werden Daten aus der Tabelle „sales_data“ in der Datenbank „mydb“ abgefragt, sowohl alle Einträge als auch diejenigen, die „West“ im Attribut „region“ enthalten. Anschließend wird ein Modell mit dem Namen „sales_prediction“ auf der Tabelle „sales_data“ aus der Datenbank „mydb“ trainiert. Schließlich wird das Modell verwendet, um eine Vorhersage für die „sales“ basierend auf dem „product“ = Shampoo und „region“ = West zu erhalten.

(ID:49531815)