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.
Die Vektorähnlichkeitssuche (VSS) ist eine gängige Funktion in KI-gestützten intelligenten Anwendungen. Sie können Azure Managed Redis als Vektordatenbank mit geringer Latenz verwenden, wenn Sie sie mit Embedding-Modellen wie Azure OpenAI kombinieren, für Retrieval-Augmented Generation (RAG), semantisches Caching, Empfehlung, Suche und andere KI-Szenarien.
Dieser Artikel führt in Vektoreinbettungen, Vektorähnlichkeitssuche und die Frage ein, wie Azure Managed Redis mithilfe des RediSearch-Moduls Vektoren speichern und durchsuchen kann.
Für Tutorials und Beispielanwendungen, die Azure Managed Redis mit Azure OpenAI verwenden, siehe die folgenden Ressourcen:
Umfang der Verfügbarkeit
Vektorsuchfunktionen in Redis erfordern Redis Stack und insbesondere das Modul RediSearch. In Azure Managed Redis ist RediSearch als verwaltetes Modul verfügbar, das Sie beim Erstellen des Caches aktivieren müssen.
Die folgende Tabelle zeigt die RediSearch-Verfügbarkeit für Azure Managed Redis-Stufen.
| Tarif für Azure Managed Redis | RediSearch-Unterstützung |
|---|---|
| Memory Optimized | Ja |
| Balanced | Ja |
| Compute Optimized | Ja |
| Flash Optimized | Nein |
Important
Man kann keine Module mehr zu einer Azure Managed Redis Instanz hinzufügen, nachdem sie erstellt wurde. Wenn du vorhast, Vektorsuche zu verwenden, aktiviere das RediSearch-Modul während der Bereitstellung.
Planen einer Azure Managed Redis-Instanz für die Vektorsuche
Bevor Sie eine Azure Managed Redis Instanz für die Vektorsuche erstellen, planen Sie die Cache-Konfiguration und das Datenmodell. Sie müssen während der Bereitstellung einige Optionen wählen, darunter Module und Clustering-Richtlinien.
Für Vektorsuch-Workloads:
- Aktiviere das RediSearch-Modul, wenn du die Azure Managed Redis Instanz erstellst.
- Verwenden Sie die Enterprise-Clustering-Richtlinie . RediSearch benötigt eine Enterprise-Clustering-Richtlinie.
- Verwenden Sie die
NoEvictionRäumungsrichtlinie, wenn RediSearch aktiviert ist. - Wählen Sie eine unterstützte In-Memory-Stufe: Speicheroptimiert,Symmetrisch oder Rechenoptimiert.
- Dimensionieren Sie den Cache sowohl für Vektordaten als auch für den Index-Overhead.
- Speichern Sie Metadaten mit Vektoren wie Dokument-ID, Titel, Quell-URL, Kategorie, Zeitstempel, Mieter-ID oder Zugriffskontrollfeldern, damit Abfragen Ergebnisse filtern und Quellinformationen zurückgeben können.
- Nutzen Sie TLS für Client-Verbindungen und berücksichtigen Sie die Microsoft Entra-Authentifizierung, wo Ihr Client sie unterstützt.
- Für Produktionsworkloads sollten Sie Private Link, hohe Verfügbarkeit und Diagnostik in Betracht ziehen.
Azure Managed Redis verwaltet die verfügbaren Modulversionen für den Service. Du kannst Module nicht manuell laden oder Modulversionen manuell aktualisieren.
Weitere Informationen finden Sie unter Use Redis modules with Azure Managed Redis, Azure Managed Redis architecture und Quickstart: Create an Azure Managed Redis Instance.
Was sind Vektoreinbettungen?
Vektoreinbettungen sind numerische Darstellungen von Daten, wie Wörtern, Dokumenten, Bildern oder Produkten, in einem hochdimensionalen Vektorraum. Embeddings erfassen semantische Beziehungen so, dass Anwendungen Daten mathematisch vergleichen können.
Zum Beispiel haben die Wörter basketball und baseball typischerweise Einbettungen, die näher beieinander liegen als eines der beiden Wörter zu rainforestist, weil das Modell semantisch verwandte Konzepte nahe beieinander im Vektorraum platziert.
Verschiedene Machine-Learning-Modelle erzeugen Embeddings unterschiedlich. Für beste Ergebnisse verwenden Sie ein Einbettungsmodell konsistent für einen gegebenen Vektorindex. Das Indexschema, die Vektordimensionen und die Distanzmetrik sollten mit dem Einbettungsmodell übereinstimmen, das zur Erzeugung der Vektoren verwendet wird.
Vektorvergleich
Du kannst Vektoren mit Distanz- oder Ähnlichkeitsmetriken vergleichen. Zu den allgemeinen Metriken gehören:
- Kosinusähnlichkeit, die den Winkel zwischen den Vektoren vergleicht.
- Euklidische Entfernung, die die gerade Linie im Vektorraum misst.
- Inneres Produkt, das in einigen Embedding- und Ranking-Szenarien häufig verwendet wird.
Die korrekte Metrik hängt vom Einbettungsmodell und der Normalisierung der Vektoren ab. Für viele Texteinbettungsszenarien ist Kosinusähnlichkeit eine gängige Wahl.
Generieren von Einbettungen
Viele Machine Learning-Modelle unterstützen Einbettungs-APIs. Ein Beispiel dafür, wie man Vektor-Embeddings mit Azure OpenAI erstellt, findet sich unter Lernen, wie man Embeddings mit Azure OpenAI generiert.
Was ist eine Vektordatenbank?
Eine Vektordatenbank speichert, indexiert, ruft und vergleicht hochdimensionale Vektoren. Vektordatenbanken sind so konzipiert, dass sie ähnliche Vektoren mit geringer Latenz und hohem Durchsatz zurückgeben.
Sie können Azure Managed Redis als Vektordatenbank verwenden, indem Sie Einbettungen in Redis-Datenstrukturen speichern und diese mit RediSearch indizieren.
Vektorspeicherung und Metadaten
In Redis kann man Vektoren in Hashes oder JSON-Dokumenten speichern. Speichern nützliche Metadaten mit jedem Vektor, wie Dokument-ID, Titel, Quell-URL, Kategorie, Zeitstempel, Mieter-ID oder Zugriffskontrollfelder.
Metadaten machen die Vektorsuche nützlicher, da Anwendungen die Ergebnisse vor oder während der Vektorsuche filtern können. Für RAG-Anwendungen können Metadaten auch zusammen mit Suchergebnissen zurückgegeben werden, um Zitate und Quellenbegründung zu unterstützen.
Index und Suchmethoden
Vektordatenbanken verwenden Indizes, um die Suche effizient zu machen. RediSearch unterstützt gängige Vektorindexierungsansätze, darunter:
- FLAT – Ein exakter Brute-Force-Index. FLAT kann für kleinere Datensätze oder Arbeitslasten nützlich sein, die eine umfassende Suche erfordern.
- HNSW – Ein ungefährer Nächste-Nachbar-Index, der auf Hierarchical Navigable Small World-Graphen basiert. HNSW wird oft für größere Datensätze verwendet, bei denen eine geringere Latenz wichtiger ist als eine erschöpfende Präzision.
Gängige Suchmethoden sind:
-
K-nächstgelegene Nachbarn (KNN) – Gibt die obersten
Kähnlichsten Vektoren zurück. - Approximative Nearest Neighbors (ANN) – Tauscht etwas Präzision gegen geringere Latenz und geringere Rechenkosten ein.
Suchfunktionen
Vektordatenbanken führen Suchen durch, indem sie einen Abfragevektor mit indexierten Vektoren vergleichen und die ähnlichsten Ergebnisse liefern. Viele Anwendungen verwenden auch hybride Suche, bei der Metadatenfilter die Kandidatenmenge vor oder während des Vektorvergleichs eingrenzen.
Beispielsweise könnte eine Produktempfehlungsanfrage nur Produkte aus einer bestimmten Kategorie suchen, oder eine RAG-Anwendung könnte nur Dokumente durchsuchen, auf die der aktuelle Nutzer zugreifen darf.
Wichtige Szenarien für die Vektorsuche
Die Vektorähnlichkeitssuche kann in vielen Anwendungsmustern verwendet werden, darunter:
- Semantik Q&A. Baue einen Chatbot, der Fragen über deine eigenen Daten beantwortet. Dokumente können in Abschnitte unterteilt, in Einbettungen umgewandelt, in Azure Managed Redis gespeichert und anhand der Vektorähnlichkeit abgerufen werden, bevor sie von einem großen Sprachmodell zusammengefasst werden.
- Dokumentenabruf. Verwenden Sie Embeddings, um eine semantische Dokumentensuche bereitzustellen, wenn die Schlüsselwortsuche nicht ausreicht.
- Produktempfehlung. Finden Sie ähnliche Produkte oder Dienstleistungen basierend auf Browsing-Aktivitäten, Kaufhistorie oder Produktbeschreibungen.
- Visuelle Suche. Suchen Sie nach Produkten oder Bildern, die optisch einem eingereichten Bild ähneln.
- Semantisches Caching. Reduzieren Sie die Kosten und Latenz von LLM, indem Sie Abschlüsse speichern und zwischengespeicherte Antworten wiederverwenden, wenn ein neuer Prompt semantisch einem vorherigen Prompt ähnelt.
- LLM-Gesprächserinnerung. Speichere Kurzzeitgedächtnis, wie aktuelle Gesprächsrunden, und Langzeitgedächtnis, wie haltbare Zusammenfassungen, Benutzerpräferenzen oder Fakten, als Einbettungen, die Anwendungen für zukünftige Antworten abrufen können.
Warum Azure Managed Redis zum Speichern und Durchsuchen von Vektoren wählen?
Azure Managed Redis ist nützlich für Vektorsuch-Workloads, die einen latenzarmen Zugriff in der Nähe von Anwendungsdaten, Cache-Daten, Sitzungszuständen oder Konversationsspeicher benötigen. Da Redis häufig für Hochleistungsanwendungsmuster verwendet wird, kann Azure Managed Redis Vektorsuche unterstützen und gleichzeitig benachbarte Anwendungsfälle wie Caching, Rate-Limiting, Sitzungsspeicherung, semantisches Caching und Agentenspeicher bedienen.
Viele KI- und Anwendungsframeworks enthalten Redis-Integrationen, darunter:
- Microsoft Agent Framework Redis Provider
- Semantischer Kernel Redis Connector
- LangChain Redis-Integrationen
- LlamaIndex Redis Vektorspeicher
Azure Managed Redis verwendet das RediSearch-Modul zur Unterstützung von Vektorsuchfunktionen wie:
- Gängige Distanzmetriken, darunter
L2,COSINE, undIP. - KNN-Suche mit
FLATundHNSWVektorindizes. - Vektorspeicherung in Hash- oder JSON-Datenstrukturen.
- Top-K-Anfragen.
- Vektorbereichsanfragen.
- Hybride Suche mit Abfragefunktionen wie:
- Georäumliche Filterung.
- Numerische und Textfilter.
- Präfix- und unscharfer Abgleich.
- Phonetischer Abgleich.
- Boolesche Anfragen.
Welche anderen Optionen habe ich zum Speichern und Durchsuchen von Vektoren?
Azure bietet mehrere Dienste für Vektorspeicherung und Suche an. Die beste Wahl hängt von deiner Arbeitsbelastung ab.
| Service | Betrachten Sie, wann |
|---|---|
| Azure Managed Redis | Du brauchst eine Vektorsuche mit niedriger Latenz in der Nähe von Anwendungscache, Sitzungszustand, semantischem Cache oder LLM-Speichermustern. |
| Azure KI-Suche | Sie benötigen einen Search-First-Service für Dokumentenindexierung, hybride Suche, Relevanzoptimierung und Enterprise-Retrieval-Szenarien. |
| Azure Cosmos DB | Du willst Vektorsuche neben operativen NoSQL-Daten. |
| Azure-Datenbank für PostgreSQL – Flexibler Server | Du möchtest in PostgreSQL eine Vektorsuche mit pgvector zusammen mit relationalen Daten verwenden. |
Verwandte Inhalte
Der beste Weg, mit Embeddings und Vektorsuche zu beginnen, ist, es selbst auszuprobieren.