Freigeben über


Tutorial: Auswählen von Einbettungs- und Chatmodellen für RAG in Azure KI-Suche

Eine RAG-Lösung, die auf Azure KI-Suche basiert, ist auf die Einbettung von Modellen für die Vektorisierung sowie auf Chatmodelle angewiesen, um Suchvorgänge für Ihre Daten in natürlicher Sprache durchführen zu können.

In diesem Tutorial:

  • Lernen, welche Modelle in der Azure-Cloud mit standardmäßiger Integration funktionieren
  • Kennenlernen der Azure-Modelle, die zum Chatten verwendet werden
  • Bereitstellen von Modellen und Sammeln von Modellinformationen für Ihren Code
  • Konfigurieren des Suchmaschinenzugriffs auf Azure-Modelle
  • Kennenlernen benutzerdefinierter Skills und Vektorisierer zum Anfügen Azure-fremder Modelle

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Voraussetzungen

  • Azure-Portal zum Bereitstellen von Modellen und Konfigurieren von Rollenzuweisungen in der Azure-Cloud

  • Eine Rolle vom Typ Besitzer oder Benutzerzugriffsadministrator für Ihr Azure-Abonnement. Diese wird zum Erstellen von Rollenzuweisungen benötigt. In diesem Tutorial verwenden Sie mindestens drei Azure-Ressourcen. Die Verbindungen werden mithilfe von Microsoft Entra ID authentifiziert. Dafür ist die Möglichkeit zum Erstellen von Rollen erforderlich. Rollenzuweisungen für das Herstellen einer Verbindung mit Modellen werden in diesem Artikel dokumentiert. Wenn Sie keine Rollen erstellen können, können Sie stattdessen API-Schlüssel verwenden.

  • Modellanbieter wie Azure OpenAI, Azure KI Vision über eine Azure KI-Ressource für mehrere Dienste oder Azure KI Foundry.

    In diesem Tutorial wird Azure OpenAI verwendet. Weitere Anbieter sind angegeben, damit Sie Ihre Optionen für die integrierte Vektorisierung kennen.

  • Azure KI-Suche (mindestens Basic-Tarif) bietet eine verwaltete Identität, die in Rollenzuweisungen verwendet wird.

  • Eine freigegebene Region. Für die Durchführung aller Tutorials in dieser Reihe muss die Region sowohl Azure KI-Suche als auch den Modellanbieter unterstützen. Unterstützte Regionen:

    Azure KI-Suche ist derzeit in einigen Regionen nur eingeschränkt verfügbar. Informieren Sie sich anhand der Regionsliste für Azure KI-Suche über den Regionsstatus.

Tipp

In diesem Artikel finden Sie eine Liste überlappender Regionen.

Überprüfen von Modellen, die integrierte Vektorisierung unterstützen

Vektorisierte Inhalte verbessern die Abfrageergebnisse in einer RAG-Lösung. Azure KI-Suche unterstützt eine integrierte Vektorisierungsaktion in einer Indizierungspipeline. Außerdem wird die Vektorisierung zur Abfragezeit unterstützt, um Text- oder Bildeingaben in Einbettungen für eine Vektorsuche zu konvertieren. Identifizieren Sie in diesem Schritt ein für Ihre Inhalte und Abfragen geeignetes Einbettungsmodell. Falls Sie rohe Vektordaten und rohe Vektorabfragen bereitstellen oder Ihre RAG-Lösung keine Vektordaten enthält, überspringen Sie diesen Schritt.

Vektorabfragen, die einen Text-zu-Vektor-Konvertierungsschritt enthalten, müssen das gleiche Einbettungsmodell verwenden, das auch bei der Indizierung verwendet wurde. Die Suchmaschine löst zwar keinen Fehler aus, wenn Sie unterschiedliche Modelle verwenden, Sie erhalten allerdings schlechte Ergebnisse.

