Cloud Spanner-Vektorsuche – Übersicht

Auf dieser Seite wird die Vektorsuche und ihre Funktionsweise in Spanner beschrieben.

Die Vektorsuche ist eine leistungsstarke, integrierte Funktion, die semantische Suche und Ähnlichkeitsabgleich für hochdimensionale Vektordaten ermöglicht. Durch das Speichern und Indexieren von Vektoreinbettungen direkt in Ihrer transaktionalen Datenbank macht Spanner separate Vektordatenbanken und komplexe ETL-Pipelines überflüssig.

Wichtige Konzepte

In diesem Abschnitt werden die folgenden wichtigen Konzepte der Vektorsuche vorgestellt:

  • Vektoreinbettungen
  • Suchmethoden (KNN und ANN)
  • Distanzfunktionen

Vektoreinbettungen

Vektoreinbettungen sind hochdimensionale numerische Darstellungen unstrukturierter Daten. Sie werden aus den unstrukturierten Daten mithilfe von Modellen für maschinelles Lernen generiert. Sie können beispielsweise die Text-Einbettungs-API der Gemini Enterprise Agent Platform verwenden, um Texteinbettungen für in Spanner gespeicherte Daten zu generieren, zu speichern und zu aktualisieren.

Suchmethoden

Spanner unterstützt zwei Methoden zum Suchen ähnlicher Vektoren:

  • K-Nearest Neighbors (KNN): Führt eine exakte Suche durch, indem die Distanz zwischen der Anfrage und jedem Vektor im Dataset berechnet wird. Sie bietet einen genaueren Recall, ist aber für umfangreiche Datasets rechenintensiv.

  • Approximate Nearest Neighbor (ANN): Diese Methode verwendet einen Vektorindex (basierend auf dem ScaNN-Algorithmus von Google), um schnell Übereinstimmungen in einer großen Anzahl von Vektoren zu finden. Dabei wird ein geringer Verlust an Genauigkeit (Recall) in Kauf genommen, um die Geschwindigkeit und Skalierbarkeit zu verbessern.

Hauptmerkmale

  • Skalierbarkeit: Unterstützt Milliarden von Vektoren für die nicht partitionierte ANN-Suche oder Billionen von Vektoren für partitionierte KNN-Arbeitslasten.

  • Einheitliche KI-Datenbank und ‑Engine: Mit der Funktion GoogleSQL ML.PREDICT oder PostgreSQL spanner.ML_PREDICT_ROW können Sie direkt in Ihrem Abfragefluss Einbettungen aus Agent Platform-Modellen generieren.

  • Inline-Filterung: Kombinieren Sie die Vektorsuche effizient mit Filtern für strukturierte Metadaten (z. B. „Ähnliche Bilder finden, bei denen category = ‚shoes‘ und price < 100“), ohne die Leistung zu beeinträchtigen.

  • LangChain-Integration: Die integrierte Unterstützung für LangChain ermöglicht es Ihnen, RAG-Anwendungen (Retrieval-Augmented Generation) zu erstellen, bei denen Spanner als Vektorspeicher verwendet wird.

Funktionen für die Hybridsuche

Die Vektorsuche ist am leistungsstärksten, wenn sie mit den anderen Datenfunktionen von Spanner kombiniert wird:

Kombination Vorteil
Vektorsuche mit SQL-Filterung Vektorsuche effizient mit Filtern kombinieren (z. B. „Ähnliche Bilder finden, bei denen category = ‚shoes‘ und price < 100“).
Vektorsuche + Volltextsuche Kombinieren Sie semantische Ähnlichkeit mit der Präzision von Keywords mithilfe von Reciprocal Rank Fusion (RRF), um eine höhere Suchrelevanz zu erzielen.
Vektor + Graph Mit der Vektorsuche können Sie relevante Einstiegspunkte (Knoten) in einem Property Graph finden und dann komplexe Beziehungen durchlaufen.

Nächste Schritte