Auswählen eines Azure-Diensts für die Vektorsuche

Die Vektorsuche ist eine Möglichkeit, Informationen zu finden, die in einer Datenbank in Form von Vektoren gespeichert sind. Vektoren sind Zahlengruppen, die Funktionen oder Merkmale von Medien darstellen, z. B. Text oder Bilder. Sie erfassen semantische Beziehungen innerhalb der Informationen, wodurch die Ähnlichkeitssuche über den exakten Stichwortabgleich hinaus ermöglicht wird.

Azure bietet mehrere Möglichkeiten zum Speichern und Durchsuchen von vektorisierten Daten. In diesem Artikel können Sie den richtigen Azure Vektorsuchdienst für Ihre Anwendungen auswählen.

Es werden die folgenden Dienste auf Basis ihrer Vektorsuchfunktionen verglichen:

Informationen zum Vergleichen der Systemanforderungen für jeden Dienst finden Sie unter Auswählen eines Kandidatendiensts und einer Funktionsmatrix.

Auswählen eines Kandidatendiensts

In diesem Abschnitt können Sie den besten Dienst oder die besten Dienste für Ihre Anforderungen auswählen. Um die Auswahl einzugrenzen, sollten Sie zunächst die Systemanforderungen berücksichtigen.

Wesentliche Anforderungen

Flussdiagramm, mit dem Sie den richtigen Azure Vektorsuchdienst auswählen können.

Flussdiagramm, mit dem Sie den richtigen Azure Vektorsuchdienst auswählen können. Das Flussdiagramm fragt, ob Sie Vektordaten häufig einfügen, aktualisieren oder löschen und Suchergebnisse in Echtzeit oder nahezu in Echtzeit benötigen. Wenn Sie nein beantworten, werden zwei weitere Fragen zur erstklassigen Hybridsuche gestellt, die semantische Umrankung, groß angelegte unstrukturierte Inhaltsindizierung, Kostenoptimierung und Ihren vorhandenen Datenbankdienst verwendet. Wenn die Kostenoptimierung Priorität hat oder Sie bereits einen Datenbankdienst betreiben, der die Vektorsuche unterstützt, empfiehlt Ihnen das Flussdiagramm, Ihren bestehenden Datenbankdienst zu verwenden. Wenn die Kostenoptimierung keine Priorität hat oder Wenn Sie derzeit keinen Datenbankdienst betreiben, der die Vektorsuche unterstützt, führt Sie das Flussdiagramm zu Azure KI-Suche. Wenn Sie die erste Frage mit „Ja“ beantworten, fragt das Flussdiagramm, ob Sie eine In-Memory-Vektorsuche mit extrem niedriger Latenz benötigen oder bereits Azure Managed Redis verwenden. Wenn Sie mit „Ja“ antworten, empfiehlt Ihnen das Flussdiagramm, Azure Managed Redis zu verwenden oder weiterhin zu verwenden. Wenn Sie nein antworten, fragt das Flussdiagramm, ob Sie ein relationales Datenbankverwaltungssystem (RDBMS) verwenden möchten. Wenn Sie ja antworten, fragt das Flussdiagramm, ob Ihre Einbettungen 1.998 Dimensionen überschreiten. Wenn Sie mit Ja antworten, fragt das Flussdiagramm, ob Sie horizontales Sharding für sehr große Vektordatensätze benötigen. Wenn Sie ja antworten, führt Sie das Flussdiagramm zu Azure Database for PostgreSQL mit Elastic Clusters. Wenn Sie nein beantworten, führt Sie das Flussdiagramm zu Azure Database for PostgreSQL. Wenn Ihre Einbettungen 1.998 Dimensionen nicht überschreiten, fragt das Flussdiagramm, ob Sie Azure SQL-Datenbank oder Azure Database for PostgreSQL bevorzugen, und führt Sie zu einer dieser Optionen basierend auf Ihrer Antwort. Wenn Sie kein RDBMS verwenden möchten, fragt das Flussdiagramm, ob Sie die Betriebsdaten und die Vektorsuche im selben Speicher beibehalten möchten, mit hybrider Suche und integrierter Reranking. Wenn Sie ja antworten, führt Sie das Flussdiagramm zu Azure Cosmos DB für NoSQL. Wenn Sie nein antworten, fragt das Flussdiagramm, ob Sie Vektorabmessungen bis zu 16.000 oder mongoDB-kompatible APIs benötigen. Wenn Sie ja antworten, führt Sie das Flussdiagramm zu Azure DocumentDB. Wenn Sie nein antworten, führt Sie das Flussdiagramm zur Azure Cosmos DB für NoSQL.