Um die Anforderung der Verwendung des gleichen Modells zu erfüllen, wählen Sie Einbettungsmodelle aus, auf die während der Indizierung über Skills und während der Abfrageausführung über Vektorisierer verwiesen werden kann. In der folgenden Tabelle sind die Skill- und Vektorisierungspaare aufgeführt. Unter Erstellen einer Indizierungspipeline finden Sie Code, der einen Einbettungsskill und eine passende Vektorisierung aufruft, und sehen, wie Einbettungsmodelle verwendet werden.

Azure KI-Suche bietet Skill- und Vektorisiererunterstützung für die folgenden Einbettungsmodelle in der Azure-Cloud:

Client Einbetten von Modellen Fertigkeit Vektorisierung
Azure OpenAI text-embedding-ada-002,
text-embedding-3-large,
text-embedding-3-small
AzureOpenAIEmbedding AzureOpenAIEmbedding
Azure KI Vision multimodal 4.01 AzureAIVision AzureAIVision
Modellkatalog von Azure KI Foundry Facebook-DinoV2-Image-Embeddings-ViT-Base,
Facebook-DinoV2-Image-Embeddings-ViT-Giant,
Cohere-embed-v3-english,
Cohere-embed-v3-multilingual
AML2 Modellkatalog von Azure KI Foundry

1 Unterstützt Bild- und Textvektorisierung

2 Der Zugriff auf bereitgestellte Modelle im Modellkatalog erfolgt über einen AML-Endpunkt. Für diese Verbindung verwenden wir den vorhandenen AML-Skill.

Neben den hier aufgeführten Modellen können auch andere Modelle verwendet werden. Weitere Informationen finden Sie in diesem Artikel unter Verwenden Azure-fremder Modelle für Einbettungen.

Hinweis

Bei Eingaben für Einbettungsmodelle handelt es sich in der Regel um segmentierte Daten. In einem RAG-Muster für Azure KI-Suche wird die Segmentierung in der Indexerpipeline durchgeführt. Dies wird in einem anderen Tutorial dieser Reihe behandelt.

Überprüfen von Modellen, die für generative KI zur Abfragezeit verwendet werden

Azure KI-Suche verfügt über keinen Integrationscode für Chatmodelle. Wählen Sie daher ein LLM, mit dem Sie vertraut sind und das Ihre Anforderungen erfüllt. Sie können Abfragecode ändern, um verschiedene Modelle zu testen, ohne einen Index neu erstellen oder einen Teil der Indizierungspipeline erneut ausführen zu müssen. Unter Suchen und Generieren von Antworten finden Sie Code zum Aufrufen des Chatmodells.

Folgende Modelle werden häufig für eine chatbasierte Sucherfahrung verwendet:

Client Chatmodelle
Azure OpenAI GPT-35-Turbo,
GPT-4,
GPT-4o,
GPT-4 Turbo

GPT-35-Turbo- und GPT-4-Modelle sind für die Verwendung von Eingaben im Unterhaltungsstil optimiert.

In diesem Tutorial wird GPT-4o verwendet. Beim Testen haben wir festgestellt, dass es weniger wahrscheinlich ist, dass es seine eigenen Trainingsdaten ergänzt. Beispielsweise hat GPT-35-Turbo auf die Abfrage „Welcher Prozentsatz der Erde ist von Wasser bedeckt?“ mit dem integrierten Wissen über die Erde geantwortet, dass 71 % der Erde von Wasser bedeckt sind, auch wenn die Beispieldaten diese Tatsache nicht enthalten. Im Gegensatz dazu reagierte GPT-4o (richtig) mit „Ich weiß es nicht“.

Bereitstellen von Modellen und Sammeln von Informationen

Modelle müssen über einen Endpunkt bereitgestellt werden und zugänglich sein. Sowohl einbettungsbezogene Skills als auch Vektorisierer benötigen die Anzahl von Dimensionen und den Modellnamen.

In dieser Tutorialreihe werden die folgenden Modelle und Modellanbieter verwendet:

  • „Text-embedding-3-large“ in Azure OpenAI für Einbettungen
  • GPT-4o in Azure OpenAI für Chatvervollständigung

