Teilen über


Integrierte Datenblockerstellung und Einbettung in Azure KI Search

Wichtig

Integrierte Datenblockerstellung und Vektorisierung befinden sich in der öffentlichen Vorschau unter Ergänzende Nutzungsbedingungen. Die REST-API „2023-10-01-Preview“ stellt dieses Feature bereit.

Die integrierte Vektorisierung ist eine Erweiterung der Indizierungs- und Abfragepipelines in Azure KI-Suche. Sie fügt die folgenden Funktionen hinzu:

  • Datensegmentierung während der Indizierung
  • Text-zu-Vektor-Konvertierung während der Indizierung
  • Text-zu-Vektor-Konvertierung während Abfragen

Datensegmentierung ist keine zwingende Anforderung, aber sofern Ihre Rohdokumente nicht klein sind, ist eine Segmentierung erforderlich, um die Anforderungen von Einbettungsmodellen an die Tokeneingabe zu erfüllen.

Ein wichtiger Vorteil besteht darin, dass die integrierte Vektorisierung die Entwicklung beschleunigt und Wartungsaufgaben während der Datenerfassung und Abfragezeit minimiert, da weniger externe Komponenten zum Konfigurieren und Verwalten vorhanden sind.

Vektorkonvertierungen sind unidirektional. Das bedeutet, Text wird in einen Vektor konvertiert. Es gibt keine Vektor-zu-Text-Konvertierung für Abfragen oder Ergebnisse. So ist es beispielsweise nicht möglich, ein Vektorergebnis in eine für Menschen lesbare Zeichenfolge zu konvertieren.

Verwenden der integrierten Vektorisierung während der Indizierung

Für die Datensegmentierung und für Text-zu-Vektor-Konvertierungen richten Sie eine Abhängigkeit von folgenden Komponenten ein:

Verwenden der integrierten Vektorisierung in Abfragen

Für die Text-zu-Vektor-Konvertierung während Abfragen richten Sie eine Abhängigkeit von folgenden Komponenten ein:

  • Einen im Indexschema definierten Vektorisierung, der einem Vektorfeld zugewiesen ist und automatisch zur Abfragezeit verwendet wird, um eine Textabfrage in einen Vektor zu konvertieren.
  • Eine Abfrage, die mindestens ein Vektorfeld angibt.
  • Eine Textzeichenfolge, die zur Abfragezeit in einen Vektor konvertiert wird.

Komponentendiagramm

Das folgende Diagramm zeigt die Komponenten der integrierten Vektorisierung.

Diagramm der Komponenten in einem integrierten Vektorisierungsworkflow.

Der Workflow ist eine Indexerpipeline. Indexer rufen Daten aus unterstützten Datenquellen ab und initiieren eine Datenanreicherung (oder angewendete KI), indem Azure OpenAI- oder Azure KI-Dienste oder benutzerdefinierter Code für Text-zu-Vektor-Konvertierungen oder andere Verarbeitungen aufgerufen werden.

Das Diagramm konzentriert sich auf die integrierte Vektorisierung. Ihre Lösung ist jedoch nicht auf diese Liste beschränkt. Sie können weitere Skills für die KI-Anreicherung hinzufügen, einen Wissensspeicher erstellen und eine semantische Rangfolge sowie Relevanzoptimierung und weitere Abfragefeatures hinzufügen.

Verfügbarkeit und Preismodell

Integrierte Vektorisierung ist in allen Regionen und Ebenen verfügbar. Wenn Sie jedoch Azure OpenAI und den AzureOpenAIEmbedding-Skill verwenden, überprüfen Sie die regionale Verfügbarkeit dieses Diensts.

Wenn Sie einen benutzerdefinierten Skill und einen Azure-Hostingmechanismus (z. B. eine Azure Functions-App, eine Azure-Web-App und Azure Kubernetes) verwenden, überprüfen Sie auf der Seite mit Produkten nach Region die Verfügbarkeit der Features.

Die Datenblockerstellung (Textaufteilungsskill) ist kostenlos und für alle Azure KI-Dienste in allen Regionen verfügbar.