Wenn Sie entscheiden möchten, ob Sie eine herkömmliche Datenbanklösung oder KI-Suche verwenden möchten, berücksichtigen Sie Ihre Anforderungen und ob Sie Live- oder Echtzeitvektorsuchen für Ihre Daten durchführen können. Wenn Sie häufig Werte in vektorisierten Feldern ändern und diese Änderungen in Echtzeit oder in Echtzeit durchsuchbar sein müssen, ist eine herkömmliche relationale oder NoSQL-Datenbank für Ihr Szenario am besten geeignet. Ebenso ist Ihre vorhandene Datenbank möglicherweise die beste Methode, um Ihr Leistungsziel zu erreichen. Wenn Ihre Arbeitsauslastung jedoch keine Echtzeit- oder Nah-Echtzeit-Vektorsuchbarkeit erfordert und Sie einen Index von Vektoren verwalten können, können Sie die KI-Suche verwenden.

Wenn Sie eine herkömmliche Datenbanklösung auswählen, wählen Sie einen Datenbankdienst basierend auf den Fähigkeiten Ihres Teams und Ihren vorhandenen Datenbanken aus. Wenn Sie bereits einen Datenbankdienst wie Azure Cosmos DB für NoSQL verwenden, ist dieser Dienst möglicherweise die einfachste Lösung für Ihr Szenario.

  • Azure Cosmos DB für NoSQL eignet sich gut, wenn Sie die Betriebsdaten und die Vektorsuche im selben System beibehalten möchten und wenn Sie die Volltextbewertung, hybride Suche oder integrierte Reranking benötigen.

  • KI-Suche kann eine gute Wahl sein, wenn Ihre Workload eine erstklassige Hybridsuche und ein semantisches Ranking erfordert.

  • Azure Database for PostgreSQL unterstützt die horizontale Skalierung mithilfe von elastischen Clustern, einem verwalteten Angebot der Open-Source Citus-Erweiterung, die horizontales Sharding unterstützt. Diese Funktion verteilt Vektordaten über mehrere Knoten, die für große Vektordatensets nützlich sein können.

  • Erwägen Sie Azure Managed Redis, wenn Sie eine In-Memory-Vektorsuche mit extrem niedriger Latenz benötigen oder Redis bereits für Caching oder die Sitzungsverwaltung im Einsatz ist.

Jeder Datenbankdienst verfügt über eindeutige Funktionen und Einschränkungen für die Vektorsuche. Überprüfen Sie, ob der Datenbanktyp über die erforderliche Funktionalität verfügt.

Neue Dienste und zusätzliche Datenbankinstanzen können Kosten und Komplexität erhöhen. Um den Aufwand zu verringern, können Sie Ihr vorhandenes Design weiterhin verwenden. Die Vektorsuche in Ihren aktuellen Datenbanken ist möglicherweise kostengünstiger als ein dedizierter Vektorsuchdienst. Einige erweiterte Suchfeatures sind in herkömmlichen Datenbanken jedoch nicht standardmäßig verfügbar. Wenn Sie z. B. eine Neuranking- oder Hybridsuche benötigen, können Sie diese Funktionen mithilfe von Code implementieren, z. B. Transact-SQL (T-SQL).

Funktionsmatrix

Die Tabellen in diesem Abschnitt fassen Azure Vektorsuchdienstfunktionen zusammen. Vergleichen Sie die verfügbaren Dienste mit Ihren Anforderungen. Einige Dienste eignen sich besser für bestimmte Szenarien. Berücksichtigen Sie daher die in jeder Tabelle angezeigten Trade-Offs.

Wenn Sie in Microsoft Fabric arbeiten, können Sie Real-Time Intelligence für die Vektorähnlichkeitssuche (VSS) verwenden, indem Sie ein Ereignishaus als Vektordatenbank verwenden. Weitere Informationen finden Sie in der Fabric Dokumentation.

Grundlegende Funktionen

Manchmal unterscheidet sich die native Unterstützung für Vektordatentypen, ANN-Vektorindizes (Approximate Nearest Neighbor, ungefährer nächster Nachbar), Vektordimensionsgrenzwerte, mehrere Vektorfelder und mehrere Vektorindizes zwischen den Diensten. Ihre Workload erfordert möglicherweise eine oder mehrere dieser Features.

