Vektorsuche in Azure KI-Suche

Die Vektorsuche ist ein Informationsempfangsansatz, der die Indizierung und Abfrage über numerische Darstellungen von Inhalten unterstützt. Da der Inhalt numerisch statt nur Text ist, basiert der Abgleich auf Vektoren, die dem Abfragevektor am ähnlichsten sind. Dieser Ansatz ermöglicht den Abgleich über Folgendes:

  • Semantische oder konzeptionelle Ähnlichkeit. Beispielsweise sind "Hund" und "Canine" konzeptuell ähnlich, aber sprachlich unterschiedlich.
  • Mehrsprachige Inhalte wie "Dog" in Englisch und "hund" in Deutsch.
  • Mehrere Inhaltstypen, z. B. "Hund" in Nur-Text und ein Bild eines Hundes.

Dieser Artikel bietet eine Übersicht über die Vektorsuche in Azure KI-Suche, einschließlich unterstützter Szenarien, Verfügbarkeit und Integration mit anderen Azure-Diensten.

Tipp

Möchten Sie sofort loslegen? Führen Sie die folgenden Schritte aus:

  1. Stellen Sie Einbettungen für Ihren Index bereit oder generieren Sie Einbettungen in eine Indexerpipeline.
  2. Erstellen Sie einen Vektorindex.
  3. Führen Sie Vektorabfragen aus.

Welche Szenarien können die Vektorsuche unterstützen?

Die Vektorsuche unterstützt die folgenden Szenarien:

  • Ähnlichkeitssuche. Codieren Sie Text mithilfe von Einbettungsmodellen oder Open-Source-Modellen, z. B. OpenAI-Einbettungen oder SBERT. Anschließend rufen Sie Dokumente mithilfe von Abfragen ab, die auch als Vektoren codiert sind.

  • Hybridsuche. Azure KI-Suche definiert die Hybridsuche als Ausführung der Vektorsuche und Schlüsselwortsuche in derselben Anforderung. Die Vektorunterstützung wird auf Feldebene implementiert. Wenn ein Index Vektor- und Nichtvektorfelder enthält, können Sie eine Abfrage schreiben, die auf beide Ziele ausgerichtet ist. Die Abfragen werden parallel ausgeführt, und die Ergebnisse werden in einer einzigen Antwort zusammengeführt und entsprechend bewertet.

  • Multimodale Suche. Codieren Sie Text und Bilder mit multimodalen Einbettungen, z. B. OpenAI CLIP oder GPT-4 Turbo mit Vision in Azure OpenAI, und fragen Sie dann einen einbettenden Raum ab, der aus Vektoren aus beiden Inhaltstypen besteht.

  • Mehrsprachige Suche. Azure KI-Suche ist für die Erweiterbarkeit ausgelegt. Wenn Sie Einbettungsmodelle und Chatmodelle haben, die in mehreren Sprachen trainiert sind, können Sie diese über benutzerdefinierte oder integrierte Fähigkeiten auf der Indizierungsseite oder Vektorisierer auf der Abfrageseite aufrufen. Verwenden Sie, um mehr Kontrolle über die Textübersetzung zu haben, die mehrsprachigen Funktionen, die von Azure KI-Suche für Nicht-Vektor-Inhalte in Hybridsuchszenarien unterstützt werden.

  • Gefilterte Vektorsuche. Eine Abfrageanforderung kann eine Vektorabfrage und einen Filterausdruck enthalten. Filter gelten für Text- und numerische Felder. Sie sind nützlich für Metadatenfilter und für das Einschließen oder Ausschließen von Suchergebnissen basierend auf Filterkriterien. Obwohl ein Vektorfeld nicht gefiltert werden kann, können Sie ein filterbares Text- oder numerisches Feld einrichten. Die Suchmaschine kann den Filter vor oder nach der Ausführung der Vektorabfrage verarbeiten.

  • Vektordatenbank. Azure KI-Suche speichert die Daten, die Sie abfragen. Verwenden Sie es als reinen Vektorindex, wenn ein langfristiger Speicher oder eine Wissensbasis erforderlich ist, um Daten für die Retrieval-Augmented Generation (RAG) Architektur oder für eine App, die Vektoren verwendet, bereitzustellen.

Wie funktioniert die Vektorsuche?

Azure KI-Suche unterstützt Indizierung, Speichern und Abfragen von Vektoreinbettungen aus einem Suchindex. Das folgende Diagramm zeigt die Indizierungs- und Abfrageworkflows für die Vektorsuche.

Architektur des Vektorsuchworkflows.

Auf der Indizierungsseite verwendet Azure KI-Suche einen nearest-Nachbaralgorithmus, um ähnliche Vektoren in einem Index zu platzieren. Intern werden Vektorindizes für jedes Vektorfeld erstellt.

