KI-Anreicherung in Azure Cognitive Search

In Azure Cognitive Search bezieht sich KI-Anreicherung auf integrierte kognitive Qualifikationen und benutzerdefinierte Qualifikationen, die während der Indizierung Analysen, Transformationen und die Generierung von Inhalten hinzufügen. Anreicherungen erstellen neue Informationen, wo bisher keine vorhanden waren: Extrahieren von Informationen aus Bildern, Erkennen von Stimmungen, Schlüsselausdrücke und Entitäten aus Text, um nur einige zu nennen. Anreicherungen fügen auch Struktur zu undifferenziertem Text hinzu. All diese Prozesse führen dazu, dass zuvor nicht durchsuchbare Inhalte für Volltextsuchszenarien verfügbar sind. In vielen Fällen sind angereicherte Dokumente für von der Suche abweichenden Szenarien nützlich, z. B. für das Knowledge Mining.

Die Anreicherung wird durch ein Skillset definiert, das an einen Indexer angefügt ist. Der Indexer extrahiert den Inhalt und richtet ihn ein, während das Skillset neue Informationen und Strukturen aus Bildern, Blobs und anderen unstrukturierten Datenquellen identifiziert, analysiert und erstellt. Das Ergebnis einer Anreicherungspipeline ist entweder ein Suchindex oder ein Wissensspeicher.

Enrichment pipeline diagram

Ein Skillset kann integrierte Skills aus Cognitive Search enthalten oder in einem benutzerdefinierten Skill bereitgestellte externe Verarbeitung einbetten. Zu Beispielen für benutzerdefinierte Skills zählen ein benutzerdefiniertes Entitätsmodul oder ein benutzerdefinierter Dokumentenklassifizierer, das bzw. der auf eine bestimmte Domäne ausgerichtet ist, wie z. B. Finanzen, wissenschaftliche Veröffentlichungen oder Medizin.

Bei eingebetteten Skills wird zwischen folgenden Kategorien unterschieden:

Eingebettete Skills in Azure Cognitive Search basieren auf vortrainierten Machine Learning-Modellen in Cognitive Services-APIs: Maschinelles Sehen und Sprachdienst. Wenn Sie diese Ressourcen während der Inhaltsverarbeitung nutzen möchten, können Sie eine Cognitive Services-Ressource anfügen.

Die Verarbeitung von natürlicher Sprache und Bildern wird während der Phase der Datenerfassung angewendet, wobei die Ergebnisse zu einem Teil einer Dokumentkomposition in einem durchsuchbaren Index in Azure Cognitive Search werden. Daten stammen aus einem Azure-Dataset und werden dann über eine Indizierungspipeline übertragen, indem jeweils die erforderlichen integrierten Fähigkeiten verwendet werden.

Verfügbarkeit von Funktionen

KI-Anreicherung ist in Regionen verfügbar, in denen auch Azure Cognitive Services verfügbar ist. Auf der Seite Verfügbare Azure-Produkte nach Region können Sie die aktuelle Verfügbarkeit von KI-Anreicherung überprüfen. KI-Anreicherung ist in allen unterstützten Regionen mit Ausnahme der folgenden verfügbar:

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

Wenn sich Ihr Suchdienst in einer dieser Regionen befindet, können Sie keine Skillsets erstellen und verwenden, aber alle anderen Suchdienstfunktionen sind verfügbar und werden vollständig unterstützt.

Einsatzgebiete der KI-Anreicherung

Sie sollten eine Anreicherung in Betracht ziehen, wenn es sich bei Ihren Rohinhalten um unstrukturierten Text, um Bildinhalte oder um Inhalte handelt, für die Spracherkennung und -übersetzung benötigt werden. Die Anwendung von KI in Form der integrierten kognitiven Qualifikationen kann den Nutzen dieser Inhalte in Ihren Such- und Data Science-Apps erhöhen.

Darüber hinaus können Sie auch eine benutzerdefinierte Qualifikation hinzufügen, wenn Sie über Open-Source-, Drittanbieter- oder Erstanbietercode verfügen, den Sie in die Pipeline integrieren möchten. Zu dieser Kategorie gehören Klassifizierungsmodelle, mit denen wichtige Merkmale verschiedener Dokumenttypen identifiziert werden. Es könnte aber jedes beliebige Paket verwendet werden, das den Nutzen Ihrer Inhalte erhöht.

Anwendungsfälle für integrierte Skills