In der folgenden Tabelle sind die Vektorfunktionen der einzelnen Azure-Dienste aufgeführt.

Fähigkeit Azure Cosmos DB für NoSQL-Datenbanklösungen Azure DocumentDB Azure-Datenbank für PostgreSQL Azure Managed Redis KI-Suche SQL Database
Integrierte Vektorsuche Ja Ja1 Ja2 Ja3 Ja4 Ja
Vektordatentyp Ja Ja Ja Ja Ja Ja5
Dimensionsgrenzwerte6 5057 oder 4.096 16.0008, 4.000 oder 2.000, je nach Konfiguration 16.0009 oder 2.000 32,768 4.09610 1.998 11
Mehrere Vektorfelder Ja Nein Ja Ja Ja Ja
Mehrere Vektorindizes Ja Nein Ja Ja Ja Ja
  1. Azure DocumentDB unterstützt die Vektorsuche bei Einbettungen.
  2. pgvector, eine Erweiterung von PostgreSQL, unterstützt die Vektorsuche. Die pg_diskann Erweiterung bietet DiskANN-basierte Vektorindizierung für eine effiziente ANN-Suche in großem Maßstab.
  3. Das RediSearch-Modul in Azure Managed Redis bietet Vektorsuche.
  4. KI-Suche unterstützt Vektoren.
  5. SQL-Datenbank unterstützt einen Vektordatentyp.
  6. OpenAI-Einbettungsmodelle umfassen 1.536 Dimensionen für text-embedding-ada-002 und für text-embedding-3-small und 3.072 Dimensionen für text-embedding-3-large. Azure Vision multimodale Einbettungsmodelle haben 1.024 Dimensionen für Bild und Text.
  7. Vektoren, die mit dem flachen Indextyp indiziert werden, können bis zu 505 Dimensionen aufweisen. Vektoren, die mithilfe des QuantizedFlat- oder DiskANN-Indextyps indiziert werden, können bis zu 4.096 Dimensionen aufweisen.
  8. Mithilfe der DiskANN- und Produktquantisierung können Sie Vektoren bis zu 16.000 Dimensionen indizieren. Hierarchical navigable small world (HNSW) oder IVFFlat mit halber Genauigkeit unterstützt Vektorindizes von bis zu 4.000 Dimensionen. Ohne Komprimierung beträgt die standardmäßige maximale Vektordimension für die Indizierung 2.000. Weitere Informationen finden Sie in den Vektorabmessungen für Azure DocumentDB.
  9. Vektoren können bis zu 16.000 Dimensionen aufweisen. Die Indizierung mithilfe von IVFFlat- und HNSW-Algorithmen unterstützt jedoch Vektoren mit bis zu 2.000 Dimensionen.
  10. AI Search unterstützt die auf Matryoshka Representation Learning basierende Dimensionstrunkierung. Text-embedding-3-Modelle können Vektordimensionen reduzieren. Sie können beispielsweise 256 oder 512 Dimensionen verwenden.
  11. SQL-Datenbank unterstützt einen systemeigenen Vektordatentyp mit bis zu 1.998 Dimensionen.

Suchmethoden

Workloads müssen Vektorsuche häufig mit Volltextsuche oder Hybridsuche kombinieren. Die Hybridsuche ist eine Volltextsuche oder semantische Suche in Kombination mit einer Vektorsuche. In Kombination erzielen hybride Suche und Reranking eine hohe Genauigkeit für Workloads. Sie können die Hybridsuche manuell implementieren und neu gewichten, indem Sie Ihren eigenen Code verwenden, oder Sie können überlegen, wie Ihr Vektorspeicher diese Arbeitslastanforderungen unterstützt.