Wie Sie Einbettungen aus Ihrem Quellinhalt in Azure KI-Suche erhalten, hängt von Ihrem Verarbeitungsansatz ab:

  • Bei der internen Verarbeitung bietet Azure KI-Suche integrierte Datenblöcke und Vektorisierung in einer Indexerpipeline an. Sie stellen die erforderlichen Ressourcen bereit, z. B. Endpunkte und Verbindungsinformationen für Azure OpenAI. Azure KI-Suche führt dann die Aufrufe aus und behandelt die Übergänge. Für diesen Ansatz sind ein Indexer, eine unterstützte Datenquelle und ein Skillset erforderlich, das die Blockbildung und Einbettung steuert.

  • Für die externe Verarbeitung können Sie Einbettungen generieren außerhalb von Azure KI-Suche und den vorvectorisierten Inhalt direkt in Vektorfelder in Ihrem Suchindex übertragen.

Auf der Abfrageseite sammelt Ihre Client-App Benutzereingaben in der Regel über eine Eingabeaufforderung. Sie können einen Codierungsschritt hinzufügen, um die Eingabe zu vektorisieren und dann die Vektorabfrage an Ihren Azure KI-Suche Index für die Ähnlichkeitssuche zu senden. Wie bei der Indizierung können Sie die Abfrage mithilfe der integrierten Vektorisierung codieren. Bei beiden Ansätzen liefert Azure KI-Suche in den Ergebnissen Dokumente mit den angeforderten nächstliegenden Nachbarn (kNN).

Azure KI-Suche unterstützt hybrid-Szenarien die Vektor- und Schlüsselwortsuche parallel ausführen und einen einheitlichen Resultset zurückgeben, der häufig bessere Ergebnisse als die Vektor- oder Stichwortsuche allein bietet. Bei der Hybridsuche werden sowohl Vektor- als auch Nichtvektorinhalte in den gleichen Index für Abfragen aufgenommen, die gleichzeitig ausgeführt werden.

Verfügbarkeit und Preise

Die Vektorsuche ist in allen Regionen und auf allen Ebenen kostenlos verfügbar. Das Generieren von Einbettungen oder die Verwendung der KI-Anreicherung für die Vektorisierung kann jedoch zu Gebühren des Modellanbieters führen.

Für den Portal- und programmgesteuerten Zugriff auf die Vektorsuche können Sie Folgendes verwenden:

Hinweis

  • Einige suchdienste, die vor dem 1. Januar 2019 erstellt wurden, unterstützen keine Vektorworkloads. Wenn Sie versuchen, einem Schema ein Vektorfeld hinzuzufügen und einen Fehler zu erhalten, ist es ein Ergebnis veralteter Dienste. In diesem Fall müssen Sie einen neuen Suchdienst erstellen, um das Vektorfeature auszuprobieren.

  • Suchdienste, die nach dem 3. April 2024 erstellt wurden, bieten höhere Kontingente für Vektorindizes. Wenn Sie über einen älteren Dienst verfügen, können Sie Ihren Dienst möglicherweise für höhere Vektorkontingente aktualisieren.

Azure KI-Suche ist tief in die Azure KI-Plattform integriert. In der folgenden Tabelle sind Produkte aufgeführt, die in Vektorworkloads nützlich sind.

Produkt Integration
Azure OpenAI Azure OpenAI bietet Einbettungsmodelle und Chatmodelle. Demos und Beispiele zielen auf das Texteinbettungs-ada-002-Modell ab. Es wird empfohlen, Azure OpenAI zum Generieren von Einbettungen für Text zu verwenden.
Gießereiausrüstung Bildabruf-Vektorize-Bild-API unterstützt die Vektorisierung von Bildinhalten. Wir empfehlen diese API zum Generieren von Einbettungen für Bilder.
Gießerei-Agentendienst In Azure KI-Suche können Sie eine indexed knowledge source erstellen, die auf einen Suchindex verweist, der Vektorfelder und einen Vektorisierer enthält. Anschließend können Sie die Wissensquelle zu einer Wissensbasis überziehen und die Wissensbasis mit dem Foundry Agent Service verbinden und Ihren Agenten Vektorsuchergebnisse für einen verbesserten Wissensabruf bereitstellen.
Azure Datenplattformen: Azure Blob Storage, Azure Cosmos DB, Azure SQL, Microsoft OneLake Mithilfe von Indexern können Sie die Erfassung von Daten automatisieren und dann die integrierte Vektorisierung verwenden, um Einbettungen zu generieren. Azure KI-Suche kann Vektordaten automatisch aus Azure Blob-Indexern, Azure Cosmos DB für NoSQL-Indexern, Azure Data Lake Storage Gen2, Azure Table Storage und Microsoft OneLake indexieren. Weitere Informationen finden Sie unter Hinzufügen von Vektorfeldern zu einem Suchindex.

Es wird auch häufig in Open-Source-Frameworks wie LangChain verwendet.