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.
Azure AI Search hostet keine Einbettungsmodelle, daher sind Sie für das Erstellen von Vektoren für Abfrageeingaben und -ausgaben verantwortlich. Wählen Sie einen der folgenden Ansätze aus:
Vorgehensweise | BESCHREIBUNG |
---|---|
Integrierte Vektorisierung | Verwenden Sie integrierte Datenblöcke und Vektorisierung in Azure AI Search. Bei diesem Ansatz wird eine Abhängigkeit von Indexern, Skillsets und integrierten oder benutzerdefinierten Fähigkeiten verwendet, die auf externe Einbettungsmodelle verweisen, z. B. solche in Azure AI Foundry. |
Manuelle Vektorisierung | Verwalten Sie Datenblöcke und Vektorisierung selbst. Für die Indizierung übertragen Sie prävectorisierte Dokumente in Vektorfelder in einem Suchindex. Bei der Abfrage stellen Sie vorkompilierte Vektoren für die Suchmaschine bereit. Demos dieses Ansatzes finden Sie im GitHub-Repository von Azure-search-vector-samples . |
Wir empfehlen die integrierte Vektorisierung für die meisten Szenarien. Obwohl Sie jedes unterstützte Einbettungsmodell verwenden können, verwendet dieser Artikel Azure OpenAI-Modelle zur Veranschaulichung.
Verwendung von Einbettungsmodellen in Vektorabfragen
Einbettungsmodelle generieren Vektoren für Abfrageeingaben und Abfrageausgaben. Abfrageeingaben umfassen:
Text oder Bilder, die während der Abfrageverarbeitung in Vektoren konvertiert werden. Im Rahmen der integrierten Vektorisierung führt ein Vektorizer diese Aufgabe aus.
Vorkompilierte Vektoren. Sie können diese Vektoren generieren, indem Sie die Abfrageeingabe an ein Einbettungsmodell Ihrer Wahl übergeben. Implementieren Sie die Wiederholungslogik in Ihrer Workload, um eine Zinsbegrenzung zu vermeiden. Unsere Python-Demo verwendet Unfähigkeit.
Basierend auf der Abfrageeingabe ruft die Suchmaschine übereinstimmende Dokumente aus Ihrem Suchindex ab. Bei diesen Dokumenten handelt es sich um die Abfrageausgabe.
Ihr Suchindex muss bereits Dokumente mit mindestens einem Vektorfeld enthalten, das durch Einbettungen gefüllt ist. Sie können diese Einbettungen über integrierte oder manuelle Vektorisierung erstellen. Um genaue Ergebnisse sicherzustellen, verwenden Sie dasselbe Einbettungsmodell für die Indizierung und Abfrage.
Tipps für die Integration des Einbettungsmodells
Identifizieren von Anwendungsfällen. Bewerten Sie bestimmte Anwendungsfälle, in denen die Integration des Einbettungsmodells für Vektorsuchfunktionen Ihrer Suchlösung einen Mehrwert bietet. Beispiele sind die multimodale Suche oder das Abgleichen von Bildinhalten mit Textinhalten, mehrsprachiger Suche und Ähnlichkeitssuche.
Entwerfen Sie eine Blockierungsstrategie. Einbettungsmodelle haben Grenzwerte für die Anzahl der Token, die sie akzeptieren, sodass datenblöcke für große Dateien erforderlich sind.
Optimieren Sie Kosten und Leistung. Die Vektorsuche ist ressourcenintensiv und unterliegt maximal zulässigen Grenzwerten. Vektorisieren Sie daher nur die Felder, die semantische Bedeutung enthalten. Reduzieren Sie die Vektorgröße , um weitere Vektoren für den gleichen Preis zu speichern.
Wählen Sie das richtige Einbettungsmodell aus. Wählen Sie ein Modell für Ihren Anwendungsfall aus, z. B. Worteinbettungen für textbasierte Suchvorgänge oder Bildeinbettungen für visuelle Suchvorgänge. Erwägen Sie vortrainierte Modelle, z. B. text-embedding-ada-002 aus OpenAI oder die Image Retrieval REST-API von Azure AI Vision.
Normalisieren Sie Vektorlängen. Um die Genauigkeit und Leistung der Ähnlichkeitssuche zu verbessern, normalisieren Sie Vektorlängen, bevor Sie sie in einem Suchindex speichern. Die meisten vortrainierten Modelle sind bereits normalisiert.
Optimieren Sie das Modell. Optimieren Sie bei Bedarf das Modell in Ihren domänenspezifischen Daten, um die Leistung und Relevanz ihrer Suchanwendung zu verbessern.
Testen und durchlaufen. Testen und verfeinern Sie kontinuierlich die Integration des Einbettungsmodells, um Ihre gewünschte Suchleistung und Benutzerzufriedenheit zu erzielen.
Erstellen von Ressourcen in der gleichen Region
Obwohl die integrierte Vektorisierung mit Azure OpenAI-Einbettungsmodellen keine Ressourcen in derselben Region erfordert, kann die Verwendung derselben Region die Leistung verbessern und die Latenz verringern.
So verwenden Sie dieselbe Region für Ihre Ressourcen:
Überprüfen Sie die regionale Verfügbarkeit von Texteinbettungsmodellen.
Überprüfen Sie die regionale Verfügbarkeit von Azure AI Search.
Erstellen Sie eine Azure OpenAI-Ressource und einen Azure AI Search-Dienst in derselben Region.
Tipp
Möchten Sie die semantische Rangfolge für Hybridabfragen oder ein Machine Learning-Modell in einer benutzerdefinierten Fähigkeit zur KI-Anreicherung verwenden? Wählen Sie einen Azure AI Search-Bereich aus, der diese Features bereitstellt.
Auswählen eines Einbettungsmodells in Azure AI Foundry
Wenn Sie einem Agentworkflow im Azure AI Foundry-Portal Wissen hinzufügen, haben Sie die Möglichkeit, einen Suchindex zu erstellen. Ein Assistent führt Sie durch die Schritte.
Ein Schritt umfasst die Auswahl eines Einbettungsmodells zum Vektorisieren des Nur-Text-Inhalts. Die folgenden Modelle werden unterstützt:
- text-embedding-3-small
- text-embedding-3-large
- text-embedding-ada-002
- Cohere-embed-v3-english
- Cohere-embed-v3-multilingual
Ihr Modell muss bereits bereitgestellt werden, und Sie müssen über die Berechtigung zum Zugriff verfügen. Weitere Informationen finden Sie in der Bereitstellungsübersicht für Azure AI Foundry-Modelle.
Generieren einer Einbettung für eine improvisierte Abfrage
Wenn Sie keine integrierte Vektorisierung verwenden möchten, können Sie eine Einbettung manuell generieren und in die vectorQueries.vector
Eigenschaft einer Vektorabfrage einfügen. Weitere Informationen finden Sie unter Erstellen einer Vektorabfrage in Azure AI Search.
In den folgenden Beispielen wird davon ausgegangen, dass das Modell "text-embedding-ada-002" verwendet wird. Ersetzen Und YOUR-API-KEY
YOUR-OPENAI-RESOURCE
durch Ihre Azure OpenAI-Ressourcendetails.
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
static async Task Main(string[] args)
{
var apiKey = "YOUR-API-KEY";
var apiBase = "https://YOUR-OPENAI-RESOURCE.openai.azure.com";
var apiVersion = "2024-02-01";
var engine = "text-embedding-ada-002";
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
var requestBody = new
{
input = "How do I use C# in VS Code?"
};
var response = await client.PostAsync(
$"{apiBase}/openai/deployments/{engine}/embeddings?api-version={apiVersion}",
new StringContent(JsonConvert.SerializeObject(requestBody), Encoding.UTF8, "application/json")
);
var responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
Die Ausgabe ist ein Vektorarray von 1.536 Dimensionen.