Suchmethode Azure Cosmos DB für NoSQL-Datenbanklösungen Azure DocumentDB Azure-Datenbank für PostgreSQL Azure Managed Redis KI-Suche SQL Database
Volltextsuche Ja12 Ja2 Ja3 Ja4 Ja Ja5
Hybridsuche Ja6 Ja7 Ja8 Ja9 Ja10 Ja11
Integrierte Neuanordnung Ja Nein Nein Nein Ja1 Nein
  1. Die semantische Rangfolge rerankt Ergebnisse von Volltext- und Vektorsuchen.
  2. Azure DocumentDB unterstützt die Suche und Abfrage mithilfe von Textindizes.
  3. PostgreSQL unterstützt die Volltextsuche.
  4. Azure Managed Redis unterstützt die Volltextsuche mithilfe des Moduls RediSearch, einschließlich Texttokenisierung, Stemming und Relevanzbewertung.
  5. SQL Server unterstützt die Volltextsuche.
  6. Azure Cosmos DB für NoSQL unterstützt die Hybridsuche.
  7. Azure DocumentDB unterstützt die Hybridsuche nativ, die Volltext- und Vektorsuche mit gegenseitiger Rangfusion kombiniert.
  8. Die Hybridsuche ist nicht integriert, aber Beispielcode ist verfügbar.
  9. Azure Managed Redis unterstützt Hybridsuche durch die Verwendung von VSS in Kombination mit Attributfiltern für Text-, numerische, Tag- und Geofelder.
  10. Die Hybridsuche, die Volltextsuche, Vektorsuche und semantische Rangfolge kombiniert, ist ein Feature in der KI-Suche.
  11. Ein Beispiel für die Hybridsuche für SQL-Datenbank und SQL Server ist verfügbar.
  12. Azure Cosmos DB für NoSQL unterstützt die Volltextsuche und die Volltextbewertung.

Vektordaten-Indizierungsalgorithmen

Die Vektordatenindizierung ist die Möglichkeit, Vektoren effizient zu speichern und abzurufen. Die Indexierung beeinflusst die Geschwindigkeit und Genauigkeit von Ähnlichkeitssuchen und Nächste-Nachbarn-Abfragen in Datenquellen.

Indizes verwenden in der Regel entweder einen vollständigen k-nächstgelegenen Nachbaralgorithmus (Ek-NN) oder einen ANN-Algorithmus. Ek-NN führt eine vollständige Suche über alle Datenpunkte durch und gibt die exakten k nächsten Nachbarn zurück. Beim Durchsuchen einer kleinen Datenmenge funktioniert Ek-NN in Millisekunden. Bei größeren Datasets treten möglicherweise Latenzen auf.

DiskANN, HNSW und IVFFlat sind ANN-Algorithmusindizes. Die Auswahl der geeigneten Indizierungsstrategie erfordert eine sorgfältige Prüfung verschiedener Faktoren, z. B. die Art des Datasets, die spezifischen Anforderungen der Abfragen und die verfügbaren Ressourcen. DiskANN kann sich Änderungen im Dataset anpassen und Rechenressourcen sparen. HNSW eignet sich hervorragend für Systeme, die schnelle Abfrageantworten erfordern und sich an Änderungen im Dataset anpassen können. IVFFlat ist in Umgebungen wirksam, in denen Hardwareressourcen begrenzt sind oder Abfragevolumen nicht hoch sind.

In der folgenden Tabelle sind die verfügbaren Vektordatenindizierungstypen aufgeführt.

Indizierungsansatz Azure Cosmos DB für NoSQL-Datenbanklösungen Azure DocumentDB Azure-Datenbank für PostgreSQL Azure Managed Redis KI-Suche SQL Database
DiskANN Ja Ja1 Ja2 Nein Nein Ja3
Ek-NN Ja Ja Ja Ja4 Ja Ja
HNSW Nein Ja1 Ja Ja5 Ja Nein
IVFFlat Nein Ja Ja Nein Nein Nein
Andere Flat, quantizedFlat6 Vektorfeldeinschränkung,7
Vektorindexbeschränkung8
- - Skalare Quantisierung, binäre Quantisierung9 -
  1. Weitere Informationen finden Sie im integrierten Vektorspeicher in Azure DocumentDB.
  2. Weitere Informationen finden Sie unter DiskANN für Azure Database for PostgreSQL.
  3. Native DiskANN-Vektorindizierung befindet sich in der Vorschau. Weitere Informationen finden Sie unter Vektorsuche und Vektorindizes in der SQL-Datenbank-Engine.
  4. Azure Managed Redis unterstützt die Ek-NN-Suche unter Verwendung des FLAT-Indextyps für die Brute-Force-Suche.
  5. Azure Managed Redis unterstützt HNSW für ANN-Suche. Weitere Informationen finden Sie unter VSS.
  6. Weitere Informationen finden Sie unter Vektorindizierungsrichtlinien.
  7. Die Indizierung gilt nur für einen Vektor pro Pfad.
  8. Sie können nur einen Index pro Vektorpfad erstellen.
  9. KI-Suche unterstützt skalare und binäre Quantisierung , um die Vektorgröße in einem Suchindex zu reduzieren.

Ähnlichkeits- und Abstandsberechnungsfunktionen

