KI-Anreicherung in Azure Cognitive Search
KI-Anreicherungist die Anwendung von Modellen des Machine Learning auf Inhalte, die nicht in ihrer Rohform als Volltext durchsuchbar sind. Durch Anreicherung, Analyse und Rückschlüsse werden durchsuchbare Inhalte und Strukturen geschaffen, die vorher nicht existierten.
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:
- Übersetzung und Spracherkennung für die 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 handgeschriebenen Text in Binärdateien
- Bildanalyse beschreibt Bildinhalte und gibt die Beschreibungen als durchsuchbare Textfelder aus
Die KI-Anreicherung ist eine Erweiterung einer Indexerpipeline. Eine Enrichment-Pipeline hat alle Komponenten einer Indexer-Pipeline (Indexer, Datenquelle, Index) und zusätzlich ein Skillset,das atomare Anreicherungsschritte festlegt.
Das folgende Diagramm zeigt den Fortschritt der KI-Anreicherung:
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 Enrichment-Cache aktivieren, um geknackte Dokumente und Skill-Outputs für eine spätere Wiederverwendung bei zukünftigen Skillset-Ausführungen aufzubewahren.
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.
Indizierung ist der Prozess, bei dem roher und angereicherte Inhalte in einem 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. Die gleichen angereicherte Inhalte können sowohl in Indizes als auch in Wissensspeichern angezeigt werden.
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:
Zu den Funktionen der Bildverarbeitung gehören Optical Character Recognition (OCR) und die Identifizierung von visuellen Merkmalen, wie z. B. Gesichtserkennung, Bildinterpretation, Bilderkennung (berühmte Personen und Wahrzeichen) oder Attribute wie Bildausrichtung. Diese Funktionen erstellen Textdarstellungen von Bildinhalten für die Volltextsuche in Azure Cognitive Search.
Die Maschinenübersetzung wird durch die Fertigkeit Textübersetzung bereitgestellt, oft gepaart mit Spracherkennung für mehrsprachige Lösungen.
Natürliche Sprachverarbeitung analysiert Textblöcke. Fertigkeiten in dieser Kategorie umfassen die Entitätserkennung, die Stimmungserkennung (einschließlich Opinion Mining) und die Erkennung personenbezogener Informationen. Mit diesen Fähigkeiten wird unstrukturierter Text in Form von durchsuchbaren und filterbaren Feldern in einem Index zugeordnet.
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.
Erstellen Sie eine Datenquelle, die eine Verbindung zu Ihren Daten angibt.
Erstellen eines Skillsets. Wenn Ihr Projekt nicht zu klein ist, sollten Sie attach a Cognitive Services resource. Wenn Sie einen Wissensspeicher erstellen, definieren Sie ihn im Rahmen des Skillsets.
Erstellen Sie ein Indexschema, das einen Suchindex definiert.
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 Enrichment Caching in der Indexer-Konfiguration aktivieren. Mit diesem Schritt können Sie vorhandene Anreicherungen später wiederverwenden.
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.