Einführung in Einbettungen und Vektorsuche
Dieses Dokument bietet einen Überblick über Einbettungen und die Vektorsuche in BigQuery. Die Vektorsuche ist eine Technik zum Vergleichen ähnlicher Objekte mithilfe von Einbettungen. Sie wird in Google-Produkten wie der Google Suche, YouTube und Google Play eingesetzt. Mit der Vektorsuche können Sie semantische Suchen im großen Maßstab durchführen. Alternativ können Sie eine hybride Suche durchführen, bei der eine semantische Suche mit einer lexikalischen (Keyword-)Suche kombiniert wird. Wenn Sie Vektorindizes mit der Vektorsuche verwenden, können Sie grundlegende Technologien wie IVF (Inverted File Indexing) und den ScaNN-Algorithmus nutzen.
Die Vektorsuche basiert auf Einbettungen. Einbettungen sind hochdimensionale numerische Vektoren, die eine bestimmte Entität darstellen, z. B. einen Text oder eine Audiodatei. Modelle für maschinelles Lernen (ML) verwenden Einbettungen, um semantische Informationen zu solchen Entitäten zu codieren und so die Analyse und den Vergleich zu erleichtern. Eine gängige Operation in Clustering-, Klassifizierungs- und Empfehlungsmodellen besteht beispielsweise darin, den Abstand zwischen Vektoren in einem Einbettungsbereich zu messen, um Elemente zu finden, die semantisch am ähnlichsten sind.
Dieses Konzept der semantischen Ähnlichkeit und Distanz in einem Einbettungsraum wird visuell veranschaulicht, wenn Sie sich ansehen, wie verschiedene Elemente dargestellt werden. Beispielsweise werden Begriffe wie Katze, Hund und Löwe, die alle Arten von Tieren darstellen, aufgrund ihrer gemeinsamen semantischen Merkmale in diesem Bereich nahe beieinander gruppiert. Ähnlich würden Begriffe wie Auto, LKW und der allgemeinere Begriff Fahrzeug einen weiteren Cluster bilden. Dies wird in der folgenden Abbildung veranschaulicht:
Sie sehen, dass die Tier- und Fahrzeugcluster weit voneinander entfernt sind. Die Trennung zwischen den Gruppen veranschaulicht das Prinzip, dass Objekte, die sich im Einbettungsbereich näher beieinander befinden, semantisch ähnlicher sind. Größere Entfernungen deuten auf eine größere semantische Unähnlichkeit hin.
Anwendungsfälle
Die Kombination aus Einbettungsgenerierung und Vektorsuche ermöglicht viele interessante Anwendungsfälle. Hier einige mögliche Anwendungsfälle:
- Retrieval-Augmented Generation (RAG):Dokumente parsen, eine Vektorsuche für Inhalte durchführen und zusammengefasste Antworten auf Fragen in natürlicher Sprache mit Gemini-Modellen generieren – alles in BigQuery. Ein Notebook, das dieses Szenario veranschaulicht, finden Sie unter Vektorsuchanwendung mit BigQuery DataFrames erstellen.
- Produktalternativen oder passende Produkte empfehlen:E-Commerce-Anwendungen verbessern, indem Produktalternativen basierend auf dem Kundenverhalten und der Produktähnlichkeit vorgeschlagen werden.
- Log-Analyse:Teams können Anomalien in Logs proaktiv priorisieren und Untersuchungen beschleunigen. Sie können diese Funktion auch verwenden, um den Kontext für LLMs anzureichern und so die Workflows für Bedrohungserkennung, Forensik und Fehlerbehebung zu verbessern. Ein Notebook, das dieses Szenario veranschaulicht, finden Sie unter Log Anomaly Detection & Investigation with Text Embeddings + BigQuery Vector Search.
- Clustering und Targeting:Zielgruppen präzise segmentieren. So könnte eine Krankenhauskette Patienten anhand von Notizen in natürlicher Sprache und strukturierten Daten gruppieren oder ein Marketer Anzeigen basierend auf der Suchanfrage ausrichten. Ein Notebook, das dieses Szenario veranschaulicht, finden Sie unter Create-Campaign-Customer-Segmentation.
- Entitätsauflösung und Deduplizierung:Daten bereinigen und konsolidieren. So könnte beispielsweise ein Werbeunternehmen Datensätze mit personenbezogenen Daten deduplizieren oder ein Immobilienunternehmen übereinstimmende Postadressen ermitteln.
Einbettungen generieren
In den folgenden Abschnitten werden die Funktionen beschrieben, die BigQuery bietet, um Einbettungen zu generieren oder damit zu arbeiten.
Einzelne Einbettungen generieren
Mit der Funktion AI.EMBED können Sie Einbettungsmodelle der Gemini Enterprise Agent Platform verwenden, um eine einzelne Einbettung Ihrer Eingabe zu generieren.
Die Funktion AI.EMBED unterstützt die folgenden Eingabetypen:
- Textdaten.
- Bilddaten, die durch
ObjectRef-Werte dargestellt werden.
Tabelle mit Einbettungen erstellen
Mit AI.GENERATE_EMBEDDING können Sie eine Tabelle mit Einbettungen für alle Daten in einer Spalte Ihrer Eingabetabelle erstellen. Bei allen Arten von unterstützten Modellen funktioniert AI.GENERATE_EMBEDDING mit strukturierten Daten in Standardtabellen. Bei multimodalen Einbettungsmodellen funktioniert AI.GENERATE_EMBEDDING auch mit visuellen Inhalten aus entweder Standardtabellenspalten, die ObjectRef-Werte enthalten, oder aus Objekttabellen.
Bei Remote-Modellen erfolgt die gesamte Inferenz in der Agent Platform. Bei anderen Modelltypen erfolgt die gesamte Inferenz in BigQuery. Die Ergebnisse werden in BigQuery gespeichert.
In den folgenden Themen erfahren Sie, wie Sie die Generierung von Einbettungen in BigQuery ML ausprobieren können:
- Mit der Funktion
AI.GENERATE_EMBEDDINGkönnen Sie Text, Bilder oder Videos generieren. - Multimodale Einbettungen generieren und suchen
- Semantische Suche und Retrieval Augmented Generation durchführen
Autonome Generierung von Einbettungen
Mit der autonomen Generierung von Einbettungen können Sie das Erstellen, Verwalten und Abfragen von Einbettungen vereinfachen. In BigQuery wird eine Spalte mit Einbettungen in Ihrer Tabelle auf Grundlage einer Quellspalte verwaltet. Wenn Sie Daten in der Quellspalte hinzufügen oder ändern, generiert oder aktualisiert BigQuery die Einbettungsspalte für diese Daten automatisch mithilfe eines Agent Platform-Einbettungsmodells. Das ist hilfreich, wenn Sie möchten, dass BigQuery Ihre Einbettungen verwaltet, wenn Ihre Quelldaten regelmäßig aktualisiert werden.
Suchen
Sie können die folgenden Suchfunktionen verwenden, um eine semantische Vektorsuche oder eine Hybridsuche durchzuführen, bei der eine semantische Suche mit einer lexikalischen Stichwortsuche kombiniert wird:
VECTOR_SEARCH: Semantische Vektorsuche oder Hybridsuche mit SQL durchführen.AI.SEARCH(Vorabversion): Führen Sie eine semantische oder hybride Suche nach Ergebnissen durch, die einem von Ihnen angegebenen String ähneln. Sie können diese Funktion verwenden, wenn in Ihrer Tabelle die autonome Einbettungsgenerierung aktiviert ist.AI.SIMILARITY: Vergleicht zwei Eingaben, indem die Kosinusähnlichkeit zwischen ihren Einbettungen berechnet wird. Diese Funktion eignet sich gut, wenn Sie nur wenige Vergleiche durchführen möchten und keine Einbettungen vorab berechnet haben. Sie solltenVECTOR_SEARCHverwenden, wenn die Leistung entscheidend ist und Sie mit einer großen Anzahl von Einbettungen arbeiten. Vergleichen Sie die Funktionen, um die beste Funktion für Ihren Anwendungsfall auszuwählen.
Optional können Sie mit der CREATE VECTOR INDEX-Anweisung einen Vektorindex erstellen.
Bei Verwendung eines Vektorindex nutzen die Funktionen VECTOR_SEARCH und AI.SEARCH die Suchmethode Annäherung an den nächsten Nachbarn, um die Leistung der Vektorsuche zu verbessern, mit dem Kompromiss: Reduzierung der Trefferquote und damit die Rückgabe von ungefähren Ergebnissen. Ohne Vektorindex verwenden diese Funktionen die Brute-Force-Suche, um die Distanz für jeden Datensatz zu messen. Sie können auch Brute Force verwenden, um genaue Ergebnisse zu erhalten, auch wenn ein Vektorindex verfügbar ist.
Preise
Für die Funktionen VECTOR_SEARCH und AI.SEARCH sowie die CREATE VECTOR INDEX-Anweisung gelten die Preise für BigQuery-Computing.
VECTOR_SEARCH- undAI.SEARCH-Funktionen: Die Ähnlichkeitssuche wird Ihnen gemäß On-Demand-Preisen oder Editions-Preisen in Rechnung gestellt.- On-Demand: Die Kosten richten sich nach der Anzahl der gescannten Byte in der Basistabelle, im Index und in der Suchanfrage.
Preise für Versionen: Ihnen werden die Slots in Rechnung gestellt, die für die Ausführung des Jobs in Ihrer Reservierungsversion erforderlich sind. Für größere, komplexere Ähnlichkeitsberechnungen fallen höhere Gebühren an.
CREATE VECTOR INDEX-Erklärung: Die für den Aufbau und die Aktualisierung Ihrer Vektorindizes erforderliche Verarbeitung ist kostenlos, solange die Gesamtgröße der indexierten Tabellendaten unter dem Limit pro Organisation liegt. Wenn Sie die Indexierung über dieses Limit hinaus unterstützen möchten, müssen Sie Ihre eigene Reservierung für die Verarbeitung der Indexverwaltungsjobs bereitstellen.
Auch für Einbettungen und Indexe ist Speicherplatz erforderlich. Die Anzahl der als Einbettungen und Indexe gespeicherten Byte unterliegt den Kosten für aktiven Speicher.
- Für aktive Vektorindexe fallen Speicherkosten an.
- Die Indexspeichergröße finden Sie in der Ansicht
INFORMATION_SCHEMA.VECTOR_INDEXES. Wenn der Vektorindex noch nicht zu 100% abgedeckt ist, wird Ihnen trotzdem alles in Rechnung gestellt, was indexiert wurde. Sie können die Indexabdeckung in der AnsichtINFORMATION_SCHEMA.VECTOR_INDEXESprüfen.
Kontingente und Limits
Weitere Informationen finden Sie unter Limits für Vektorindex und Limits für KI-Funktionen für generative KI.
Beschränkungen
Abfragen, die die Funktion VECTOR_SEARCH oder AI.SEARCH enthalten, werden von BigQuery BI Engine nicht beschleunigt.
Nächste Schritte
- Weitere Informationen zum Erstellen eines Vektorindex und zur Verwendung von Vektorindizes mit der Hybridsuche
- Informationen zum Ausführen einer semantischen oder hybriden Suche mit der Funktion
VECTOR_SEARCH - Informationen zum Ausführen semantischer oder hybrider Suchvorgänge mit der Funktion
AI.SEARCH - Weitere Informationen
- Im Tutorial: Nach Einbettungen mit Vektorsuche suchen erfahren Sie, wie Sie einen Vektorindex erstellen und dann eine Vektorsuche nach Einbettungen mit und ohne Index durchführen.
In der Anleitung Semantische Suche ausführen und Retrieval Augmented Generation erfahren Sie, wie Sie die folgenden Aufgaben ausführen:
- Texteinbettungen generieren
- Erstellen Sie einen Vektorindex für die Einbettungen.
- Mit den Einbettungen eine Vektorsuche durchführen, um nach ähnlichem Text zu suchen
- Führen Sie RAG (Retrieval Augmented Generation) durch, indem Sie Vektorsuchergebnisse verwenden, um die Prompt-Eingabe zu erweitern und die Ergebnisse zu verbessern.
Im Tutorial zum Parsen von PDFs in einer RAG-Pipeline (Retrieval-Augmented Generation) erfahren Sie, wie Sie eine RAG-Pipeline auf Grundlage von geparsten PDF-Inhalten erstellen.
Sie können Vektorsuchen auch mit BigQuery DataFrames in Python ausführen. Ein Notebook, das diesen Ansatz veranschaulicht, finden Sie unter Build a Vector Search application using BigQuery DataFrames.