Die Vektorsuche unterstützt Kosinus-Ähnlichkeit, Punktprodukt und Euklidische Entfernungsberechnungsmethoden . Verwenden Sie diese Methoden, um die Ähnlichkeit oder den Abstand zwischen zwei Vektoren zu berechnen.

Bei der vorläufigen Datenanalyse werden Metriken und Euklidean-Entfernungen verwendet, sodass Sie eine Vielzahl von Datenstrukturerkenntnissen extrahieren können. Die Textklassifizierung funktioniert in der Regel bei euklidischen Entfernungen besser. Der Abruf der am ehesten ähnlichen Texte mit einem bestimmten Text funktioniert in der Regel besser mit Kosinusähnlichkeit.

Azure OpenAI-Einbettungen basieren auf der Kosinusähnlichkeit zur Berechnung der Ähnlichkeit zwischen Dokumenten und einer Abfrage.

Integrierte Vektorvergleichsberechnung Azure Cosmos DB für NoSQL-Datenbanklösungen Azure DocumentDB Azure-Datenbank für PostgreSQL Azure Managed Redis KI-Suche SQL Database
Kosinusähnlichkeit Ja1 Ja Ja Ja2 Ja Ja3
Euklidischer Abstand Ja1 Ja Ja Ja2 Ja Ja3
Skalarprodukt Ja1 Ja Ja Ja2 Ja Ja3
  1. Weitere Informationen finden Sie in der Vektorabstandsberechnung für Azure Cosmos DB für NoSQL.
  2. Azure Managed Redis unterstützt Kosinusgleichheit, Euklidean-Entfernung und innere Produktabstandsmetriken. Weitere Informationen finden Sie unter VSS.
  3. Weitere Informationen finden Sie in den Beispielen für die Entfernungsberechnung für SQL-Datenbank und SQL Server.

Integration in Azure OpenAI und andere Komponenten

Sie können die Vektorsuche mit anderen Microsoft Komponenten verknüpfen. Mit Azure OpenAI können Sie beispielsweise Vektoren für Ihre Daten und Eingabeabfragen für VSS erstellen.

Fähigkeit Azure Cosmos DB für NoSQL-Datenbanklösungen Azure DocumentDB Azure-Datenbank für PostgreSQL Azure Managed Redis KI-Suche SQL Database
Foundry IQ-Integration Nein Nein Nein Nein Ja Nein
Integration des Foundry Agent-Diensts Ja1 Nein Ja2 Ja2 Ja3 Ja2
Integrierte Generierung von Azure OpenAI-Embeddings Nein Nein Ja4 Nein Ja5 Ja6
Integration des semantischen Kerns Ja7 Ja8 Ja9 Ja10 Ja11 Ja12
  1. Die Integration des Foundry Agent Service wird über den Agentstatusspeicher bereitgestellt.
  2. Die Integration des Foundry Agent Service wird über Daten, Vektorsuche oder Toolzugriff bereitgestellt.
  3. Die Integration des Foundry Agent Service wird über die Wissensabruf- und Vektorsuche bereitgestellt.
  4. Die Azure AI-Erweiterung ist verfügbar.
  5. DIE KI-Suche enthält eine Fähigkeit, mit der Textblöcke vektorisiert werden.
  6. Sie können eine gespeicherte Prozedur für die Bereitstellung Ihres Einbettungsmodells erstellen.
  7. Dieser Dienst wird als Speicherconnector und als Vektordatenbankconnector unterstützt. Weitere Informationen finden Sie in der C#-Dokumentation und in der Python Dokumentation.
  8. Dieser Dienst wird als Vektordatenbankconnector unterstützt. Weitere Informationen finden Sie in der C#-Dokumentation und in der Python Dokumentation.
  9. Dieser Dienst wird als Speicherconnector und als Vektordatenbankconnector unterstützt. Weitere Informationen finden Sie in der C#-Dokumentation.
  10. Dieser Dienst wird als Vektordatenbankconnector unterstützt. Weitere Informationen finden Sie unter Verwenden des Redis-Connectors.
  11. Dieser Dienst wird als Speicherconnector und als Vektordatenbankconnector unterstützt. Weitere Informationen finden Sie in der C#-Dokumentation und in der Python Dokumentation.
  12. Dieser Dienst wird als Speicherconnector unterstützt.

Beitragende

Microsoft verwaltet diesen Artikel. Die folgenden Mitwirkenden haben diesen Artikel geschrieben.

Hauptautoren:

Andere Mitwirkende:

Um nicht-öffentliche LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.

Nächste Schritte