Ein Skillset mit integrierten Skills eignet sich sehr gut für die folgenden Anwendungsszenarien:

  • Optische Zeichenerkennung (Optical Character Recognition, OCR), die Schriftarten und handschriftlichen Text in gescannten Dokumenten (JPEG) erkennt, ist möglicherweise der am häufigsten verwendete Skill. Durch Anfügen des OCR-Skills wird Text aus JPEG-Dateien identifiziert, extrahiert und erfasst.

  • Textübersetzung von mehrsprachigen Inhalten ist ein weiterer häufig verwendeter Skill. Die Spracherkennung ist in die Textübersetzung integriert, aber Sie können Sprachenerkennung auch unabhängig ausführen, wenn Sie nur die Sprachcodes des Inhalts in Ihrem Korpus wünschen.

  • PDF-Dateien mit Kombinationen aus Bild und Text. Texte in PDF-Dateien können während der Indizierung extrahiert werden, ohne dass die Schritte zur Anreicherung ausgeführt werden. Beim Hinzufügen von Bildverarbeitung und natürlicher Sprachverarbeitung erzielen Sie jedoch häufig ein besseres Ergebnis als bei einer Standardindizierung.

  • Unstrukturierte oder teilweise strukturierte Dokumente mit Inhalten, die eine inhärente Bedeutung oder einen Kontext haben, der im größeren Dokument ausgeblendet ist.

    Blobs enthalten häufig umfangreiche Inhalte, die in ein einzelnes „Feld“ gepackt sind. Durch das Anfügen von Fähigkeiten zur Bildverarbeitung und natürlicher Sprachverarbeitung an einen Indexer können Sie neue Informationen erstellen, die in den Rohdaten noch vorhanden sind, aber sonst nicht als unterschiedliche Felder aufgeführt werden. Einige einsatzbereite, integrierte kognitive Skills, die hilfreich sein können: Schlüsselbegriffserkennung und Entitätserkennung (Personen, Organisationen und Standorte, um einige zu nennen).

    Darüber hinaus können Sie mit integrierten Fähigkeiten Inhalte durch Textaufteilung, Textzusammenführung und Shape-Vorgänge neu strukturieren.

Anwendungsfälle für benutzerdefinierte Skills

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. Beispiele für benutzerdefinierte Fähigkeiten sind die Formularerkennung, die Integration der Bing-Entitätssuche-API und die Erkennung von benutzerdefinierten Entitäten.

Anreicherungsschritte

Eine Anreicherungspipeline besteht aus Indexern, die über bestimmte Skillsets verfügen. Ein Skillset definiert die Anreicherungsschritte, und der Indexer steuert das Skillset. Beim Konfigurieren eines Indexers können Sie verschiedene Eigenschaften einbeziehen. Dazu gehören beispielsweise Ausgabefeldzuordnungen, die angereicherte Inhalte an einen Suchindex senden, oder Projektionen, die Datenstrukturen in einem Wissensspeicher definieren.

Nach der Indizierung können Sie über Suchanforderungen über sämtliche von Azure Cognitive Search unterstützte Abfragetypen auf Inhalte zugreifen.

Schritt 1: Phase der Entschlüsselung von Verbindung und Dokument

Indexer stellen mithilfe von Informationen, die in einer Indexerdatenquelle bereitgestellt werden, eine Verbindung mit externen Quellen her. Wenn sich der Indexer mit der Ressource verbindet, „zerlegt“ er die Dokumente, um Text und Bilder zu extrahieren. Bildinhalte können an Skills weitergeleitet werden, die die Bildverarbeitung durchführen, während Textinhalte in die Warteschlange für die Textverarbeitung gestellt werden.

Document cracking phase

In diesem Schritt werden alle anfänglichen oder rohen Inhalte zusammengestellt, die eine KI-Anreicherung durchlaufen. Für jedes Dokument wird eine Anreicherungsstruktur erstellt. Anfänglich ist die Struktur nur eine Stammknotendarstellung, aber sie wächst und wird während der Ausführung des Skillsets strukturiert.

Schritt 2: Phase der Skillsetanreicherung

Ein Skillset definiert die atomaren Vorgänge, die für jedes Dokument ausgeführt werden. Für aus einer PDF-Datei extrahierten Texte und extrahierte Bilder, könnte ein Skillset beispielsweise die Entitätserkennung, die Sprachenerkennung oder die Schlüsselbegriffserkennung anwenden, um neue Felder in Ihrem Index zu erstellen, die nativ in der Quelle nicht verfügbar sind.

Enrichment phase

Eine Skillset kann minimal oder höchst komplex sein und bestimmt nicht nur den Verarbeitungstyp, sondern auch die Reihenfolge der Vorgänge. Die meisten Skillsets enthalten etwa drei bis fünf Skills.

Ein Skillset bietet zusammen mit den als Bestandteil eines Indexers definierten Ausgabefeldzuordnungen eine umfassende Beschreibung der Anreicherungspipeline. Weitere Informationen zum Zusammensetzen all dieser Teile finden Sie unter Definieren einer Fähigkeitengruppe.

