Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Databricks AI Search (früher Databricks Vector Search) ist eine Suchlösung, die in die Databricks Data Intelligence Platform integriert ist und in seine Governance- und Produktivitätstools integriert ist. Es ermöglicht das Abrufen von KI-Anwendungen wie RAG-Systemen, Empfehlungssystemen und Bild- und Videoerkennung, indem die Einbettungen gefunden werden, die einer Abfrage am ähnlichsten sind.
Die Vektorsuche ist eine Suchart, die für das Abrufen von Einbettungen optimiert ist. Einbettungen sind mathematische Darstellungen des semantischen Inhalts von Daten, in der Regel Text- oder Bilddaten. Einbettungen werden durch ein großes Sprachmodell generiert und sind eine wichtige Komponente vieler KI-Anwendungen, die von der Suche nach Dokumenten oder Bildern abhängig sind, die einander ähneln.
Mit databricks AI Search erstellen Sie einen KI-Suchindex aus einer Delta-Tabelle. Der Index enthält eingebettete Daten mit Metadaten. Anschließend können Sie den Index mithilfe einer REST-API abfragen, um die ähnlichsten Vektoren zu identifizieren und die zugehörigen Dokumente zurückzugeben. Sie können den Index so strukturieren, dass er automatisch synchronisiert wird, wenn die zugrunde liegende Delta-Tabelle aktualisiert wird.
KI-Suche unterstützt Folgendes:
- Hybride Stichwort-Ähnlichkeitssuche.
- Volltext-Schlüsselwortsuche (Beta) auf jedem Endpunkt oder dedizierte Volltextindizes (Beta) auf speicheroptimierten Endpunkten.
- Filtern.
- Neuanordnung nach Rang.
- Zugriffssteuerungslisten (ACCESS Control Lists, ACLs) zum Verwalten von AI-Suchendpunkten.
- Nur ausgewählte Spalten synchronisieren.
- Speichern und synchronisieren Sie generierte Einbettungen.
Wie funktioniert DIE KI-Suche?
Die KI-Suche verwendet den Hierarchical Navigable Small World (HNSW)-Algorithmus für Suchen nach ungefähren nächsten Nachbarn (ANN) und die L2-Distanzmetrik, um die Ähnlichkeit von Einbettungsvektoren zu messen. Wenn Sie kosinusgleichheit verwenden möchten, müssen Sie Ihre Datenpunkteinbettungen normalisieren, bevor Sie sie in den Vektorsuchalgorithmus einbetten. Wenn die Datenpunkte normalisiert werden, entspricht die von L2-Entfernung erzeugte Rangfolge der Von Kosinusgleichheit erzeugten Rangfolge.
KI Search unterstützt auch die Suchfunktion für hybride Schlüsselwort-Ähnlichkeiten, die die vektorbasierte Einbettungssuche mit herkömmlichen schlüsselwortbasierten Suchtechniken kombiniert. Dieser Ansatz entspricht exakten Wörtern in der Abfrage und verwendet gleichzeitig eine vektorbasierte Ähnlichkeitssuche, um die semantischen Beziehungen und den Kontext der Abfrage zu erfassen.
Durch die Integration dieser beiden Techniken ruft die Hybrid-Stichwort-Ähnlichkeitssuche Dokumente ab, die nicht nur die genauen Schlüsselwörter enthalten, sondern auch solche, die konzeptionell ähnlich sind und umfassendere und relevante Suchergebnisse bereitstellen. Diese Methode ist besonders bei RAG-Anwendungen nützlich, bei denen Quelldaten eindeutige Schlüsselwörter wie SKUs oder Bezeichner aufweisen, die nicht gut für die reine Ähnlichkeitssuche geeignet sind.
Ausführliche Informationen zur API finden Sie in der Python SDK-Referenz und abfrage eines AI Search-Indexes.
Berechnung der Ähnlichkeitssuche
Die Berechnung der Ähnlichkeitssuche verwendet die folgende Formel:
wobei dist der euklidische Abstand zwischen der Abfrage q und dem Indexeintrag x ist:
Stichwortsuchalgorithmus
Relevanzbewertungen werden mit Okapi BM25 berechnet. Alle Text- oder Zeichenfolgenspalten werden durchsucht, einschließlich der Quelltexteinbettung und Metadatenspalten im Text- oder Zeichenfolgenformat. Die Tokenisierungsfunktion teilt sich an Wortgrenzen, entfernt Interpunktion und konvertiert den gesamten Text in Kleinbuchstaben.
Wie Ähnlichkeitssuche und Stichwortsuche kombiniert werden
Die Ähnlichkeitssuche und die Schlüsselwortsuchergebnisse werden mithilfe der Funktion Reciprocal Rank Fusion (RRF) kombiniert.
RRF bewertet zuerst jedes Dokument von jeder Methode neu, unter Anwendung folgender Bewertungen:
rrf_param steuert die relative Wichtigkeit höher bewerteter und niedriger bewerteter Dokumente. Basierend auf der Literatur ist rrf_param auf 60 festgelegt.
Bewertungen werden normalisiert, sodass der höchste mögliche Wert 1 mit dem folgenden Normalisierungsfaktor ist:
Die Endbewertung für jedes Dokument wird wie folgt berechnet:
Die Dokumente mit den höchsten Endergebnissen werden zurückgegeben.
Optionen zum Bereitstellen von Vektoreinbettungen
Um einen KI-Suchindex in Databricks zu erstellen, müssen Sie zuerst entscheiden, wie Vektoreinbettungen bereitgestellt werden sollen. Databricks unterstützt drei Optionen.
Option 1: Delta-Synchronisierungsindex mit von Databricks berechneten Einbettungen
Mit dieser Option stellen Sie eine Delta-Quelltabelle bereit, die Daten im Textformat enthält. Databricks berechnet die Einbettungen mithilfe eines von Ihnen angegebenen Modells und speichert optional die Einbettungen in einer Tabelle im Unity-Katalog. Wenn die Delta-Tabelle aktualisiert wird, bleibt der Index mit der Delta-Tabelle synchronisiert.
Das folgende Diagramm veranschaulicht diesen Prozess:
- Berechnen Sie Abfrageeinbettungen. Abfrage kann Metadatenfilter enthalten.
- Durchführen der Ähnlichkeitssuche zur Identifizierung der relevantesten Dokumente.
- Geben Sie die relevantesten Dokumente zurück und fügen Sie sie zur Abfrage hinzu.
Option 2: Delta-Sync-Index mit selbstverwalteten Einbettungen
Mit dieser Option stellen Sie eine Delta-Quelltabelle bereit, die vorab berechnete Einbettungen enthält. Wenn die Delta-Tabelle aktualisiert wird, bleibt der Index mit der Delta-Tabelle synchronisiert.
Note
Es ist nicht möglich, einen selbstverwalteten Einbettungsindex in einen von Databricks verwalteten Index zu konvertieren. Wenn Sie später verwaltete Einbettungen verwenden möchten, müssen Sie einen neuen Index erstellen und die Einbettungen neu berechnen.
Das folgende Diagramm veranschaulicht diesen Prozess:
- Abfrage besteht aus Einbettungen und kann Metadatenfilter enthalten.
- Durchführen der Ähnlichkeitssuche zur Identifizierung der relevantesten Dokumente. Geben Sie die relevantesten Dokumente zurück und fügen Sie sie zur Abfrage hinzu.
Option 3: Direkter Vektorzugriff-Index
Mit dieser Option müssen Sie den Index mithilfe der REST-API manuell aktualisieren, wenn sich die Einbettungstabelle ändert.
Das folgende Diagramm veranschaulicht diesen Prozess:
Option 4: Volltext-Suchindex auf speicheroptimierten Endpunkten (Beta)
Mit dieser Option erstellen Sie einen Delta-Synchronisierungsindex auf einem speicheroptimierten Endpunkt ohne Einbettung von Spalten. Der Index unterstützt die schlüsselwortbasierte Volltextsuche mithilfe der BM25-Bewertung, ohne dass Vektoreinbettungen erforderlich sind. Dies ist nützlich, um genaue Begriffe, Bezeichner oder Schlüsselwörter in Textdaten zu durchsuchen.
Note
Sie können query_type="FULL_TEXT" auch verwenden, um Schlüsselwortsuchen in vorhandenen AI Search-Indizes auf Standard- und speicheroptimierten Endpunkten durchzuführen. Diese Option dient zum Erstellen eines dedizierten Indexes, der überhaupt keine Einbettungen enthält.
Dedizierte Volltext-Suchindizes sind nur für speicheroptimierte Endpunkte verfügbar und erfordern den ausgelösten Synchronisierungsmodus. Anweisungen finden Sie unter Erstellen eines Volltextsuchindex (Beta).
Endpunktoptionen
AI Search bietet die folgenden Optionen, damit Sie die Endpunktkonfiguration auswählen können, die den Anforderungen Ihrer Anwendung entspricht.
Note
High QPS ist nur für Standardendpunkte verfügbar.
-
Standardendpunkte verfügen über eine Kapazität von 320 Millionen Vektoren in Dimension 768.
- Mit Standardendpunkten können Sie hohe QPS verwenden, um hohen dauerhaften Durchsatz zu unterstützen. Siehe Skalieren des Durchsatzes des AI Search-Endpunkts mit hohem QPS.
- Speicheroptimierte Endpunkte verfügen über eine größere Kapazität (über eine Milliarde Vektoren in Dimension 768) und bieten 10-20x schnellere Indizierung. Abfragen auf speicheroptimierten Endpunkten haben eine etwas erhöhte Latenz von ca. 250 msec. Die Preise für diese Option sind für die größere Anzahl von Vektoren optimiert. Details zu den Preisen finden Sie auf der Seite "AI Search-Preise". Informationen zum Verwalten von KI-Suchkosten finden Sie im Leitfaden zur AI Search-Kostenverwaltung.
Sie geben den Endpunkttyp an, wenn Sie den Endpunkt erstellen.
Siehe auch Einschränkungen für speicheroptimierte Endpunkte.
Einrichten der KI-Suche
Um KI-Suche zu verwenden, müssen Sie Folgendes erstellen:
Ein AI Search-Endpunkt. Dieser Endpunkt dient dem AI-Suchindex. Sie können den Endpunkt mithilfe der REST-API oder des SDK abfragen und aktualisieren. Anweisungen finden Sie unter Erstellen eines KI-Suchendpunkts .
Endpunkte skalieren automatisch, um sowohl die Größe des Indexes als auch die Anzahl paralleler Anfragen zu bewältigen. Endpunkte werden automatisch nach unten skaliert, wenn ein Index gelöscht wird.
Ein AI-Suchindex. Der AI Search-Index wird aus einer Delta-Tabelle erstellt und ist für Suchen nach annähernden nächsten Nachbarn (ANN) in Echtzeit optimiert. Ziel der Suche ist es, Dokumente zu identifizieren, die der Abfrage ähneln. KI-Suchindizes werden im Unity-Katalog angezeigt und unterliegen diesen. Anweisungen finden Sie unter Erstellen eines AI-Suchindex .
Wenn Sie darüber hinaus von Databricks die Einbettungen berechnen lassen möchten, können Sie einen vordefinierten Foundation Model-APIs-Endpunkt verwenden oder einen Modell-Serving-Endpunkt erstellen, um das Einbettungsmodell Ihrer Wahl bereitzustellen. Anweisungen hierzu finden Sie unter Foundation Model-APIs mit tokenbasierter Bezahlung oder Erstellen von Foundation Model-Bereitstellungsendpunkten.
Um den Endpunkt des Modells abzufragen, verwenden Sie entweder die REST-API oder das Python SDK. Ihre Abfrage kann Filter basierend auf einer beliebigen Spalte in der Delta-Tabelle definieren. Ausführliche Informationen finden Sie unter Verwenden von Filtern für Abfragen, in der API-Referenz oder der Python SDK-Referenz.
Requirements
- Arbeitsbereich mit Unity Catalog-Unterstützung.
- Serverloses Rechnen aktiviert Anleitungen finden Sie unter Verbinden mit serverlosem Computing.
- Für Standardendpunkte muss die Quelltabelle "Datenfeed ändern" aktiviert sein. Weitere Informationen finden Sie unter Verwenden des Änderungsdatenfeeds auf Azure Databricks.
- Um einen AI-Suchindex zu erstellen, müssen CREATE TABLE Sie über Berechtigungen für das Katalogschema verfügen, in dem der Index erstellt wird.
Die Berechtigung zum Erstellen und Verwalten von AI-Suchendpunkten wird mithilfe von Zugriffssteuerungslisten konfiguriert. Siehe AI Search-Endpunkt-ACLs.
Datenschutz und Authentifizierung
Databricks implementiert die folgenden Sicherheitskontrollen zum Schutz Ihrer Daten:
- Jede Kundenanfrage an AI Search ist logisch isoliert, authentifiziert und autorisiert.
- AI Search verschlüsselt alle ruhenden Daten (AES-256) und während der Übertragung (TLS 1.2+).
DIE KI-Suche unterstützt zwei Authentifizierungsmodi, Dienstprinzipale und persönliche Zugriffstoken (PATs). Für Produktionsanwendungen empfiehlt Databricks, Dienstprinzipale zu verwenden, die eine Leistung pro Abfrage bis zu 100 msec schneller im Verhältnis zu persönlichen Zugriffstoken aufweisen können.
Dienstprinzipaltoken. Ein Administrator kann ein Dienstprinzipaltoken generieren und an das SDK oder die API übergeben. Siehe Verwenden von Dienstprinzipalen. Für Produktionsanwendungsfälle empfiehlt Databricks die Verwendung eines Dienstprinzipal-Tokens.
# Pass in a service principal vsc = AISearchClient(workspace_url="...", service_principal_client_id="...", service_principal_client_secret="..." )Persönliches Zugriffstoken. Sie können ein persönliches Zugriffstoken verwenden, um sich bei der KI-Suche zu authentifizieren. Siehe Persönliches Zugriffstoken für die Authentifizierung. Wenn Sie das SDK in einer Notizbuchumgebung verwenden, generiert das SDK automatisch ein PAT-Token für die Authentifizierung.
# Pass in the PAT token client = AISearchClient(workspace_url="...", personal_access_token="...")
vom Kunden verwaltete Schlüssel (Customer Managed Keys, CMK) werden auf Endpunkten unterstützt, die am oder nach dem 8. Mai 2024 erstellt wurden.
Nachverfolgen von Nutzung und Kosten
Informationen zur Überwachung von Nutzung und Kosten im Zusammenhang mit AI Search-Indizes und Endpunkten finden Sie im Leitfaden zur VERWALTUNG von AI-Suchkosten.
Sie können die Verwendung auch nach Verwendungsrichtlinie abfragen. Siehe KI-Suchnutzungsrichtlinien.
Grenzwerte für die Ressourcen- und Datengröße
In der folgenden Tabelle sind Ressourcen- und Datengrößenbeschränkungen für AI-Suchendpunkte und Indizes zusammengefasst:
| Resource | Granularität | Begrenzung |
|---|---|---|
| Endpunkte der KI-Suche | Pro Arbeitsbereich | 500 |
| Einbettungen (Delta-Synchronisierungsindex) | Pro Standardendpunkt | ~ 320.000.000 bei 768 einbettenden Dimensionen ~ 160.000.000 bei 1536 einbettenden Dimensionen ~ 80.000.000 bei einer Dimension von 3072 (skaliert ungefähr linear) |
| Einbettungen (Direkter Vektorzugriff-Index) | Pro Standardendpunkt | ~ 2.000.000 bei 768 einbettender Dimension |
| Einbettungen (speicheroptimierter Endpunkt) | Pro speicher-optimierten Endpunkt | ~ 1.000.000.000 bei der Dimension 768 Einbettung |
| Einbettungsdimension | Pro Index | 4096 |
| Indizes | Pro Endpunkt | 50 |
| Columns | Pro Index | 50 |
| Columns | Unterstützte Typen: Bytes, short, integer, long, float, double, boolean, string, timestamp, date, array | |
| Metadatenfelder | Pro Index | 50 |
| Index-Name | Pro Index | 128 Zeichen |
Die folgenden Grenzwerte gelten für die Erstellung und Aktualisierung von KI-Suchindizes:
| Resource | Granularität | Begrenzung |
|---|---|---|
| Zeilengröße für Delta-Synchronisierungsindex | Pro Index | 100 KB |
| Spaltegröße der Einbettungsquelle für den Delta Sync-Index | Pro Index | 32764 Bytes |
| Größenbeschränkung für Massenupertanforderungen für den Direct Vector-Index | Pro Index | 10 MB |
| Größenbeschränkung für Massenlöschanforderungen für den Direct Vector-Index | Pro Index | 10 MB |
Die folgenden Grenzwerte gelten für die Abfrage-API.
| Resource | Granularität | Begrenzung |
|---|---|---|
| Länge des Abfragetexts | Pro Abfrage | 32764 Zeichen |
| Token bei Verwendung der Hybridsuche | Pro Abfrage | 1024 Wörter oder 2-Byte-Zeichen |
| Filterbedingungen | Pro Filterklausel | 1024 Elemente |
| Maximale Anzahl der zurückgegebenen Ergebnisse (ungefähre Nächste Nachbarsuche) | Pro Abfrage | 10,000 |
| Maximale Anzahl der zurückgegebenen Ergebnisse (Hybrid-Stichwort-Ähnlichkeitssuche) | Pro Abfrage | 200 |
| Maximale Anzahl der zurückgegebenen Ergebnisse (Volltextsuche) | Pro Abfrage | 200 |
| Antwortgröße | Pro Abfrage | 10 MB |
Limitations
- Der Spaltenname
_idist reserviert. Wenn ihre Quelltabelle eine Spalte mit dem Namen_idhat, benennen Sie sie um, bevor Sie einen AI-Suchindex erstellen. - Berechtigungen auf Zeilen- und Spaltenebene werden nicht unterstützt. Sie können jedoch ihre eigenen ACLs auf Anwendungsebene mithilfe der Filter-API implementieren.
- Sie können einen Index nicht in einen anderen Arbeitsbereich klonen. Sie können Arbeitsbereichsübergreifende Anforderungen mithilfe des Databricks SDK oder der REST-API vornehmen.
- Die Indexkapazität wird basierend auf der Quelltabellengröße zur Indexerstellungszeit bereitgestellt. Wenn Sie mit einer kleinen Quelltabelle beginnen, wird das Wachstum des Index begrenzt und es können Kapazitätserschöpfungsfehler auftreten. Deshalb sollten Sie die Quelltabelle vor dem Erstellen des Index auf das erwartete Datenvolumen anpassen.
Einschränkungen für speicheroptimierte Endpunkte
Die Einschränkungen in diesem Abschnitt gelten nur für speicheroptimierte Endpunkte.
- Der fortlaufende Synchronisierungsmodus wird nicht unterstützt.
- Columns to sync wird nicht unterstützt.
- Die Dimension der Einbettung muss durch 16 teilbar sein.
- Das inkrementelle Update wird nur teilweise unterstützt. Jede Synchronisierung muss Teile des AI-Suchindex neu erstellen.
- Bei verwalteten Indizes werden alle zuvor berechneten Einbettungen wiederverwendet, wenn sich die Quellzeile nicht geändert hat.
- Sie sollten eine erhebliche End-to-End-Reduzierung der für eine Synchronisierung erforderlichen Zeit im Vergleich zu den Standardendpunkten erwarten. Datasets mit 1 Milliarden Einbettungen sollten eine Synchronisierung in weniger als 8 Stunden abschließen. Kleinere Datensätze nehmen weniger Zeit in Anspruch, um sich zu synchronisieren.
- FedRAMP-kompatible Arbeitsbereiche werden nicht unterstützt.
- Vom Kunden verwaltete Schlüssel (CMK) werden nicht unterstützt.
- Um ein benutzerdefiniertes Einbettungsmodell für einen verwalteten Delta-Synchronisierungsindex zu verwenden, muss die AI-Abfrage für benutzerdefinierte Modelle und die Vorschau für externe Modelle aktiviert sein. Informationen zum Aktivieren von Vorschauen finden Sie unter Verwalten von Azure Databricks-Vorschauen .
- Speicheroptimierte Endpunkte unterstützen bis zu 1 Milliarden Einbettungen von Vektoren mit 768 Dimensionen. Wenn Sie einen größeren Anwendungsfall haben, wenden Sie sich an Ihr Kontoteam.