KI-Anreicherung in Azure Cognitive Search

KI-Anreicherung ist die Anwendung von Modellen für maschinelles Lernen auf Inhalte, die in ihrer Rohform nicht im Volltext durchsuchbar sind. Durch Anreicherung, Analyse und Inferenz werden durchsuchbare Inhalte und Strukturen geschaffen, wo vorher keine vorhanden waren.

Da Azure Cognitive Search eine Lösung für die Volltextsuche ist, besteht der Zweck der KI-Anreicherung darin, das Hilfsprogramm Ihrer Inhalte in suchbezogenen Szenarien zu verbessern:

  • Übersetzungs- und Spracherkennung für mehrsprachige Suche
  • Die Erkennung von Entitäten extrahiert Personen, Orte und sonstige Entitäten aus großen Textblöcken
  • Schlüsselbegriffserkennung identifiziert und gibt dann wichtige Begriffe aus
  • Die optische Zeichenerkennung (OCR) erkennt gedruckten und handschriftlichen Text in Binärdateien
  • Bildanalyse beschreibt Bildinhalte und gibt die Beschreibungen als durchsuchbare Textfelder aus

Die KI-Anreicherung ist eine Erweiterung einer Indexerpipeline. Eine Anreicherungspipeline enthält alle Komponenten einer Indexerpipeline (Indexer, Datenquelle, Index) sowie ein skillset, das atomare Anreicherungsschritte angibt.

Das folgende Diagramm zeigt den Fortschritt der KI-Anreicherung:

Das Diagramm einer Anreicherungspipeline

Importieren ist der erste Schritt. Hier stellt der Indexer eine Verbindung mit einer Datenquelle her und pullt Inhalte (Dokumente) in den Suchdienst. Azure Blob Storage ist die am häufigsten verwendete Ressource in KI-Anreicherungsszenarien, aber jede unterstützte Datenquelle kann Inhalte bereitstellen.

Index & anreichern umfasst das meiste der KI-Anreicherungspipeline:

  • Die Anreicherung beginnt, wenn der Indexer „Dokumente bricht“ und Bilder und Text extrahiert. Die Art der Verarbeitung, die als Nächstes auftritt, hängt von Ihren Daten ab und welche Fertigkeiten Sie zu einem Skillset hinzugefügt haben. Wenn Sie Bilder haben, können sie an Fertigkeiten weitergeleitet werden, die die Bildverarbeitung ausführen. Textinhalte werden für die Verarbeitung von Text und natürlicher Sprache in eine Warteschlange gestellt. Intern erstellen Fertigkeiten ein „angereichtertes Dokument“, das die Transformationen erfasst, während sie auftreten.

  • Angereicherte Inhalte werden während der Ausführung des Skillsets generiert und sind temporär, es sei denn, Sie speichern sie. Sie können einen Anreicherungs-Cache aktivieren, um geknackte Dokumente und Skill-Ausgaben für die spätere Wiederverwendung bei zukünftigen Skillset-Ausführungen beizubehalten.

  • Um Inhalte in einen Suchindex zu bekommen, muss der Indexer über Zuordnungsinformationen verfügen, um angereicherte Inhalte an das Zielfeld zu senden. Feldzuordnungen (explizit oder implizit) legen den Datenpfad von Quelldaten zu einem Suchindex fest. Ausgabefeld-Zuordnungen legen den Datenpfad von angereicherten Dokumenten zu einem Index fest.

  • Die Indizierung ist der Prozess, bei dem rohe und angereicherte Inhalte in die physischen Datenstrukturen eines Suchindex (seine Dateien und Ordner) aufgenommen werden. Lexikalische Analyse und Tokenisierung erfolgen in diesem Schritt.

Erkundung ist der letzte Schritt. Die Ausgabe ist immer ein Suchindex, den Sie aus einer Client-App abfragen können. Die Ausgabe kann optional ein Wissensspeicher sein, der aus Blobs und Tabellen in Azure Storage besteht, auf die über Datenexplorierungstools oder nachgelagerte Prozesse zugegriffen wird. Wenn Sie einen Wissensspeicher erstellen, bestimmen Projektionen den Datenpfad für angereicherte Inhalte. Derselbe angereicherte Inhalt kann sowohl in Indizes als auch in Wissensspeichern erscheinen.

Einsatzgebiete der KI-Anreicherung

Die Anreicherung ist hilfreich, wenn es sich bei Ihren unformatierten Inhalten um unstrukturierten Text, um Bildinhalte oder um Inhalte handelt, für die Spracherkennung und -übersetzung benötigt werden. Die Anwendung von KI durch die eingebauten Fertigkeiten kann diese Inhalte für die Volltextsuche und Data-Science-Anwendungen erschließen.

