Zähmen Sie hochkardinale kategoriale Daten bei der agentenbasierten SQL-Generierung mit VectorDBs
Agentische Workflows und große Sprachmodelle (LLMs) haben grundlegend verändert, wie wir Text-zu-SQL-Systeme angehen, und ermöglichen es Nutzern, Datenbanken wie nie zuvor mit natürlicher Sprache abzufragen. Mit der Weiterentwicklung dieser Systeme stoßen wir auf verschiedene neuartige Herausforderungen bei der Übersetzung menschlicher Absicht in präzise SQL-Abfragen.
Ein wesentliches Problem ist der Umgang mit hochkardinalen kategorialen Daten. Dieser Artikel untersucht, wie die Integration von Vektordatenbanken in agentische Text-zu-SQL-Systeme diese Herausforderung bewältigen kann. Konkret zeigen wir, wie die Kombination aus Waii und Zilliz Cloud (der vollständig verwalteten Milvus Vektordatenbank) dieses Problem automatisch behandelt.
Die Herausforderung hochkardinaler kategorialer Daten
Kategoriale Daten sind in Datenbanken allgegenwärtig – denken Sie an Produktkategorien, Kundensegmente oder Transaktionstypen. In vielen Fällen ist die Anzahl der eindeutigen Werte (Kardinalität) in diesen Kategorien überschaubar. Eine Spalte für US-Bundesstaaten hat beispielsweise höchstens 50 eindeutige Werte (plus Territorien). Diese Spalten mit niedriger Kardinalität sind für Text-zu-SQL-Systeme relativ einfach zu handhaben, da die Lücke zwischen natürlichsprachlichen Abfragen und Datenbankwerten klein ist.
Die Herausforderung entsteht, wenn wir auf hochkardinale kategoriale Daten stoßen. Über 60 % der Datenbanken, mit denen wir gearbeitet haben, weisen Beispiele für diese Situation auf: Stellen Sie sich einen Produktkatalog mit Millionen eindeutiger Produkt-IDs oder eine Finanzdatenbank mit Hunderttausenden von Unternehmenskennungen vor.
Datenbanken erfordern präzise, starre Suchvorgänge für diese Kategorien, aber natürlichsprachliche Abfragen sind oft flexibel und ungenau. Ein Nutzer könnte nach „beliebten Smartphones“ oder „Tech-Unternehmen, die sich in letzter Zeit gut entwickelt haben“ fragen, doch diese vagen Begriffe in spezifische Datenbankwerte zu übersetzen, ist der Punkt, an dem traditionelle Text-zu-SQL-Ansätze versagen und eine Fülle von Daten unerreichbar bleibt.
Warum bestehende Methoden nicht funktionieren
Häufig verwenden Text-zu-SQL-Systeme eine der folgenden zwei Methoden, wenn sie natürlichsprachliche Abfragen übersetzen, die hochkardinale kategoriale Daten betreffen:
Vorverarbeitete Datenbanktechniken: Dieser Ansatz stützt sich auf Fähigkeiten traditioneller Datenbanken wie Textsuche und reguläre Ausdrücke, kombiniert mit Eingabevorverarbeitung. Obwohl er einfache Übereinstimmungen verarbeiten kann, ist er oft zu unflexibel, um die Absicht des Nutzers genau darzustellen, insbesondere bei komplexen oder nuancierten Abfragen. Die starre Natur dieser Techniken hat Schwierigkeiten, die Lücke zwischen der Variabilität natürlicher Sprache und präzisen Datenbankwerten zu überbrücken.
LLM-basierte Übersetzung: Bei dieser Methode verwendet das System ein LLM, um die korrekten kategorialen Werte auf Grundlage von Trainingsdaten oder Few-Shot-Beispielen vorherzusagen. Obwohl LLMs hervorragend darin sind, Kontext und natürliche Sprache zu verstehen, liefern sie beim Umgang mit hochkardinalen Daten häufig falsche Ergebnisse. Das liegt daran, dass dem LLM das Wissen über den vollständigen (und oft privaten) Datensatz fehlt und es Schwierigkeiten hat, Millionen eindeutiger Kennungen, die nicht Teil seiner Trainingsdaten waren, genau abzurufen.
Bei hochkardinalen Daten greifen beide Methoden zu kurz. Die vorverarbeiteten Datenbanktechniken sind zu unflexibel und wörtlich, um die Nuancen natürlichsprachlicher Abfragen effektiv zu handhaben. LLMs hingegen verstehen möglicherweise die Abfrageabsicht, können sie aber nicht zuverlässig den korrekten Werten in einem großen, spezifischen Datensatz zuordnen, auf dem sie nicht trainiert wurden. Dadurch entsteht eine erhebliche Lücke bei der Übersetzung natürlichsprachlicher Abfragen in präzises SQL für hochkardinale kategoriale Daten.
Einführung in Vektordatenbanken
Hier kommen Vektordatenbanken ins Spiel. Moderne Informationsbeschaffung verwendet Vektoreinbettungen, um semantische Suchen anstelle von Keyword-Übereinstimmungen durchzuführen. Vektordatenbanken sind darauf ausgelegt, hochdimensionale Vektorrepräsentationen von Daten zu speichern und effizient abzufragen. In unserem Kontext können wir sie nutzen, um Abfragen in natürlicher Sprache und kategoriale Daten mit hoher Kardinalität zu verbinden.
So funktioniert es:
Vektoreinbettungen erstellen: Erstellen Sie eine Vektoreinbettung für jeden eindeutigen Wert in Ihrer Spalte mit hoher Kardinalität. Diese Einbettung erfasst die semantische Bedeutung des Werts, indem sie ihn auf einen Vektor in einem hochdimensionalen Raum abbildet.
In einer VectorDB indizieren: Speichern Sie diese Einbettungen in einer Vektordatenbank wie Milvus, die für schnelle Ähnlichkeitssuchen in hochdimensionalen Räumen optimiert ist.
Abfrageverarbeitung: Wenn ein Benutzer eine Abfrage in natürlicher Sprache einreicht, verwenden Sie ein LLM, um die Absicht zu verstehen und eine vorläufige SQL-Abfrage zu generieren. Bei Spalten mit hoher Kardinalität generiert das LLM, anstatt zu versuchen, bestimmte Werte zu erzeugen, eine Beschreibung oder Merkmale der gewünschten Werte.
Vektorsuche: Verwenden Sie die Einbettung dieser Beschreibung, um eine Ähnlichkeitssuche nach der Einbettung einer enormen Menge eindeutiger Werte in der Vektordatenbank durchzuführen und die relevantesten kategorialen Werte abzurufen.
Verfeinerung: Das LLM kann diese Ergebnisse anschließend verfeinern und auf Grundlage des vollständigen Kontexts der Benutzerabfrage alle irrelevanten Treffer herausfiltern.
SQL-Generierung: Generieren Sie die endgültige SQL-Abfrage, indem Sie die verfeinerte Liste kategorialer Werte verwenden, um die entsprechenden Filter und Aggregationen zu erstellen.
Vorteile der Verwendung von Vektorsuche in Text-to-SQL
Dieser durch VectorDB erweiterte Ansatz bietet mehrere Vorteile:
Skalierbarkeit: Er kann Kategorien mit Millionen eindeutiger Werte verarbeiten, ohne dass die Leistung erheblich beeinträchtigt wird.
Genauigkeit: Durch die Kombination des semantischen Verständnisses von LLMs mit dem präzisen Recall von Vektordatenbanken können wir die Benutzerabsicht genauer in konkrete Datenbankwerte übersetzen.
Flexibilität: Diese Methode kann sich an Änderungen in der Datenbank anpassen, ohne dass das gesamte System neu trainiert werden muss.
Überlegungen zur Implementierung
Es ist natürlich möglich, die zur Implementierung des beschriebenen Ansatzes erforderlichen Abläufe von Grund auf zu erstellen, aber wir glauben, dass die Kombination von Waii und Zilliz Cloud erhebliche Vorteile bietet.
Waii ist die weltweit erste Text-to-SQL-API, die auf agentischen Workflows basiert. Sie kombiniert Compiler-Technologie mit einem automatisch generierten Knowledge Graph für die präziseste Abfragegenerierung.
Als Ergänzung zu Waiis Fähigkeiten ist Zilliz Cloud die Vektordatenbank, die KI-Workflows zugrunde liegt. Ihre Fähigkeit, zu skalieren und präzise Ergebnisse mit geringer Latenz zu liefern, macht sie zur naheliegenden Wahl im KI-Stack.
Die Kombination bietet Ihnen sofort eine skalierbare Lösung:
Waii für intelligentes Text-to-SQL
Automatische Erkennung: Waii identifiziert diese Spalten mit hoher Kardinalität automatisch und macht eine manuelle Konfiguration überflüssig.
Intelligente Einbettungsgenerierung: Es verwendet maßgeschneiderte Workflows, um Einbettungen für verschiedene Spaltentypen zu erstellen und zu aktualisieren, und optimiert dabei sowohl Genauigkeit als auch Ressourceneffizienz.
Adaptive Techniken: Waii wählt automatisch geeignete Techniken für verschiedene Spaltentypen aus und gewährleistet so optimale Leistung, ohne vom Benutzer tiefgehende Fachkenntnisse zu verlangen.
Zilliz Cloud für semantische Vektorsuche
Skalierbarkeit: Zilliz Cloud kann problemlos Milliarden von Vektoren verarbeiten und ist damit ideal für Datenszenarien mit hoher Kardinalität.
Blitzschnelle Abfragen: Die optimierte Indizierung gewährleistet schnelle Ähnlichkeitssuchen, was für die Aufrechterhaltung niedriger Latenz in Produktionsumgebungen entscheidend ist.
Security und Zugriffskontrolle: Zilliz Cloud bietet Datensicherheit auf Enterprise-Niveau und Datenschutz-Compliance durch sichere Netzwerkoptionen und Verschlüsselungsprotokolle. Dies gewährleistet die Datensicherheit sowohl während der Übertragung als auch im Ruhezustand. Darüber hinaus bietet Zilliz Cloud ausgefeilte Identitätskontrolle und Zugriffsverwaltung, einschließlich Role-Based Access Control (RBAC) und OAuth 2.0 für sichere, zentralisierte Single Sign-On (SSO)-Funktionen.
Integration von Waii und Zilliz Cloud
Nahtloser Workflow: Die Kombination aus Waiis automatischer Vorverarbeitung und Zilliz' leistungsstarkem Vektorspeicher schafft eine reibungslose End-to-End-Lösung für den Umgang mit hochkardinalen Daten in Text-to-SQL-Systemen.
Produktionsreif: Diese Kombination ist für reale, groß angelegte Herausforderungen konzipiert und eignet sich daher für Produktionsbereitstellungen in verschiedenen Branchen.
Durch die Nutzung von Waiis automatischer Erkennung und Embedding-Generierung mit Zilliz können Sie eine robuste Lösung für den Umgang mit hochkardinalen kategorialen Daten in Ihrem Text-to-SQL-System implementieren, ohne benutzerdefinierten Code für Metadatenverwaltung oder Embedding-Generierung.
Ein praktisches Beispiel
Betrachten wir eine globale Event-Management-Plattform mit Millionen von Veranstaltungen. Das Datenbankschema umfasst:
CREATE TABLE events (
event_id INT PRIMARY KEY,
event_name VARCHAR(255),
event_date DATE,
category VARCHAR(100),
total_spent DECIMAL(10, 2)
);
Die event_name ist eine hochkardinale kategoriale Spalte mit Millionen eindeutiger, beschreibender Namen wie "Global AI Ethics Summit 2024", "Sustainable Living Expo: Greening Our Future" oder "5th Annual Quantum Computing Breakthrough Conference".
Ein Analyst könnte fragen: "Wie viel Geld wurde letzten Monat für KI-Veranstaltungen ausgegeben?"
So könnten verschiedene Ansätze damit umgehen:
Traditionelles Keyword-Matching
Bei diesem Ansatz verwenden wir den vom Benutzer bereitgestellten Begriff und fügen ihn als Suchbegriff in die Abfrage ein. Wir verwenden hier eine case-insensitive Volltextsuche, aber das Generieren von Gleichheitsfiltern ist in diesem Szenario ebenfalls üblich.
SELECT SUM(total_spent)
FROM events
WHERE event_name ILIKE '%AI%'
AND event_date >=
DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1 month')
AND event_date <
DATE_TRUNC('month', CURRENT_DATE);
Problem: Dieser Ansatz übersieht Veranstaltungen wie "Machine Learning Symposium" oder "Neural Network Workshop", die KI-bezogen sind, aber "AI" nicht im Namen enthalten. Er könnte auch fälschlicherweise Veranstaltungen wie "HAIR styling convention" einschließen.
Naiver LLM-Ansatz
Bei diesem Ansatz generiert das LLM mehrere Begriffe, die für die Suche relevant sein könnten, und erstellt daraus einen Filter. Dies kann optional mit Beispielwerten aus der Spalte und mit zusätzlichem Kontext zur Datenbank erfolgen. Typischerweise würde dabei etwa Folgendes entstehen:
SELECT SUM(total_spent)
FROM events
WHERE (event_name ILIKE '%AI%'
OR event_name ILIKE '%Artificial Intelligence%'
OR event_name ILIKE '%Machine Learning%'
OR event_name ILIKE '%Neural Network%')
AND event_date >=
DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1 month')
AND event_date <
DATE_TRUNC('month', CURRENT_DATE);
Problem: Während dies mehr KI-bezogene Veranstaltungen erfasst, ist es immer noch auf eine vordefinierte Liste von Begriffen beschränkt und könnte Veranstaltungen mit spezifischeren oder neuartigen KI-bezogenen Namen übersehen. Das Problem, nicht verwandte Veranstaltungen zu finden, besteht ebenfalls weiterhin.
Vector DB + LLM-Ansatz
Das folgende Diagramm zeigt den Gesamtfluss. Die linke Seite ist die Vorverarbeitung, die auf der events-Tabelle durchgeführt wird, die rechte Seite zeigt den Ablauf der Abfragegenerierung.
Abbildung – Wie die Integration von Zilliz Cloud und Waii funktioniert
Der Ablauf der Abfragegenerierung ist:
Waii interpretiert die Abfrage und formuliert eine Beschreibung neu: „Veranstaltungen im Zusammenhang mit künstlicher Intelligenz, maschinellem Lernen, neuronalen Netzen und anderen KI-Technologien.“
Diese Beschreibung wird verwendet, um Zilliz Cloud abzufragen, wodurch eine Liste relevanter Veranstaltungs-IDs basierend auf semantischer Ähnlichkeit zurückgegeben wird.
Waii verfeinert diese Liste und filtert alle Nicht-KI-Veranstaltungen heraus, die möglicherweise versehentlich aufgenommen wurden.
Waii verwendet einen agentischen Workflow und integriert diese Veranstaltungs-IDs in die endgültige SQL-Abfrage:
SELECT SUM(total_spent)
FROM events
WHERE event_id IN (1234, 5678, 9101, 1121, 3141, 5161, 7181, 9202, 1222, 3242)
AND event_date >=
DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1 month')
AND event_date <
DATE_TRUNC('month', CURRENT_DATE);
Dieser Ansatz kann KI-bezogene Veranstaltungen genau identifizieren, selbst wenn sie spezialisierte Terminologie verwenden oder keine offensichtlichen Schlüsselwörter enthalten. Er kann Veranstaltungen wie „3rd Symposium on Generative Adversarial Networks“ oder „Workshop on Ethical Considerations in Reinforcement Learning“ erfassen, die den anderen Ansätzen möglicherweise entgehen.
Durch die Nutzung der Vektorähnlichkeitssuche können wir die Absicht des Benutzers genauer interpretieren und sie den hochkardinalen Veranstaltungsnamen in unserer Datenbank zuordnen, wodurch umfassendere und genauere Ergebnisse bereitgestellt werden.
Fazit
Da die Datenmengen weiter wachsen und die Erwartungen der Benutzer an intuitive Dateninteraktionen steigen, wird der Umgang mit hochkardinalen kategorialen Daten in Text-to-SQL-Systemen immer häufiger werden. Durch die Nutzung der Leistungsfähigkeit von Zilliz Cloud in Verbindung mit Waii können wir robustere, skalierbarere und genauere Systeme erstellen.
Wir haben mit diesem Ansatz vielversprechende Ergebnisse gesehen und sind der Meinung, dass er für andere, die vor ähnlichen Herausforderungen stehen, von Vorteil ist. Bitte kontaktieren Sie uns gerne und lassen Sie uns wissen, ob Sie diesen oder ähnliche Ansätze ausprobiert haben, und teilen Sie Ihre Erkenntnisse.
Weiterlesen

What Is a Vector Lakebase?
A Vector Lakebase is a unified, lake-native data architecture for AI that combines vector-database-grade serving with open lake storage, reusable lake-level indexes, and a shared semantic layer.

Demystifying the Milvus Sizing Tool
Explore how to use the Sizing Tool to select the optimal configuration for your Milvus deployment.

Vector Databases vs. Time Series Databases
Use a vector database for similarity search and semantic relationships; use a time series database for tracking value changes over time.