Sie müssen mindestens Mitwirkender für Cognitive Services OpenAI sein, um Modelle in Azure OpenAI bereitstellen zu können.

  1. Wechseln Sie zu Azure KI Foundry.

  2. Wählen Sie im linken Menü die Option Bereitstellungen aus.

  3. Wählen Sie Modell bereitstellen>Basismodell bereitstellen aus.

  4. Wählen Sie in der Dropdownliste die Option text-embedding-3-large aus, und bestätigen Sie die Auswahl.

  5. Geben Sie einen Namen für die Bereitstellung an. Wir empfehlen „text-embedding-3-large“.

  6. Übernehmen Sie die Standardeinstellungen.

  7. Klicken Sie auf Bereitstellen.

  8. Wiederholen Sie die vorherigen Schritte für gpt-4o.

  9. Notieren Sie sich die Modellnamen und den Endpunkt. Einbettungsskills und Vektorisierer bilden intern den vollständigen Endpunkt. Daher benötigen Sie lediglich den Ressourcen-URI. So muss beispielsweise bei https://MY-FAKE-ACCOUNT.openai.azure.com/openai/deployments/text-embedding-3-large/embeddings?api-version=2024-06-01 in Skill- und Vektorisiererdefinitionen der Endpunkt https://MY-FAKE-ACCOUNT.openai.azure.com angegeben werden.

Konfigurieren des Suchmaschinenzugriffs auf Azure-Modelle

Für die Pipeline- und Abfrageausführung werden in diesem Tutorial Microsoft Entra ID für die Authentifizierung und Rollen für die Autorisierung verwendet.

Weisen Sie sich selbst und der Suchdienstidentität Berechtigungen für Azure OpenAI zu. Der Code für dieses Tutorial wird lokal ausgeführt. Anforderungen an Azure OpenAI stammen aus Ihrem System. Außerdem werden Suchergebnisse aus der Suchmaschine an Azure OpenAI übergeben. Aus diesen Gründen benötigen sowohl Sie als auch der Suchdienst Berechtigungen für Azure OpenAI.

  1. Melden Sie sich beim Azure-Portal an, und finden Sie Ihren Suchdienst.

  2. Konfigurieren Sie Azure KI-Suche für die Verwendung einer systemseitig verwalteten Identität.

  3. Navigieren Sie zu Ihrer Azure OpenAI-Ressource.

  4. Wählen Sie im linken Menü die Option Zugriffssteuerung (IAM) aus.

  5. Wählen Sie Rollenzuweisung hinzufügen aus.

  6. Wählen Sie Cognitive Services OpenAI-Benutzer aus.

  7. Wählen Sie verwaltete Identität und dann Mitglieder aus. Navigieren Sie in der Dropdownliste zu der systemseitig verwalteten Identität für Ihren Suchdienst.

  8. Wählen Sie als Nächstes die Option Benutzer, Gruppe oder Dienstprinzipal und anschließend Mitglieder aus. Navigieren Sie in der Dropdownliste zu Ihrem Benutzerkonto, und wählen Sie es aus.

  9. Stellen Sie sicher, dass der Rolle zwei Sicherheitsprinzipale zugewiesen sind.

  10. Wählen Sie Überprüfen + zuweisen aus, um die Rollenzuweisungen zu erstellen.

Weisen Sie für den Zugriff auf Modelle in Azure KI Vision Cognitive Services OpenAI-Benutzer zu. Weisen Sie für Azure KI Foundry Azure KI-Entwickler zu.

Verwenden Azure-fremder Modelle für Einbettungen

Das Muster für die Integration eines beliebigen Einbettungsmodells besteht darin, es in einen benutzerdefinierten Skill und in einen benutzerdefinierten Vektorisierer einzuschließen. Dieser Abschnitt enthält Links zu Referenzartikeln. Ein Codebeispiel, in dem ein Azure-fremdes Modell aufgerufen wird, finden Sie in der Demo zu benutzerdefinierten Einbettungen.

Client Einbetten von Modellen Fertigkeit Vektorisierung
Any Any Benutzerdefinierter Skill benutzerdefinierter Vektorisierer

Nächster Schritt