Sie können auch benutzerdefinierte Fähigkeiten für die externe Bearbeitung erstellen. Open-Source-Code oder Code von Drittanbietern oder Erstanbietern kann als benutzerdefinierte Fertigkeit in die Pipeline integriert werden. Zu dieser Kategorie gehören Klassifizierungsmodelle, mit denen wichtige Merkmale verschiedener Dokumenttypen identifiziert werden. Es könnte aber jedes beliebige externe Paket verwendet werden, das den Nutzen Ihrer Inhalte erhöht.

Anwendungsfälle für integrierte Skills

Integrierte Fertigkeiten basieren auf den folgenden Cognitive Services-APIs: Maschinelles Sehen und Sprachdienst. Sofern Ihr eingegebener Inhalt nicht gering ist, sollten Sie für die Ausführung größerer Workloads eine abrechenbare Cognitive Services-Ressource anfügen.

Ein Skillset mit integrierten Fähigkeiten eignet sich sehr gut für die folgenden Anwendungsszenarien:

Anwendungsfälle für benutzerdefinierte Skills

Benutzerdefinierte Fertigkeiten führen externen Code aus, den Sie bereitstellen. Benutzerdefinierte Fähigkeiten können komplexere Szenarien unterstützen, z. B. das Erkennen von Formularen oder die benutzerdefinierte Entitätserkennung mithilfe eines Modells, das Sie bereitstellen und in der benutzerdefinierten Skills-Webschnittstelle umschließen. Einige Beispiele für benutzerdefinierte Fertigkeiten sind:

Benutzerdefinierte Fertigkeiten sind nicht immer komplex. Wenn Sie z. B. über ein bestehendes Paket verfügen, das einen Musterabgleich oder ein Dokumentenklassifizierungsmodell bereitstellt, können Sie es mit einer benutzerdefinierten Fertigkeit umschließen.

Speichern der Ausgabe

In Azure Cognitive Search speichert ein Indexer die von ihm erstellte Ausgabe. Ein einzelner Indexer kann bis zu drei Datenstrukturen erstellen, die eine angereicherte und indizierte Ausgabe enthalten.

Datenspeicher Erforderlich Standort BESCHREIBUNG
durchsuchbarer Index Erforderlich Suchdienst Wird für die Volltextsuche und andere Abfrageformulare verwendet. Die Angabe eines Indexes ist eine Indexeranforderung. Indexinhalte werden aus den Fertigkeitsausgaben sowie allen Quellfeldern gefüllt, die direkt den Feldern im Index zugeordnet sind.
Wissensspeicher Optional Azure Storage Wird für nachgelagerte Apps wie Knowledge Mining oder Data Science verwendet. Ein Wissensspeicher wird durch ein Skillset definiert. Seine Definition bestimmt, ob Ihre angereicherten Dokumente als Tabellen oder Objekte (Dateien oder Blobs) in Azure Storage projiziert werden.
Anreicherungscache Optional Azure Storage Wird für Zwischenspeicher-Anreicherungen zum Wiederverwenden in nachfolgenden Skillset-Ausführungen verwendet. Der Cache speichert importierte, nicht verarbeitete Inhalte (gespaltene Dokumente). Er speichert auch die angereicherten Dokumente, die während der Skillset-Ausführung erstellt wurden. Das Zwischenspeichern ist hilfreich, wenn Ihr Skillset Bildanalyse oder OCR umfasst und Sie Zeit und Kosten für die erneute Verarbeitung von Bilddateien vermeiden möchten.

Indizes und Wissensspeicher sind vollständig unabhängig voneinander. Sie müssen zwar einen Index anfügen, um die Indexeranforderungen zu erfüllen, aber wenn Ihr einziges Ziel ein Wissensspeicher ist, können Sie den Index ignorieren, nachdem er aufgefüllt wurde. Löschen Sie ihn jedoch nicht. Wenn Sie den Indexer und das Skillset erneut ausführen möchten, benötigen Sie den Index, damit der Indexer ausgeführt werden kann.

Erkunden von Inhalten

Nachdem Sie einen Suchindex oder einen Wissensspeicher definiert und geladen haben, können Sie seine Daten erkunden.

Abfragen eines Suchindex