Hinweis

Einige ältere Suchdienste, die vor dem 1. Januar 2019 erstellt wurden, werden in einer Infrastruktur bereitgestellt, die keine Vektorworkloads unterstützt. Wenn beim Hinzufügen eines Vektorfelds zu einem Schema ein Fehler auftritt, liegt das an veralteten Diensten. In diesem Fall müssen Sie einen neuen Suchdienst erstellen, um das Vektorfeature ausprobieren zu können.

Welche Szenarien werden von der integrierten Vektorisierung unterstützt?

  • Unterteilen Sie große Dokumente in Blöcke. Die ist sowohl in Vektor- als auch in Szenarien, in denen keine Vektoren zum Einsatz kommen, nützlich. Bei Vektoren helfen Blöcke dabei, die Eingabeeinschränkungen von Einbettungsmodellen zu erfüllen. Bei Szenarien, in denen keine Vektoren verwendet werden, verfügen Sie möglicherweise über eine Such-App im Chatstil, in der GPT Antworten aus indizierten Blöcken zusammenfügt. Sie können vektorisierte oder nicht vektorisierte Blöcke für die Suche im Chatstil verwenden.

  • Erstellen Sie einen Vektorspeicher, in dem alle Felder Vektorfelder sind und die Dokument-ID (die für einen Suchindex benötigt wird) das einzige Zeichenfolgenfeld ist. Fragen Sie den Vektorspeicher ab, um Dokument-IDs abzurufen, und senden Sie dann die Vektorfelder des Dokuments an ein anderes Modell.

  • Kombinieren Sie Vektor- und Textfelder für die Hybridsuche (mit oder ohne semantische Rangfolge). Die integrierte Vektorisierung vereinfacht alle Szenarien, die von der Vektorsuche unterstützt werden.

Mögliche Anwendungsbereiche der integrierten Vektorisierung

Wir empfehlen, die integrierte Vektorisierungsunterstützung von Azure KI Studio zu nutzen. Sollte dieser Ansatz für Ihre Anforderungen nicht geeignet sein, können Sie Indexer und Skillsets erstellen, die die integrierte Vektorisierung über die programmgesteuerten Schnittstellen von Azure KI Search aufrufen.

Verwenden der integrierten Vektorisierung

Reine Abfragevektorisierung:

  1. Fügen Sie einem Index eine Vektorisierung hinzu. Verwenden Sie dabei das gleiche Einbettungsmodell, das auch zum Generieren von Vektoren im Index verwendet wird.
  2. Weisen Sie den Vektorisierer einem Vektorprofil zu, und weisen Sie dann dem Vektorfeld ein Vektorprofil zu.
  3. Formulieren Sie eine Vektorabfrage, die die zu vektorisierende Textzeichenfolge angibt.

Ein allgemeines Szenario: Datenblockerstellung und Vektorisierung während der Indizierung:

  1. Erstellen Sie eine Datenquellenverbindung mit einer unterstützten Datenquelle für die indexerbasierte Indizierung.
  2. Erstellen Sie ein Skillset, das den Textaufteilungsskill für die Blockerstellung und AzureOpenAIEmbeddingModel oder einen benutzerdefinierten Skill zum Vektorisieren der Blöcke aufruft.
  3. Erstellen Sie einen Index, der eine Vektorisierung für die Abfragezeit angibt, und weisen Sie ihn Vektorfeldern zu.
  4. Erstellen Sie einen Indexer, um das Ganze zu steuern – vom Datenabruf über die Skillsetausführung bis hin zur Indizierung.

Erstellen Sie sekundäre Indizes (optional) für erweiterte Szenarien, in denen sich der in Blöcke aufgeteilte Inhalt in einem Index und der nicht in Blöcke aufgeteilte Inhalt in einem anderen Index befindet. In Blöcke aufgeteilte Indizes (oder sekundäre Indizes) sind für RAG-Apps nützlich.

Tipp

Testen Sie den neuen Assistenten zum Importieren und Vektorisieren von Daten im Azure-Portal, um sich mit der integrierten Vektorisierung vertraut zu machen, bevor Sie Code schreiben.

