Funktionen werden Daten: Höherwertige Lambda-Funktionen für Datenbanksysteme
Die Erfindung des relationalen Modells im Jahr 1970 legte den Grundstein für den fortwährenden Erfolg von SQL als Datenanfragesprache. Seitdem stellt die Unterstützung von benutzerdefinierten Funktionen eine unnatürliche Erweiterung der relationalen Algebra dar und wird als Ausdruck zweiter Klasse in SQL betrachtet. SQL-Lambda-Ausdrücke wurden eingeführt, um ansonsten fest kodierte Data-Mining-Operatoren wie die Distanzfunktion für das k-Means-Clustering anzupassen. Datenbanksysteme parsen Lambda-Ausdrücke jedoch während der semantischen Analyse, die keine Funktionen als Argumente zulässt. Wir wollen die Grenze zwischen Daten und Anfragesprache aufheben und Funktionen zu einem erstrangigen Element in SQL erheben. Wenn Funktionen zu Daten werden, können sie in regulären SQL-Anfragen gespeichert, abgerufen und ausgeführt werden. Dieser Antrag zielt auf den logischen nächsten Schritt von SQL-Lambda-Funktionen ab, die Integration des Lambda-Kalküls in Datenbanksysteme, indem Logik höherer Ordnung ermöglicht und ihre Anwendung auf maschinelles Lernen demonstriert wird.
Modelldatenbanken überwachen die Genauigkeit der Modelle anhand von vorab trainierten Gewichten. Die Modelle werden als ausführbarer Code gespeichert und bei der Anwendung extrahiert. Anstatt lauffähigen Code und Daten aus einem Datenbanksystem zu extrahieren, schlagen wir SQL-Lambda-Funktionen höherer Ordnung für die datenbankinterne Ausführung vor. SQL-Lambda-Ausdrücke wurden eingeführt, um dem Benutzer die Möglichkeit zu geben, ansonsten fest kodierte Data-Mining-Operatoren wie die Distanzfunktion für das k-means-Clustering anzupassen. Allerdings parsen Datenbanksysteme Lambda-Ausdrücke während der semantischen Analyse, was Funktionen als Argumente nicht zulässt.
In diesem Antrag schlagen wir vor, dass Datenbanksysteme den gesamten Lebenszyklus einer Pipeline für maschinelles Lernen übernehmen. Das Ziel ist es, Modelle vollständig in SQL zu speichern und abzurufen, einer standardisierten deklarativen Sprache, die wir als Allzwecksprache für maschinelles Lernen etablieren wollen. So optimieren wir Datenbanksysteme für maschinelles Lernen, indem wir Lambda-Funktionen höherer Ordnung bereitstellen, die als Modellfunktionen verwendet werden können. Außerdem implementieren wir die benötigten Datentypen, Matrizen auf spezialisierten Gleitkommazahlen, nativ in Datenbanksystemen und unterstützen Hardwarebeschleuniger wie GPUs. Schließlich wollen wir den Datenbankoptimierer für maschinelles Lernen verbessern.