Generieren von Einbettungen für Suchabfragen und Dokumente

Azure KI Search hostet keine Vektorisierungsmodelle. Daher besteht eine Ihrer Herausforderungen darin, Einbettungen für Abfrageeingaben und -ausgaben zu erstellen. Sie können ein beliebiges Einbettungsmodell verwenden. In diesem Artikel werden allerdings Azure OpenAI-Einbettungsmodelle verwendet. Bei den Demos im Beispielrepository werden die Ähnlichkeitseinbettungsmodelle von Azure OpenAI genutzt.

Dimensionsattribute haben mindestens 2 und maximal 3072 Dimensionen pro Vektorfeld.

Hinweis

Dieser Artikel bezieht sich auf die allgemein verfügbare Version der Vektorsuche, und es wird davon ausgegangen, dass Ihr Anwendungscode eine externe Ressource wie etwa Azure OpenAI für die Vektorisierung aufruft. Ein neues Feature namens integrierte Vektorisierung befindet sich derzeit in der Vorschauphase und bietet eine eingebettete Vektorisierung. Die integrierte Vektorisierung ist von Indexern, Skillsets und entweder vom Skill „AzureOpenAIEmbedding“ oder von einem benutzerdefinierten Skill abhängig, der auf ein Modell verweist, das extern über Azure KI Search ausgeführt wird.

Verwendung von Modellen

  • Für Abfrageeingaben müssen benutzerseitig bereitgestellte Eingaben an ein Einbettungsmodell übermittelt werden, das den für Menschen lesbaren Text schnell in einen Vektor konvertiert.

    • Sie können z. B. text-embedding-ada-002 verwenden, um Texteinbettungen zu generieren, und für Bildeinbettungen kann die Bildabruf-REST-API verwendet werden.

    • Zur Vermeidung einer Ratenbegrenzung können Sie Wiederholungslogik in Ihrer Workload implementieren. Für die Python-Demo wurde tenacity verwendet.

  • Abfrageausgaben sind alle übereinstimmenden Dokumente, die in einem Suchindex gefunden werden. Ihr Suchindex muss zuvor mit Dokumenten geladen worden sein, die über mindestens ein Vektorfeld mit Einbettungen verfügen. Verwenden Sie für Abfragen das gleiche Modell wie für die Indizierung.

Erstellen von Ressourcen in der gleichen Region

Wenn sich Ressourcen in der gleichen Region befinden sollen, beginnen Sie mit Folgendem:

  1. Einer Region für das Ähnlichkeitseinbettungsmodell (derzeit in Europa und in den USA)

  2. Einer Region für Azure KI Search

  3. Wenn Sie Hybridabfragen mit semantischer Rangfolge unterstützen oder die Integration eines Machine Learning-Modells mithilfe eines benutzerdefinierten Skills in einer KI-Anreicherungspipeline ausprobieren möchten, achten Sie darauf, in welchen Regionen diese Features bereitgestellt werden.

Generieren einer Einbettung für eine improvisierte Abfrage

Der folgende Python-Code erzeugt eine Einbettung, die Sie in die Eigenschaft „Werte“ einer Vektorabfrage einfügen können.

!pip install openai==0.28.1

import openai

openai.api_type = "azure"
openai.api_key = "YOUR-API-KEY"
openai.api_base = "https://YOUR-OPENAI-RESOURCE.openai.azure.com"
openai.api_version = "2023-05-15"

response = openai.Embedding.create(
    input="How do I use Python in VSCode?",
    engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)

Tipps und Empfehlungen für die Einbettungsmodellintegration

  • Identifizieren von Anwendungsfällen: Bewerten Sie die spezifischen Anwendungsfälle, in denen die Einbettungsmodellintegration für Vektorsuchfeatures einen Mehrwert für Ihre Suchlösung generiert. Beispiele wären etwa der Abgleich von Bildinhalten mit Textinhalten, sprachübergreifende Suchvorgänge oder die Suche nach ähnlichen Dokumenten.
  • Optimieren der Kosten und der Leistung: Die Vektorsuche kann ressourcenintensiv sein, und es gelten Obergrenzen. Vektorisieren Sie daher nur Felder mit semantischer Bedeutung.
  • Auswählen des richtigen Einbettungsmodells: Wählen Sie ein geeignetes Modell für Ihren spezifischen Anwendungsfall aus, z. B. Worteinbettungen für textbasierte Suchvorgänge oder Bildeinbettungen für visuelle Suchvorgänge. Nutzen Sie ggf. vortrainierte Modelle wie text-embedding-ada-002 aus OpenAI oder die Bildabruf-REST-API aus Maschinelles Sehen von Azure KI.
  • Normalisieren von Vektorlängen: Normalisieren Sie die Vektorlängen vor der Speicherung im Suchindex, um die Genauigkeit und Leistung der Ähnlichkeitssuche zu verbessern. Die meisten vortrainierten Modelle sind bereits normalisiert (aber nicht alle).
  • Optimieren des Modells: Optimieren Sie bei Bedarf das ausgewählte Modell mit Ihren domänenspezifischen Daten, um die Leistung und Relevanz ihrer Suchanwendung zu verbessern.
  • Testen und Durchlaufen: Testen und optimieren Sie ihre Einbindungsmodellintegration kontinuierlich, um die gewünschte Suchleistung und Benutzerzufriedenheit zu erzielen.

Nächste Schritte