Führen Sie Abfragen aus, um auf die von der Pipeline generierten angereicherten Inhalte zuzugreifen. Der Index ist vergleichbar mit beliebigen anderen Indizes, die für Azure Cognitive Search erstellt werden können: Sie können Textanalyse durch benutzerdefinierte Analysen ergänzen, Fuzzysuchabfragen aufrufen, Filter hinzufügen oder zur Optimierung der Suchrelevanz mit Bewertungsprofilen experimentieren.

Verwenden von Datenexplorationstools für einen Wissensspeicher

In Azure Storage kann ein Wissensspeicher die folgenden Formen annehmen: Blobcontainer mit JSON-Dokumenten, Blobcontainer mit Bildobjekten oder Tabellen in Table Storage. Sie können Storage Explorer, Power BI oder eine beliebige App verwenden, die eine Verbindung mit Azure Storage herstellt, um auf Ihre Inhalte zuzugreifen.

  • Ein Blobcontainer erfasst angereicherte Dokumente in ihrer Gesamtheit, was nützlich ist, wenn Sie einen Feed für andere Prozesse erstellen.

  • Eine Tabelle ist nützlich, wenn Sie Segmente von angereicherten Dokumenten benötigen oder bestimmte Teile der Ausgabe ein- oder ausschließen möchten. Für die Analyse in Power BI sind Tabellen die empfohlene Datenquelle für die Datenuntersuchung und -visualisierung in Power BI.

Verfügbarkeit und Preismodell

Die Anreicherung ist in Regionen mit Azure Cognitive Services verfügbar. Auf der Seite Verfügbare Azure-Produkte nach Region können Sie die Verfügbarkeit der Anreicherung überprüfen. Die Anreicherung ist in allen Regionen mit Ausnahme der folgenden verfügbar:

  • Australien, Südosten
  • China, Norden 2
  • Deutschland, Westen-Mitte

Die Abrechnung folgt einem Preismodell mit nutzungsbasierter Bezahlung. Die Kosten für die Verwendung integrierter Fertigkeiten werden weitergegeben, wenn ein multiregionaler Cognitive Services-Schlüssel im Skillset angegeben ist. Auch bei der Bildextraktion fallen Kosten an, die von Cognitive Search berechnet werden. Fertigkeiten zur Textextraktion und Hilfsprogramme sind jedoch nicht abrechenbar. Weitere Informationen finden Sie unter Kosten von Azure Cognitive Search.

Prüfliste: Typischer Workflow

Eine Anreicherungspipeline besteht aus Indexern, die über bestimmte Skillsets verfügen. Nach der Indizierung können Sie einen Index abfragen, um Ihre Ergebnisse zu validieren.

Beginnen Sie mit einer Teilmenge von Daten in einer unterstützten Datenquelle. Die Entwicklung von Indexern und Skillsets ist ein iterativer Prozess. Mit einem kleinen repräsentativen Datensatz geht die Arbeit schneller.

  1. Erstellen Sie eine Datenquelle, die eine Verbindung zu Ihren Daten angibt.

  2. Erstellen eines Skillsets. Wenn Ihr Projekt nicht zu klein ist, sollten Sie Cognitive Services-Ressource anhängen. Wenn Sie einen Wissensspeicher erstellen, definieren Sie ihn im Rahmen des Skillsets.

  3. Erstellen Sie ein Indexschema, das einen Suchindex definiert.

  4. Erstellen Sie einen Indexer, der alle oben genannten Komponenten zusammenführt, und führen Sie ihn aus. Dieser Schritt ruft die Daten ab, führt das Skillset aus und lädt den Index.

    Ein Indexer ist auch der Ort, an dem Sie Feldzuordnungen und Ausgabefeldzuordnungen angeben, die den Datenpfad zu einem Suchindex einrichten.

    Optional können Sie das Anreicherungs-Caching aktivieren in der Indexer-Konfiguration. Mit diesem Schritt können Sie vorhandene Anreicherungen später wiederverwenden.

  5. Führen Sie Abfragen ausum die Ergebnisse zu bewerten, oderstarten Sie eine Debugging-Sitzung um Probleme mit dem Skill-Set zu lösen.

Um einen der oben genannten Schritte zu wiederholen, setzen Sie den Indexer zurück, bevor Sie ihn ausführen. Alternativ können Sie die Objekte bei jeder Ausführung löschen und neu erstellen (empfohlen, wenn Sie den Free-Tarif verwenden). Wenn Sie das Zwischenspeichern des Indexers aktiviert haben, wird der Cache abgerufen, wenn Daten unverändert an der Quelle bleiben und wenn Ihre Bearbeitungen an der Pipeline den Cache nicht ungültig machen.

Nächste Schritte