Sichere Verbindungen mit Vektorisierern und Modellen

Wenn Ihre Architektur private Verbindungen erfordert, die das Internet umgehen, können Sie eine freigegebene private Linkverbindung mit den einbettenden Modellen erstellen, die während der Indizierung und Vektorisierer zur Abfragezeit von Fähigkeiten verwendet werden.

Gemeinsame private Links funktionieren nur für Azure-zu-Azure-Verbindungen. Wenn Sie eine Verbindung mit OpenAI oder einem anderen externen Modell herstellen, muss die Verbindung über das öffentliche Internet erfolgen.

Für Vektorisierungsszenarien können Sie Folgendes verwenden:

  • openai_account zum Einbetten von Modellen, die in einer Azure OpenAI-Ressource gehostet werden.

  • sites zum Einbetten von Modellen, auf die als benutzerdefinierte Fähigkeiten oder benutzerdefinierte Vektorisierer zugegriffen wird. Die sites Gruppen-ID gilt für App-Dienste und Azure-Funktionen, mit denen Sie ein Einbettungsmodell hosten können, das keines der Azure OpenAI-Einbettungsmodelle ist.

Begrenzungen

Machen Sie sich mit den Azure OpenAI-Kontingenten und -Grenzwerten für das Einbetten von Modellen vertraut. Azure KI Search verfügt zwar über Wiederholungsrichtlinien, aber wenn das Kontingent erschöpft ist, sind Wiederholungen nicht erfolgreich.

Azure OpenAI-Grenzwerte für Token pro Minute gelten pro Modell und Abonnement. Behalten Sie dies im Hinterkopf, wenn Sie ein Einbettungsmodell für Abfrage- und Indizierungsworkloads verwenden. Halten Sie sich nach Möglichkeit an die bewährten Methoden. Verwenden Sie ein Einbettungsmodell für jede Workload, und versuchen Sie, sie in verschiedenen Abonnements bereitzustellen.

Vergessen Sie nicht, dass in Azure KI Search Diensteinschränkungen nach Ebene und Workloads gelten.

Folgende Features werden außerdem derzeit nicht unterstützt:

Vorteile der integrierten Vektorisierung

Hier sind einige der wichtigsten Vorteile der integrierten Vektorisierung:

  • Keine separate Pipeline für die Datenblockerstellung und Vektorisierung. Code ist einfacher zu schreiben und zu verwalten.

  • Automatisierte End-to-End-Indizierung. Wenn sich Daten in der Quelle ändern (z. B. in Azure Storage, Azure SQL oder Cosmos DB), kann der Indexer diese Aktualisierungen durch die gesamte Pipeline schicken – vom Abruf über die Dokumententschlüsselung bis hin zur optionalen KI-Anreicherung, Datenblockerstellung, Vektorisierung und Indizierung.

  • Projizieren von in Blöcke aufgeteilten Inhalten in sekundäre Indizes. Sekundäre Indizes werden wie jeder andere Suchindex als Schema mit Feldern und anderen Konstrukten erstellt, aber zusammen mit einem Primärindex durch einen Indexer aufgefüllt. Inhalte aus den einzelnen Quelldokumenten fließen während der gleichen Indizierungsausführung in Felder in primären und sekundären Indizes.

    Sekundäre Indizes sind für Apps im Frage- und Antwort- oder Chatstil vorgesehen. Der sekundäre Index enthält differenzierte Informationen für spezifischere Übereinstimmungen, aber der übergeordnete Index hat mehr Informationen und kann oft eine vollständigere Antwort liefern. Wenn eine Übereinstimmung im sekundären Index gefunden wird, gibt die Abfrage das übergeordnete Dokument aus dem primären Index zurück. Bei einem großen PDF-Dokument als Ausgangsdokument könnte der primäre Index beispielsweise grundlegende Informationen enthalten (Titel, Datum, Autor, Beschreibung), während ein sekundärer Index Blöcke des durchsuchbaren Inhalts enthält.

Nächste Schritte