„Daten, die in Text-, Audio-, Social-Media- und anderen unstrukturierten Quellen gespeichert sind, können ein Wettbewerbsvorteil für Unternehmen sein, die herausfinden, wie sie diese nutzen können.“
Nur 18% der Organisationen in a Umfrage 2019 von Deloitte gaben an, unstrukturierte Daten nutzen zu können. Bei den meisten Daten zwischen 80% und 90% handelt es sich um unstrukturierte Daten. Das ist eine große ungenutzte Ressource, die das Potenzial hat, Unternehmen einen Wettbewerbsvorteil zu verschaffen, wenn sie herausfinden, wie sie sie nutzen können. Es kann schwierig sein, aus diesen Daten Erkenntnisse zu gewinnen, insbesondere wenn Anstrengungen zur Klassifizierung, Kennzeichnung oder Kennzeichnung erforderlich sind. Die benutzerdefinierte Klassifizierung von Amazon Comprehend kann in dieser Situation hilfreich sein. Amazon Comprehend ist ein NLP-Dienst (Natural Language Processing), der maschinelles Lernen nutzt, um wertvolle Erkenntnisse und Zusammenhänge in Texten aufzudecken.
Die Kategorisierung oder Klassifizierung von Dokumenten bietet in allen Geschäftsbereichen erhebliche Vorteile –
- Verbesserte Suche und Abfrage – Durch die Kategorisierung von Dokumenten in relevante Themen oder Kategorien wird es für Benutzer viel einfacher, die benötigten Dokumente zu suchen und abzurufen. Sie können innerhalb bestimmter Kategorien suchen, um die Ergebnisse einzugrenzen.
- Wissensmanagement – Die systematische Kategorisierung von Dokumenten hilft bei der Organisation der Wissensdatenbank einer Organisation. Es erleichtert das Auffinden relevanter Informationen und das Erkennen von Zusammenhängen zwischen verwandten Inhalten.
- Optimierte Arbeitsabläufe – Die automatische Sortierung von Dokumenten kann dazu beitragen, viele Geschäftsprozesse wie die Bearbeitung von Rechnungen, den Kundensupport oder die Einhaltung gesetzlicher Vorschriften zu optimieren. Dokumente können automatisch an die richtigen Personen oder Arbeitsabläufe weitergeleitet werden.
- Kosten- und Zeitersparnis – Die manuelle Kategorisierung von Dokumenten ist mühsam, zeitaufwändig und teuer. KI-Techniken können diese alltägliche Aufgabe übernehmen und Tausende von Dokumenten in kurzer Zeit und zu deutlich geringeren Kosten kategorisieren.
- Generierung von Erkenntnissen – Die Analyse von Trends in Dokumentkategorien kann nützliche Geschäftseinblicke liefern. Beispielsweise könnte ein Anstieg der Kundenbeschwerden in einer Produktkategorie auf einige Probleme hinweisen, die behoben werden müssen.
- Governance und Durchsetzung von Richtlinien – Das Einrichten von Dokumentkategorisierungsregeln trägt dazu bei, sicherzustellen, dass Dokumente gemäß den Richtlinien und Governance-Standards einer Organisation korrekt klassifiziert werden. Dies ermöglicht eine bessere Überwachung und Prüfung.
- Personalisierte Erlebnisse – In Kontexten wie Website-Inhalten ermöglicht die Kategorisierung von Dokumenten, dass den Benutzern maßgeschneiderte Inhalte basierend auf ihren Interessen und Vorlieben angezeigt werden, die sich aus ihrem Surfverhalten ergeben. Dies kann das Engagement der Benutzer erhöhen.
Die Komplexität der Entwicklung eines maßgeschneiderten Klassifizierungsmodells für maschinelles Lernen hängt von einer Vielzahl von Aspekten wie Datenqualität, Algorithmus, Skalierbarkeit und Domänenwissen ab, um nur einige zu nennen. Es ist wichtig, mit einer klaren Problemdefinition und sauberen und relevanten Daten zu beginnen und sich schrittweise durch die verschiedenen Phasen der Modellentwicklung zu arbeiten. Unternehmen können jedoch mithilfe der benutzerdefinierten Klassifizierung von Amazon Comprehend ihre eigenen einzigartigen Modelle für maschinelles Lernen erstellen, um Textdokumente automatisch in Kategorien oder Tags zu klassifizieren, um geschäftsspezifische Anforderungen zu erfüllen und sie auf Geschäftstechnologie und Dokumentkategorien abzubilden. Da keine menschliche Markierung oder Kategorisierung mehr erforderlich ist, können Unternehmen viel Zeit, Geld und Arbeit sparen. Wir haben diesen Prozess vereinfacht, indem wir die gesamte Schulungspipeline automatisiert haben.
Im ersten Teil dieses mehrteiligen Blogbeitrags erfahren Sie, wie Sie eine skalierbare Trainingspipeline erstellen und Trainingsdaten für Comprehend Custom Classification-Modelle vorbereiten. Wir stellen eine benutzerdefinierte Klassifikator-Trainingspipeline vor, die mit wenigen Klicks in Ihrem AWS-Konto bereitgestellt werden kann. Wir verwenden den BBC-Nachrichtendatensatz und werden einen Klassifikator trainieren, um die Klasse (z. B. Politik, Sport) zu identifizieren, zu der ein Dokument gehört. Mithilfe der Pipeline kann Ihr Unternehmen schnell auf Änderungen reagieren und neue Modelle trainieren, ohne jedes Mal bei Null anfangen zu müssen. Sie können je nach Bedarf problemlos mehrere Modelle skalieren und trainieren.
Voraussetzungen
- Ein aktives AWS-Konto (Klicken Sie hier, um ein neues AWS-Konto zu erstellen)
- Zugriff auf Amazon Comprehend, Amazon S3, Amazon Lambda, Amazon Step Function, Amazon SNS und Amazon CloudFormation
- Im folgenden Abschnitt vorbereitete Trainingsdaten (Halbstruktur oder Text).
- Grundkenntnisse über Python und maschinelles Lernen im Allgemeinen
Bereiten Sie Trainingsdaten vor
Diese Lösung kann Eingaben als beides annehmen Textformat (z. B. CSV) oder halbstrukturiertes Format (z. B. PDF).
Text Eingabe
Die benutzerdefinierte Klassifizierung von Amazon Comprehend unterstützt zwei Modi: Multi-Class und Multi-Label.
Im Mehrklassenmodus kann jedem Dokument genau eine Klasse zugewiesen werden. Die Trainingsdaten sollten als zweispaltige CSV-Datei vorbereitet werden, wobei jede Zeile der Datei eine einzelne Klasse und den Text eines Dokuments enthält, das die Klasse demonstriert.
Beispiel für BBC-Nachrichtendatensatz:
Im Multi-Label-Modus ist jedem Dokument mindestens eine Klasse zugeordnet, es können jedoch auch mehr sein. Die Trainingsdaten sollten als zweispaltige CSV-Datei vorliegen, wobei jede Zeile der Datei eine oder mehrere Klassen und den Text des Trainingsdokuments enthält. Mehr als eine Klasse sollte durch die Verwendung eines Trennzeichens zwischen den einzelnen Klassen angegeben werden.
Für keinen der Trainingsmodi sollte in der CSV-Datei ein Header enthalten sein.
Halbstrukturierte Eingabe
Ab 2023 unterstützt Amazon Comprehend nun Trainingsmodelle mit halbstrukturierten Dokumenten. Die Trainingsdaten für die halbstrukturierte Eingabe bestehen aus einer Reihe gekennzeichneter Dokumente, bei denen es sich um vorab identifizierte Dokumente aus einem Dokumenten-Repository handeln kann, auf das Sie bereits Zugriff haben. Im Folgenden finden Sie ein Beispiel für CSV-Daten einer Anmerkungsdatei, die für das Training erforderlich sind (Beispieldaten):
Die Anmerkungs-CSV-Datei enthält drei Spalten: Die erste Spalte enthält die Bezeichnung für das Dokument, die zweite Spalte ist der Dokumentname (d. h. der Dateiname) und die letzte Spalte ist die Seitenzahl des Dokuments, das Sie in das Dokument aufnehmen möchten Trainingsdatensatz. Wenn sich die CSV-Anmerkungsdatei im selben Ordner wie alle anderen Dokumente befindet, müssen Sie in den meisten Fällen nur den Dokumentnamen in der zweiten Spalte angeben. Wenn sich die CSV-Datei jedoch an einem anderen Speicherort befindet, müssen Sie den Pfad zum Speicherort in der zweiten Spalte angeben, z. B path/to/prefix/document1.pdf
.
Einzelheiten zur Vorbereitung Ihrer Trainingsdaten finden Sie hier.
Lösungsüberblick
- Die Trainingspipeline von Amazon Comprehend startet, wenn Trainingsdaten (CSV-Datei für Texteingabe und Anmerkungs-CSV-Datei für Halbstruktureingabe) in einen dedizierten Amazon Simple Storage Service (Amazon S3)-Bucket hochgeladen werden.
- Eine AWS Lambda-Funktion wird vom Amazon S3-Trigger aufgerufen, sodass die AWS Lambda-Funktion jedes Mal, wenn ein Objekt an einen bestimmten Amazon S3-Speicherort hochgeladen wird, den Quell-Bucket-Namen und den Schlüsselnamen des hochgeladenen Objekts abruft und ihn an den Trainingsschritt-Funktionsworkflow übergibt.
- In der Trainingsschrittfunktion startet nach Erhalt des Trainingsdaten-Bucket-Namens und des Objektschlüsselnamens als Eingabeparameter ein benutzerdefinierter Modell-Trainingsworkflow mit einer Reihe von Lambdas-Funktionen wie beschrieben:
StartComprehendTraining
: Diese AWS Lambda-Funktion definiert aComprehendClassifier
Objekt abhängig von der Art der Eingabedateien (z. B. Text oder halbstrukturiert) und startet dann durch Aufruf eine benutzerdefinierte Amazon Comprehend-Klassifizierungstrainingsaufgabe create_document_classifier Application Programming Interfact (API), das einen Trainingsjob mit Amazon-Ressourcennamen (ARN) zurückgibt. Anschließend prüft diese Funktion durch Aufruf den Status des Trainingsjobs beschreiben_dokument_klassifikator API. Schließlich werden ein Trainingsjob-ARN und ein Jobstatus als Ausgabe an die nächste Stufe des Trainingsworkflows zurückgegeben.GetTrainingJobStatus
: Dieses AWS Lambda überprüft alle 15 Minuten den Auftragsstatus des Trainingsauftrags durch Aufruf beschreiben_dokument_klassifikator API, bis sich der Status des Trainingsjobs in „Abgeschlossen“ oder „Fehlgeschlagen“ ändert.GenerateMultiClass
oderGenerateMultiLabel
: Wenn Sie auswählen Ja Für den Leistungsbericht beim Starten des Stacks führt einer dieser beiden AWS Lambdas eine Analyse gemäß den Ausgaben Ihres Amazon Comprehend-Modells durch, wodurch eine Leistungsanalyse pro Klasse generiert und in Amazon S3 gespeichert wird.GenerateMultiClass
: Dieses AWS Lambda wird aufgerufen, wenn Ihre Eingabe lautet MultiClass und Sie wählen Ja für den Leistungsbericht.GenerateMultiLabel
: Dieses AWS Lambda wird aufgerufen, wenn Ihre Eingabe lautet MultiLabel und Sie wählen Ja für den Leistungsbericht.
- Sobald das Training erfolgreich abgeschlossen wurde, generiert die Lösung folgende Ausgaben:
- Benutzerdefiniertes Klassifizierungsmodell: Ein trainiertes Modell-ARN steht in Ihrem Konto für zukünftige Inferenzarbeiten zur Verfügung.
- Verwirrung Matrix [Optionl]: Eine Verwirrungsmatrix (
Verwirrung Matrix
.json) wird abhängig von der Benutzerauswahl im benutzerdefinierten Ausgabepfad von Amazon S3 verfügbar sein. - Amazon Simple Notification Service-Benachrichtigung [Optionl]: Abhängig von der anfänglichen Benutzerauswahl wird eine Benachrichtigungs-E-Mail über den Schulungsauftragsstatus an die Abonnenten gesendet.
Komplettlösung
Einführung der Lösung
Führen Sie die folgenden Schritte aus, um Ihre Pipeline bereitzustellen:
- Wählen Stack starten Taste:
- Wählen Sie Weiter
- Geben Sie die Pipelinedetails mit den für Ihren Anwendungsfall passenden Optionen an:
Informationen zu jedem Stapeldetail:
- Stack-Name (erforderlich) – der Name, den Sie für diesen AWS CloudFormation-Stack angegeben haben. Der Name muss in der Region, in der Sie ihn erstellen, eindeutig sein.
- Q01ClassifierInputBucketName (erforderlich) – Der Name des Amazon S3-Buckets zum Speichern Ihrer Eingabedaten. Es sollte ein weltweit eindeutiger Name sein und der AWS CloudFormation-Stack hilft Ihnen beim Erstellen des Buckets, während er gestartet wird.
- Q02ClassifierOutputBucketName (erforderlich) – Der Name des Amazon S3-Buckets zum Speichern von Ausgaben von Amazon Comprehend und der Pipeline. Es sollte auch ein weltweit eindeutiger Name sein.
- Q03Eingabeformat – Eine Dropdown-Auswahl, die Sie auswählen können Text (wenn es sich bei Ihren Trainingsdaten um CSV-Dateien handelt) oder Halbstruktur (wenn Ihre Trainingsdaten halbstrukturiert sind [z. B. PDF-Dateien]), basierend auf Ihrem Dateneingabeformat.
- Q04Sprache – Eine Dropdown-Auswahl, die die Sprache der Dokumente aus der Liste der unterstützten Dokumente auswählt. Bitte beachten Sie, dass derzeit nur Englisch unterstützt wird, wenn Ihr Eingabeformat halbstrukturiert ist.
- Q05MultiClass – Eine Dropdown-Auswahl, auswählen Ja wenn Ihre Eingabe im MultiClass-Modus erfolgt. Andernfalls wählen Sie aus NEIN.
- Q06LabelDelimiter – Nur erforderlich, wenn Ihre Q05MultiClass-Antwort lautet NEIN. Dieses Trennzeichen wird in Ihren Trainingsdaten verwendet, um die einzelnen Klassen zu trennen.
- Q07ValidationDataset – Eine Dropdown-Auswahl, ändern Sie die Antwort in Ja wenn Sie die Leistung eines trainierten Klassifikators mit Ihren eigenen Testdaten testen möchten.
- Q08S3ValidationPath – Nur erforderlich, wenn Ihre Q07ValidationDataset-Antwort lautet Ja.
- Q09Leistungsbericht – Eine Dropdown-Auswahl, auswählen Ja wenn Sie den Leistungsbericht auf Klassenebene nach dem Modelltraining erstellen möchten. Der Bericht wird in dem von Ihnen angegebenen Ausgabe-Bucket in Q02ClassifierOutputBucketName gespeichert.
- Q10EmailBenachrichtigung – Eine Dropdown-Auswahl. Wählen Ja wenn Sie eine Benachrichtigung erhalten möchten, nachdem das Modell trainiert wurde.
- Q11EmailID – Geben Sie eine gültige E-Mail-Adresse für den Empfang von Leistungsberichtsbenachrichtigungen ein. Bitte beachten Sie, dass Sie das Abonnement per E-Mail bestätigen müssen, nachdem der AWS CloudFormation-Stack gestartet wurde, bevor Sie eine Benachrichtigung erhalten können, wenn die Schulung abgeschlossen ist.
- Fügen Sie im Abschnitt „Amazon Stack-Optionen konfigurieren“ optionale Tags, Berechtigungen und andere erweiterte Einstellungen hinzu.
- Wählen Nächste
- Überprüfen Sie die Stack-Details und wählen Sie Ich bestätige, dass AWS CloudFormation möglicherweise AWS IAM-Ressourcen erstellt.
- Wählen Einreichen. Dadurch wird die Pipeline-Bereitstellung in Ihrem AWS-Konto eingeleitet.
- Nachdem der Stack erfolgreich bereitgestellt wurde, können Sie mit der Verwendung der Pipeline beginnen. Ein ... kreieren
/Trainingsdaten
Ordner unter Ihrem angegebenen Amazon S3-Speicherort für die Eingabe. Hinweis: Amazon S3 wendet automatisch die serverseitige Verschlüsselung (SSE-S3) für jedes neue Objekt an, sofern Sie keine andere Verschlüsselungsoption angeben. Weitere Informationen zum Datenschutz und zur Verschlüsselung in Amazon S3 finden Sie unter Datenschutz in Amazon S3.
- Laden Sie Ihre Trainingsdaten in den Ordner hoch. (Wenn die Trainingsdaten halbstrukturiert sind, laden Sie alle PDF-Dateien hoch, bevor Sie die Etiketteninformationen im CSV-Format hochladen.)
Du bist fertig! Sie haben Ihre Pipeline erfolgreich bereitgestellt und können den Pipelinestatus in der Funktion „Deployed Step“ überprüfen. (Sie verfügen über ein trainiertes Modell in Ihrem benutzerdefinierten Klassifizierungsfenster von Amazon Comprehend).
Wenn Sie das Modell und seine Version in der Amazon Comprehend Console auswählen, können Sie jetzt weitere Details zu dem gerade trainierten Modell sehen. Dazu gehören der von Ihnen ausgewählte Modus, der der Option Q05MultiClass entspricht, die Anzahl der Beschriftungen und die Anzahl der Trainings- und Testdokumente in Ihren Trainingsdaten. Sie können die Gesamtleistung auch unten überprüfen. Wenn Sie jedoch die detaillierte Leistung jeder Klasse überprüfen möchten, lesen Sie bitte den von der bereitgestellten Pipeline generierten Leistungsbericht.
Servicekontingente
Ihr AWS-Konto verfügt über Standardkontingente für Amazon Comprehend und AmazonTextract, wenn die Eingaben im Halbstrukturformat vorliegen. Informationen zu Servicekontingenten finden Sie hier für Amazon Comprehend und hier für AmazonTexttract.
Aufräumen
Um laufende Kosten zu vermeiden, löschen Sie die Ressourcen, die Sie im Rahmen dieser Lösung erstellt haben, wenn Sie fertig sind.
- Löschen Sie auf der Amazon S3-Konsole manuell die Inhalte in den Buckets, die Sie für Eingabe- und Ausgabedaten erstellt haben.
- Wählen Sie in der AWS CloudFormation-Konsole Stapel im Navigationsbereich.
- Wählen Sie den Hauptstapel aus und wählen Sie Löschen.
Dadurch wird der bereitgestellte Stack automatisch gelöscht.
- Ihr trainiertes benutzerdefiniertes Amazon Comprehend-Klassifizierungsmodell verbleibt in Ihrem Konto. Wenn Sie es nicht mehr benötigen, löschen Sie das erstellte Modell in der Amazon Comprehend-Konsole.
Abschluss
In diesem Beitrag haben wir Ihnen das Konzept einer skalierbaren Trainingspipeline für benutzerdefinierte Amazon Comprehend-Klassifizierungsmodelle und die Bereitstellung einer automatisierten Lösung für das effiziente Training neuer Modelle gezeigt. Mit der bereitgestellten AWS CloudFormation-Vorlage können Sie mühelos Ihre eigenen Textklassifizierungsmodelle erstellen, die auf Nachfrageskalen zugeschnitten sind. Die Lösung übernimmt die kürzlich angekündigte Euclid-Funktion und akzeptiert Eingaben im Text- oder halbstrukturierten Format.
Jetzt ermutigen wir Sie, unsere Leser, diese Tools zu testen. Hier finden Sie weitere Details zur Vorbereitung von Trainingsdaten und können sich über die Metriken des benutzerdefinierten Klassifikators informieren. Probieren Sie es aus und erfahren Sie aus erster Hand, wie es Ihren Modelltrainingsprozess rationalisieren und die Effizienz steigern kann. Bitte teilen Sie uns Ihr Feedback mit!
Über die Autoren
Sandeep Singh ist Senior Data Scientist bei AWS Professional Services. Es ist ihm eine Leidenschaft, Kunden dabei zu helfen, Innovationen zu entwickeln und ihre Geschäftsziele zu erreichen, indem er hochmoderne KI/ML-basierte Lösungen entwickelt. Derzeit konzentriert er sich auf generative KI, LLMs, Prompt Engineering und die Skalierung von maschinellem Lernen in Unternehmen. Er bringt aktuelle KI-Fortschritte ein, um Mehrwert für Kunden zu schaffen.
Yanyan Zhang ist Senior Data Scientist im Energy Delivery-Team bei AWS Professional Services. Es ist ihr eine Leidenschaft, Kunden mit KI/ML-Wissen bei der Lösung echter Probleme zu helfen. In letzter Zeit lag ihr Schwerpunkt auf der Erforschung des Potenzials von generativer KI und LLM. Außerhalb der Arbeit liebt sie es zu reisen, Sport zu treiben und neue Dinge zu entdecken.
Wrick Talukdar ist Senior Architect im Amazon Comprehend Service-Team. Er arbeitet mit AWS-Kunden zusammen, um ihnen bei der groß angelegten Einführung von maschinellem Lernen zu helfen. Außerhalb der Arbeit liest und fotografiert er gerne.
Hinterlasse eine Antwort