Vektordatenbanken: Das Gedächtnis der KI
SQL verwendet eine exakte Schlüsselwortübereinstimmung. Vektordatenbanken verwenden die semantische Suche. Wie man Suchmaschinen erstellt, die verstehen, dass „Scarlet“ und „Red“ ähnlich sind.
Die Geschichte der Suche: Von SQL zu Vektoren
Um zu verstehen, warum Vektordatenbanken notwendig sind, müssen wir einen Blick auf die Geschichte des Information Retrieval werfen.
Generation 1: Exact Match (1970er Jahre) Der SQL-Operator „LIKE“. Abfrage: „SELECT * FROM products WHERE description LIKE ‚%dress%‘“. Das ist binär. Es enthält entweder die Zeichenfolge „dress“ oder nicht. Wenn der Benutzer „Kleidung“ eingibt, erhält er keine Ergebnisse. Dies zwang die Benutzer dazu, „Suchen-Sprechen“ zu lernen (das Eingeben bestimmter Schlüsselwörter, von denen sie wussten, dass sie funktionieren würden).
Generation 2: Invertierte Indizes (1990er Jahre)
Lucene, Elasticsearch, Algolia.
Diese teilen den Text in Token auf (["blue", "dress"]), entfernen Stoppwörter (“the”, “a”) und führen eine Wortstammerkennung durch ("running" -> "run").
Anschließend bewerten sie Dokumente mithilfe von TF-IDF (Term Frequency-Inverse Document Frequency) oder BM25.
Dies ermöglichte Fuzzy-Matching und Tippfehlertoleranz.
Aber es scheiterte immer noch an der Bedeutung.
„Warmmantel“ stimmt in einer Keyword-Engine nicht mit „Winterjacke“ überein, es sei denn, es wurde manuell synonymisiert.
Generation 3: Semantische Suche (2020er) Vektoren. Wir schauen nicht mehr auf Worte. Wir schauen uns Konzepte an. Das Wort „König“ ist nicht mehr eine Zeichenfolge aus 4 Zeichen („K-i-n-g“). Es ist ein Punkt in einem 1.536-dimensionalen Raum. Und wissen Sie was? Der Punkt für „Queen“ steht direkt daneben. Mithilfe der Kosinusähnlichkeit können wir Dokumente finden, die konzeptionell ähnlich sind, auch wenn sie keine Schlüsselwörter gemeinsam haben.
Warum Maison Code dies bespricht
Wir erstellen keine Suchleisten; Wir bauen Discovery Engines. Für unsere Kunden mit Katalogen von mehr als 1.000 SKUs ist die Standardsuche ein Conversion-Killer. Wir haben kürzlich eine Hybrid-Vektorsuche für eine Luxusmöbelmarke implementiert:
- Herausforderung: Benutzer suchten nach „Vibes“ („Gemütliche Ästhetik für die Leseecke“), nicht nach Schlüsselwörtern („Samtsessel“).
- Aktion: Wir haben ihren gesamten Katalog mithilfe von OpenAI Embeddings vektorisiert.
- Ergebnis: Die Absprungrate auf Suchseiten sank um 35 %. Wir glauben, dass die Suche im Jahr 2026 semantisch und nicht syntaktisch sein muss.
Einbettungen verstehen (Die Mathematik)
Wie versteht ein Computer „Bedeutung“? Es wandelt Text in Zahlen um. Dieser Prozess wird Einbettung genannt.
Stellen Sie sich ein einfaches 2D-Diagramm aller Konzepte vor.
- X-Achse: Königlichkeit (Wie königlich ist es?)
- Y-Achse: Geschlecht (männlich vs. weiblich)
Lassen Sie uns nun einige Wörter zuordnen:
- „König“: „[0,9, 0,9]“ (Sehr königlich, maskulin)
- „Königin“: „[0,9, 0,1]“ (Sehr königlich, feminin)
- „Mann“: „[0,1, 0,9]“ (nicht königlich, maskulin)
- „Frau“: „[0,1, 0,1]“ (nicht königlich, weiblich)
Hier ist die Magie. Mit diesen Wörtern können Sie rechnen. König – Mann + Frau = ?
- „[0,9, 0,9] – [0,1, 0,9] + [0,1, 0,1]“.
= [0,9, 0,1]= Königin.
So „denken“ LLMs im wahrsten Sinne des Wortes. Sie verstehen Zusammenhänge mittels Vektorarithmetik. Moderne Modelle wie „text-embedding-3-small“ von OpenAI verwenden 1.536 Dimensionen (nicht nur 2), um Nuancen wie Stimmung, Farbe, Dringlichkeit, Formalität und Hunderte anderer sprachlicher Merkmale zu erfassen, die wir nicht einmal benennen können.
Der Vector-Datenbankstapel
Sie können diese Vektoren nicht effizient in einer normalen MySQL-Datenbank speichern. Standarddatenbanken sind für die B-Tree-Indizierung (alphanumerische Sortierung) optimiert. Suchvektordatenbanken sind für die Suche nach Approximate Nearest Neighbor (ANN) optimiert. Das Scannen von 1 Million Vektoren, um den nächstgelegenen zu finden, würde Sekunden dauern (linearer Scan). Vektor-DBs verwenden HNSW-Diagramme (Hierarchical Navigable Small World), um dies in Millisekunden zu erledigen.
Top-Spieler:
- Pinecone: Verwaltet, Cloud-nativ. Der Industriestandard. Einfach zu starten.
- Weaviate: Open-Source, modular. Ermöglicht das Speichern von Objekten neben Vektoren. Gut für Selbst-Hosting.
- Milvus: Hoher Maßstab, Zilliz. Gebaut für Milliarden von Vektoren.
- pgvector: Ein Plugin für PostgreSQL. Großartig, wenn Sie alles an einem Ort aufbewahren möchten (Supabase unterstützt dies).
Vergleichsmatrix
| Funktion | Tannenzapfen | pgvector | Weben |
|---|---|---|---|
| Typ | Verwaltetes SaaS | Postgres-Erweiterung | OSS / Verwaltet |
| Latenz | Ultraniedrig | Mittel | Niedrig |
| Komplexität | Niedrig | Niedrig | Mittel |
| Kosten | €€€ | € (Kostenlos, wenn selbst gehostet) | €€ |
| Metadatenfilterung | Ausgezeichnet | Gut (SQL) | Ausgezeichnet |
Implementierung: Aufbau einer semantischen Suchmaschine
So erstellen Sie „Suche nach Bedeutung“ mit Node.js und Pinecone.
„Typoskript import { Pinecone } aus ‘@pinecone-database/pinecone’; OpenAI aus „openai“ importieren;
// Clients initialisieren const Pinecone = new Pinecone({ apiKey: process.env.PINECONE_KEY }); const openai = new OpenAI({ apiKey: process.env.OPENAI_KEY });
const index = Pinecone.index(‘maison-products’);
asynchrone Funktion searchProducts(userQuery: string) {
console.log(Suche nach: €{userQuery});
// 1. Benutzerabfrage in Vektor konvertieren const Embedding = Warten auf openai.embeddings.create({ Modell: „text-embedding-3-small“, Eingabe: userQuery, }); const vector = embedding.data[0].embedding;
// 2. Vector DB nach nächsten Nachbarn abfragen const results = waiting index.query({ Vektor: Vektor, topK: 5, // Top-5-Matches abrufen includeMetadata: true, // Optional: Nach Kategorie filtern Filter: { Preis: { €lt: 200 } // Nur günstige Artikel } });
// 3. Ergebnisse anzeigen
results.matches.forEach(match => {
console.log(Gefunden: €{match.metadata.title} (Ergebnis: €{match.score}));
});
}
// Nutzung searchProducts(“Etwas Elegantes für eine Sommerhochzeit unter 200 €”); „
Was passiert:
- OpenAI verwandelt „Etwas Elegantes…“ in einen Vektor.
- Pinecone berechnet den Abstand zwischen diesem Vektor und jedem Produkt in Ihrem Katalog.
- Es werden „Seidenblumenkleid“ und „Leinenanzug“ gefunden.
- Auch wenn das Wort „Hochzeit“ nie in der Produktbeschreibung vorkommt! Das Einbettungsmodell weiß, dass „Seide“ und „Leinen“ mit „Sommerhochzeiten“ verbunden sind.
Die Herausforderung: Hybridsuche
Die Vektorsuche ist magisch, aber nicht perfekt. Manchmal halluziniert es oder übersieht offensichtliche Keyword-Übereinstimmungen.
- Abfrage: „Produkt-ID 1234“.
- Vektorsuche: Könnte „Produkt-ID 1235“ zurückgeben, da die Zahlen im Vektorraum mathematisch nahe beieinander liegen. Es behandelt die ID als eindeutige Merkmale.
- Benutzer: „Ich habe die genaue ID eingegeben. Warum hast du mir die falsche gegeben?“
Lösung: Hybridsuche. Sie kombinieren die Schlüsselwortsuche (BM25) mit der Vektorsuche (Dense).
- Keyword-Score: 1,0 (Genaue Übereinstimmung)
- Vektor-Score: 0,2 (Geringe Übereinstimmung)
- Gewichtete Summe: Die Keyword-Übereinstimmung gewinnt.
Pinecone und Weaviate unterstützen jetzt standardmäßig die Hybridsuche („Sparse-Dense“-Vektoren). Sie übergeben sowohl den dichten Vektor (Einbettung) als auch den dünn besetzten Vektor (Schlüsselwörter) an die Abfrage. Dies ist der Goldstandard für die E-Commerce-Suche.
RAG: Retrieval Augmented Generation
Vektordatenbanken sind auch das Rückgrat von Enterprise AI (RAG). (Siehe LLM Fine-Tuning). Wenn Sie ChatGPT eine Frage zu Ihren Dokumenten stellen, wird hinter den Kulissen ausschließlich eine Vektorsuche durchgeführt, um vor der Beantwortung die „Seitenzahl“ zu finden. Ohne Vector DBs ist Enterprise AI nicht möglich. Sie können nicht 10.000 Seiten in eine Eingabeaufforderung einspeisen. Sie füttern die 3 relevantesten Seiten. Die Vektorsuche findet diese drei Seiten.
Die Ansicht des Skeptikers: Wann man Vektoren NICHT verwenden sollte
Vektoren sind derzeit ein Hype, aber sie sind teuer und komplex. Verwenden Sie die Vektorsuche NICHT, wenn:
- Sie haben < 100 Elemente: Verwenden Sie einfach „Array.filter()“.
- Ihre Benutzer suchen nach exakter SKU: Die Vektorsuche ist bei genauen Codes schrecklich.
- Ihr Budget beträgt 0 €: Einbettungen kosten Geld (OpenAI API). Vektor-DBs kosten Geld. Algolia ist oft günstiger und „gut genug“.
FAQ
F: Kann ich Vektoren für die Bildsuche verwenden? A: Ja! Modelle wie CLIP (Contrastive Language-Image Pre-Training) können Bilder in denselben Vektorraum wie Text einbetten. Sie können nach „Hund“ suchen und ein Bild eines Hundes finden.
F: Wie oft sollte ich den Index aktualisieren? A: Echtzeit. Wenn ein Produkt nicht mehr vorrätig ist, sollten Sie die Metadaten in Pinecone sofort aktualisieren, damit die Suche keine OOS-Artikel zurückgibt.
10. Quantisierung: Kosten senken
Vektoren sind schwer (Float32). 1 Million Vektoren * 1536 Dimmungen * 4 Bytes = 6 GB RAM. Das ist teuer. Quantisierung komprimiert Vektoren auf Int8 oder Binär. Wir verlieren etwas an Präzision (GENAUIGKEIT sinkt um 1 %), aber die Größe sinkt um das 4- bis 32-fache. Für einen Katalog mit 100 Millionen Produkten ist die Quantisierung obligatorisch. Pinecone erledigt dies automatisch.
11. Neue Rangfolge: Der zweite Durchgang
Die Vektorsuche findet „konzeptionell ähnliche“ Elemente. Aber es kennt keine „Geschäftsregeln“. Möglicherweise wird ein Artikel „Nicht vorrätig“ zurückgegeben, da er semantisch perfekt übereinstimmt. Wir verwenden einen Re-Ranker (Cross-Encoder-Modell wie Cohere).
- Abrufen: Holen Sie sich die 100 besten Kandidaten von Vector DB (schnell).
- Neues Ranking: Führen Sie sie durch ein umfangreiches Modell, das den Bestandsstatus, die Marge und die genaue Keyword-Überschneidung überprüft.
- Rückgabe: Top 10 an den Benutzer. Dieses „Zwei-Stufen-Retrieval“ bietet die beste Balance zwischen Geschwindigkeit und Genauigkeit.
13. Unter der Haube: Der HNSW-Algorithmus
Wie durchsucht Pinecone 1 Milliarde Vektoren in 10 ms? Es verwendet Hierarchical Navigable Small World-Diagramme. Stellen Sie sich eine mehrschichtige Karte vor.
- Oberste Schicht: Hochgeschwindigkeitsautobahnen, die entfernte Städte verbinden.
- Untere Ebene: Lokale Straßen. Die Abfrage beginnt oben, zoomt auf die allgemeine Umgebung des Vektors und geht dann nach unten zu den Straßen, um das genaue Haus zu finden. Das ist €O(log(N))€ Komplexität. Ein linearer Scan ist €O(N)€. Dies ist der Durchbruch in der Informatik, der die Vektorsuche in der Produktion nutzbar gemacht hat.
14. Die Kosten für Einbettungen
Vektoren entstehen nicht aus dem Nichts. Sie bezahlen OpenAI, um sie zu generieren. Der Preis ist günstig: 0,00013 € / 1.000 Token. Das Einbetten der gesamten Harry-Potter-Reihe (1 Mio. Token) kostet 0,13 €. Bei einer Website mit benutzergenerierten Inhalten (Millionen Kommentare pro Tag) summiert sich dies jedoch. Optimierung: Verwenden Sie Open-Source-Modelle (Hugging Face), die auf Ihrer eigenen GPU/CPU (ONNX Runtime) laufen, um kostenlos Einbettungen zu generieren. Die Qualität beträgt 95 % von OpenAI, die Kosten betragen 0.
15. Fazit
Wenn Ihre Website-Suche „Keine Ergebnisse gefunden“ zurückgibt, lassen Sie Geld auf dem Tisch. Benutzer kennen Ihre genaue Terminologie nicht. Sie sprechen mit Absicht („warmer Mantel“, „billiges Geschenk“, „etwas für Papa“). Vector Search schließt die Lücke zwischen menschlicher Absicht und Datenbankinventar. Es handelt sich um die Weiterentwicklung von „Data Retrieval“ zu „Knowledge Retrieval“.
Keine Ergebnisse gefunden?
Wir implementieren Hybrid Vector Search-Ökosysteme, um sicherzustellen, dass Ihre Kunden immer das finden, was sie brauchen.