Die Pipeline generiert intern eine Sammlung angereicherter Dokumente. Sie können entscheiden, welche Teile der angereicherten Dokumente indizierbaren Feldern in Ihrem Suchindex zugeordnet werden sollen. Wenn Sie beispielsweise die Fähigkeiten „Schlüsselbegriffserkennung“ und „Entitätserkennung“ angewendet haben, würden diese neuen Felder ein Bestandteil des angereicherten Dokuments und können Feldern in Ihrem Index zugeordnet werden. Weitere Informationen zu Eingabe-/Ausgabeformationen finden Sie unter Anmerkungen.

Schritt 3: Indizierung

Die Indizierung ist der Prozess, bei dem rohe und angereicherte Inhalte als Felder in einem Suchindex erfasst werden, bzw. als Projektionen, wenn auch ein Wissensspeicher erstellt wird. Derselbe angereicherte Inhalt kann in beiden angezeigt werden, indem er mithilfe von impliziten oder expliziten Feldzuordnungen an die richtigen Felder gesendet wird.

Angereicherte Inhalte werden während der Ausführung des Skillsets generiert und sind temporär, es sei denn, Sie speichern sie. Damit angereicherte Inhalte in einem Suchindex angezeigt werden, muss der Indexer über Zuordnungsinformationen verfügen, sodass er angereicherten Inhalt an ein Feld in einem Suchindex senden kann. Ausgabefeldzuordnungen stellen diese Verbindungen her.

Speichern der angereicherten Ausgabe

In Azure Cognitive Search speichert ein Indexer die von ihm erstellte Ausgabe.

Ein durchsuchbarer Index ist ein Index der Ausgaben, der immer von einem Indexer erstellt wird. Die Indexangabe ist eine Indexeranforderung, und wenn Sie ein Skillset anfügen, werden die Ausgabe des Skillsets und alle Felder, die direkt aus der Quelle zugeordnet werden, zum Auffüllen des Index verwendet. In der Regel werden die Ergebnisse bestimmter Skills, z. B. Schlüsselbegriffe oder Stimmungswerte, im Index in zu diesem Zweck erstellten Feldern erfasst.

Ein Wissensspeicher ist eine optionale Ausgabe, die für nachgeschaltete Apps wie Knowledge Mining verwendet wird. Ein Wissensspeicher wird durch ein Skillset definiert. Seine Definition bestimmt, ob Ihre angereicherten Dokumente als Tabellen oder Objekte (Dateien oder Blobs) projiziert werden. Tabellarische Projektionen eignen sich gut für interaktive Analysen in Tools wie Power BI, während Dateien und Blobs typischerweise in Data Science- oder ähnlichen Prozessen verwendet werden.

Schließlich kann ein Indexer für die potenzielle Wiederverwendung in nachfolgenden Skillsetausführungen angereicherte Dokumente in Azure Blob Storage zwischenspeichern. Der Cache dient zur internen Verwendung. Zwischengespeicherte Anreicherungen können von demselben Skillset verwendet werden, das Sie zu einem späteren Zeitpunkt erneut ausführen. 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.

Verwenden angereicherter Inhalte

Nach Abschluss der Verarbeitung verfügen Sie über einen Suchindex mit angereicherten Dokumenten, die mit Azure Cognitive Search im Volltext durchsucht werden können. Entwickler und Benutzer greifen über das Abfragen des Indexes auf den von der Pipeline generierten angereicherten Inhalt zu. 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.

Sie könnten auch einen Wissensspeicher verwenden. Der Wissensspeicher enthält Daten, die in Knowledge Mining-Szenarien wie Analysen oder Machine Learning genutzt werden können. Sie können den Storage Browser , Power BI oder jede Anwendung, die eine Verbindung zu Azure Storage herstellt.

Prüfliste: Typischer Workflow

  1. Beim Starten eines Projekts ist es hilfreich, zunächst mit einer Teilmenge von Daten zu arbeiten. Der Indexer- und Skillsetentwurf ist ein iterativer Prozess, und die Iteration erfolgt schneller, wenn Sie mit einem kleinen repräsentativen Datensatz arbeiten.

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

  3. Erstellen Sie ein Skillset zum Hinzufügen von Anreicherungen.

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

  5. Erstellen Sie einen Indexer, der alle oben genannten Komponenten zusammenführt. Der erstellte oder ausgeführte Indexer ruft die Daten ab, führt das Skillset aus und lädt den Index.

  6. Führen Sie zum Auswerten von Ergebnissen und zum Ändern von Code Abfragen aus, um Fähigkeitengruppen, Schemas oder die Indexerkonfiguration zu aktualisieren.

Zur Iteration der oben genannten Schritte setzen Sie den Indexer zurück, bevor Sie die Pipeline neu erstellen, oder löschen Sie die Objekte bei jeder Ausführung, und erstellen Sie sie neu (empfohlen, wenn Sie den Free-Tarif verwenden). Sie sollten auch die Zwischenspeicherung von Anreicherungen aktivieren, um vorhandene Anreicherungen nach Möglichkeit wiederzuverwenden.

Nächste Schritte