Organisationen aus verschiedenen Branchen wie Einzelhandel, Banken, Finanzen, Gesundheitswesen, Fertigung und Kreditvergabe müssen sich oft mit riesigen Mengen an unstrukturierten Textdokumenten auseinandersetzen, die aus verschiedenen Quellen wie Nachrichten, Blogs, Produktbewertungen, Kundensupportkanälen und sozialen Medien stammen. Diese Dokumente enthalten wichtige Informationen, die für wichtige Geschäftsentscheidungen von entscheidender Bedeutung sind. Wenn eine Organisation wächst, wird es zu einer Herausforderung, wichtige Informationen aus diesen Dokumenten zu extrahieren. Mit der Weiterentwicklung der Techniken zur Verarbeitung natürlicher Sprache (NLP) und des maschinellen Lernens (ML) können wir schnell und mit hoher Genauigkeit wertvolle Erkenntnisse und Verbindungen aus diesen Textdokumenten aufdecken und Unternehmen dabei helfen, rechtzeitig qualitativ hochwertige Geschäftsentscheidungen zu treffen. Vollständig verwaltete NLP-Dienste haben auch die Einführung von NLP beschleunigt. Amazon verstehen ist ein vollständig verwalteter Service, mit dem Sie benutzerdefinierte NLP-Modelle erstellen können, die speziell auf Ihre Anforderungen zugeschnitten sind, ohne dass ML-Expertise erforderlich ist.
In diesem Beitrag zeigen wir, wie Sie modernste ML-Techniken einsetzen, um fünf verschiedene NLP-Aufgaben zu lösen: Dokumentenzusammenfassung, Textklassifizierung, Beantwortung von Fragen, Erkennung benannter Entitäten und Beziehungsextraktion. Für jede dieser NLP-Aufgaben demonstrieren wir die Verwendung Amazon Sage Maker um die folgenden Aktionen auszuführen:
- Bereitstellen und Ausführen von Inferenzen für ein vorab trainiertes Modell
- Optimieren Sie das vortrainierte Modell auf einem neuen benutzerdefinierten Dataset
- Verbessern Sie die Feinabstimmungsleistung weiter mit Automatische Modellabstimmung von SageMaker
- Bewerten Sie die Modellleistung anhand der Holdout-Testdaten mit verschiedenen Bewertungsmetriken
Obwohl wir in diesem Beitrag fünf spezifische NLP-Aufgaben behandeln, können Sie diese Lösung als Vorlage verwenden, um die Feinabstimmung vortrainierter Modelle mit Ihrem eigenen Datensatz zu verallgemeinern und anschließend eine Hyperparameter-Optimierung durchzuführen, um die Genauigkeit zu verbessern.
JumpStart-Lösungsvorlagen
Amazon SageMaker-JumpStart bietet One-Click-End-to-End-Lösungen für viele gängige ML-Anwendungsfälle. Sehen Sie sich die folgenden Anwendungsfälle an, um weitere Informationen zu verfügbaren Lösungsvorlagen zu erhalten:
Die JumpStart-Lösungsvorlagen decken eine Vielzahl von Anwendungsfällen ab, unter denen jeweils mehrere verschiedene Lösungsvorlagen angeboten werden (diese Document Understanding-Lösung befindet sich unter dem Anwendungsfall „Daten aus Dokumenten extrahieren und analysieren“).
Wählen Sie auf der Landingpage von JumpStart die Lösungsvorlage aus, die am besten zu Ihrem Anwendungsfall passt. Weitere Informationen zu spezifischen Lösungen für jeden Anwendungsfall und zum Starten einer JumpStart-Lösung finden Sie unter Lösungsvorlagen.
Lösungsüberblick
Das folgende Bild zeigt, wie Sie diese Lösung mit SageMaker-Komponenten verwenden können. Die SageMaker-Trainingsjobs werden verwendet, um die verschiedenen NLP-Modelle zu trainieren, und SageMaker-Endpunkte werden verwendet, um die Modelle in jeder Phase bereitzustellen. Wir gebrauchen Amazon Simple Storage-Service (Amazon S3) neben SageMaker zum Speichern der Trainingsdaten und Modellartefakte und Amazon CloudWatch zum Protokollieren von Trainings- und Endpunktausgaben.
Öffnen Sie die Document Understanding-Lösung
Navigieren Sie in JumpStart zur Document Understanding-Lösung.
Jetzt können wir uns einige der Assets, die in dieser Lösung enthalten sind, genauer ansehen, beginnend mit dem Demo-Notebook.
Demo-Notizbuch
Sie können das Demo-Notebook verwenden, um Beispieldaten an bereits bereitgestellte Modellendpunkte für die Dokumentenzusammenfassung und die Aufgaben zur Beantwortung von Fragen zu senden. Mit dem Demo-Notebook können Sie schnell praktische Erfahrungen sammeln, indem Sie die Beispieldaten abfragen.
Nachdem Sie die Document Understanding-Lösung gestartet haben, öffnen Sie das Demo-Notebook, indem Sie auswählen Verwenden Sie Endpunkt in Notebook.
Lassen Sie uns tiefer in jedes der fünf Hauptnotebooks für diese Lösung eintauchen.
Voraussetzungen:
In Amazon SageMaker-Studio, stellen Sie sicher, dass Sie die verwenden PyTorch 1.10 Python 3.8 CPU Optimized
image/kernel, um die Notizbücher zu öffnen. Das Training verwendet fünf ml.g4dn.2xlarge-Instanzen, also sollten Sie a erhöhen Anforderung zur Erhöhung des Servicelimits wenn Ihr Konto erhöhte Limits für diesen Typ erfordert.
Textklassifizierung
Textklassifikation bezieht sich auf die Klassifikation eines Eingabesatzes in eine der Klassenbezeichnungen des Trainingsdatensatzes. Dieses Notebook demonstriert die Verwendung des JumpStart-API zur Textklassifizierung.
Stellen Sie die Inferenz für das vorab trainierte Modell bereit und führen Sie sie aus
Das von uns gewählte Textklassifizierungsmodell basiert auf einer Texteinbettung (tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2
) Modell aus TensorFlow-Hub, das auf Wikipedia- und BookCorpus-Datensätzen vortrainiert ist.
Das für die Bereitstellung verfügbare Modell wird erstellt, indem eine binäre Klassifizierungsebene an die Ausgabe des Texteinbettungsmodells angehängt wird und dann das gesamte Modell auf der verfeinert wird SST-2 Datensatz, der aus positiven und negativen Filmkritiken besteht.
Um die Inferenz für dieses Modell auszuführen, müssen wir zuerst den Inferenzcontainer (deploy_image_uri
), Inferenzskript (deploy_source_uri
) und vortrainiertes Modell (base_model_uri
). Wir übergeben diese dann als Parameter, um ein SageMaker-Modellobjekt zu instanziieren, das wir dann bereitstellen können:
Der folgende Code zeigt unsere Antworten:
Optimieren Sie das vortrainierte Modell anhand eines benutzerdefinierten Datasets
Wir haben gerade die laufende Inferenz auf einem vortrainierten BERT-Modell durchlaufen, das auf dem feinabgestimmt wurde SST-2
Datensatz.
Als Nächstes erörtern wir, wie Sie ein Modell für ein benutzerdefiniertes Dataset mit einer beliebigen Anzahl von Klassen optimieren können. Der Datensatz, den wir für die Feinabstimmung verwenden, ist immer noch der SST-2
Datensatz. Sie können dieses Dataset durch ein beliebiges Dataset ersetzen, an dem Sie interessiert sind.
Wir rufen den Trainings-Docker-Container, die Quelle des Trainingsalgorithmus und das vortrainierte Modell ab:
Für algorithmenspezifische Hyperparameter beginnen wir mit dem Abrufen eines Python-Wörterbuchs der Trainings-Hyperparameter, die der Algorithmus mit ihren Standardwerten akzeptiert. Sie können sie mit benutzerdefinierten Werten überschreiben, wie im folgenden Code gezeigt:
Der Datensatz (SST-2
) ist in Trainings-, Validierungs- und Testdatensätze unterteilt, wobei der Trainingsdatensatz verwendet wird, um das Modell anzupassen, der Validierungsdatensatz verwendet wird, um Bewertungsmetriken zu berechnen, die für HPO verwendet werden können, und der Testdatensatz als Hold-out-Daten verwendet wird zur Bewertung der Modellleistung. Als Nächstes werden der Trainings- und der Validierungsdatensatz in Amazon S3 hochgeladen und zum Starten des Trainingsauftrags zur Feinabstimmung verwendet:
Nachdem die Feinabstimmung abgeschlossen ist, stellen wir das Modell bereit, führen eine Inferenz auf dem zurückgehaltenen Testdatensatz aus und berechnen Bewertungsmetriken. Da es sich um eine binäre Klassifizierungsaufgabe handelt, verwenden wir die Genauigkeitspunktzahl machen F1-Punktzahl als Bewertungsmaßstab. Ein größerer Wert zeigt die bessere Leistung an. Der folgende Screenshot zeigt unsere Ergebnisse.
Verbessern Sie die Feinabstimmungsleistung mit der automatischen Modellabstimmung von SageMaker weiter
In diesem Schritt demonstrieren wir, wie Sie die Modellleistung weiter verbessern können, indem Sie das Modell mit der automatischen Modelloptimierung von SageMaker optimieren. Die automatische Modelloptimierung, auch bekannt als Hyperparameter-Optimierung (HPO), findet die beste Version eines Modells, indem mehrere Trainingsjobs auf Ihrem Dataset mit einer Reihe von Hyperparametern ausgeführt werden, die Sie angeben. Anschließend werden die Hyperparameterwerte ausgewählt, die zu einem Modell führen, das gemessen an einer von Ihnen ausgewählten Metrik im Validierungsdatensatz die beste Leistung erbringt.
Zuerst legen wir das Ziel als Genauigkeitswert für die Validierungsdaten fest (val_accuracy
) und definierte Metriken für den Optimierungsjob, indem Sie den Namen der Zielmetrik und einen regulären Ausdruck (regex) angeben. Der reguläre Ausdruck wird verwendet, um die Protokollausgabe des Algorithmus abzugleichen und die numerischen Werte von Metriken zu erfassen. Als Nächstes geben wir Hyperparameterbereiche an, aus denen die besten Hyperparameterwerte ausgewählt werden. Wir setzen die Gesamtzahl der Tuning-Jobs auf sechs und verteilen diese Jobs auf drei verschiedene Amazon Elastic Compute-Cloud (Amazon EC2)-Instances zum Ausführen paralleler Tuning-Jobs. Siehe folgenden Code:
Wir übergeben diese Werte, um ein SageMaker Estimator-Objekt zu instanziieren, ähnlich wie im vorherigen Feinabstimmungsschritt. Anstatt anzurufen fit
Funktion des Estimator
Objekt übergeben wir die Estimator
Objekt in als Parameter für die HyperparameterTuner Konstruktor und rufen Sie die auf fit
Funktion zum Starten von Tuning-Jobs:
Nachdem die Optimierungsjobs abgeschlossen sind, stellen wir das Modell bereit, das die beste Bewertungsmetrik für das Validierungsdataset liefert, führen eine Inferenz für dasselbe Hold-out-Testdataset durch, das wir im vorherigen Abschnitt durchgeführt haben, und berechnen Bewertungsmetriken.
Die Ergebnisse zeigen, dass das durch die automatische Modelloptimierung ausgewählte Modell das im vorherigen Abschnitt auf einem Hold-out-Testdatensatz fein abgestimmte Modell deutlich übertrifft.
Erkennung benannter Entitäten
Named Entity Recognition (NER) ist der Prozess der Erkennung und Klassifizierung benannter Entitäten in vordefinierte Kategorien, wie Namen von Personen, Organisationen, Orten und Mengen. Es gibt viele praktische Anwendungsfälle für NER, z. B. Empfehlungsmaschinen, Kategorisierung und Zuweisung von Kundensupport-Tickets an die richtige Abteilung, Extrahieren wesentlicher Informationen aus Patientenberichten im Gesundheitswesen und Inhaltsklassifizierung aus Nachrichten und Blogs.
Stellen Sie die Inferenz für das vorab trainierte Modell bereit und führen Sie sie aus
Wir setzen die ein En_core_web_md Modell aus dem geräumig Bibliothek. spaCy ist eine Open-Source-NLP-Bibliothek, die für verschiedene Aufgaben verwendet werden kann und über integrierte Methoden für NER verfügt. Wir verwenden einen AWS PyTorch Deep Learning Container (DLC) mit einem Skriptmodus und installieren die spaCy-Bibliothek als Abhängigkeit auf dem Container.
Als nächstes wird ein Einstiegspunkt für das Skript (argument entry_point.py
) angegeben ist und den gesamten Code zum Herunterladen und Laden enthält En_core_web_md
modellieren und Rückschlüsse auf die Daten ziehen, die an den Endpunkt gesendet werden. Schließlich müssen wir noch versorgen model_data
als das vortrainierte Modell für die Inferenz. Denn die Vortrainierten En_core_web_md
model on the fly heruntergeladen wird, was im Eingabeskript angegeben ist, stellen wir eine leere Archivdatei bereit. Nachdem der Endpunkt bereitgestellt wurde, können Sie den Endpunkt mithilfe der SageMaker-Python-SDKs direkt vom Notebook aus aufrufen Predictor
. Siehe folgenden Code:
Die Eingabedaten für das Modell sind ein Textdokument. Das benannte Entitätsmodell extrahiert Substantivstücke und benannte Entitäten im Textdokument und klassifiziert sie in eine Reihe unterschiedlicher Typen (wie Personen, Orte und Organisationen). Die Beispieleingabe und -ausgabe sind im folgenden Code dargestellt. Das start_char
Parameter gibt den Zeichen-Offset für den Beginn der Spanne an, und end_char
zeigt das Ende der Spanne an.
Optimieren Sie das vortrainierte Modell anhand eines benutzerdefinierten Datasets
In diesem Schritt demonstrieren wir, wie Sie ein vortrainiertes Sprachmodell für NER an Ihrem eigenen Datensatz optimieren können. Der Feinabstimmungsschritt aktualisiert die Modellparameter, um die Charakteristik Ihrer eigenen Daten zu erfassen und die Genauigkeit zu verbessern. Wir benutzen das WikiANN (PAN-X)-Datensatz zur Feinabstimmung der DestilBERT-Basis-unverpackt Transformer-Modell von Hugging Face.
Der Datensatz ist in Trainings-, Validierungs- und Testsätze aufgeteilt.
Als Nächstes spezifizieren wir die Hyperparameter des Modells und verwenden einen AWS Hugging Face DLC mit einem Skriptmodus (Argument entry_point
), um den Fine-Tuning-Job auszulösen:
Nachdem die Feinabstimmung abgeschlossen ist, stellen wir einen Endpunkt bereit und fragen diesen Endpunkt mit den Hold-out-Testdaten ab. Um den Endpunkt abzufragen, muss jede Textzeichenfolge in ein oder mehrere Token umgewandelt und an das Transformer-Modell gesendet werden. Jedes Token erhält ein vorhergesagtes benanntes Entitäts-Tag. Da jede Textzeichenfolge in ein oder mehrere Token tokenisiert werden kann, müssen wir das Ground Truth benannte Entity-Tag der Zeichenfolge für alle damit verknüpften Token duplizieren. Das bereitgestellte Notizbuch führt Sie durch die Schritte, um dies zu erreichen.
Schließlich verwenden wir die integrierten Bewertungsmetriken von Hugging Face Folge um Bewertungsergebnisse für die Hold-Out-Testdaten zu berechnen. Die verwendeten Bewertungsmetriken sind Gesamtpräzision, Gesamterinnerung, Gesamt-F1 und Genauigkeit. Der folgende Screenshot zeigt unsere Ergebnisse.
Verbessern Sie die Feinabstimmungsleistung mit der automatischen Modellabstimmung von SageMaker weiter
Ähnlich wie bei der Textklassifizierung demonstrieren wir, wie Sie die Modellleistung weiter verbessern können, indem Sie das Modell mit der automatischen Modelloptimierung von SageMaker optimieren. Um den Tuning-Job auszuführen, müssen wir eine objektive Metrik definieren, die wir für die Bewertung der Modellleistung im Validierungsdatensatz verwenden möchten (in diesem Fall F1-Score), Hyperparameterbereiche zur Auswahl der besten Hyperparameterwerte sowie Jobkonfigurationen wie z Maximale Anzahl von Tuning-Jobs und Anzahl paralleler Jobs, die gleichzeitig gestartet werden können:
Nachdem die Optimierungsjobs abgeschlossen sind, stellen wir das Modell bereit, das die beste Bewertungsmetrik für das Validierungsdataset liefert, führen eine Inferenz für dasselbe Hold-out-Testdataset durch, das wir im vorherigen Abschnitt durchgeführt haben, und berechnen Bewertungsmetriken.
Wir können sehen, dass das Modell mit HPO über alle Metriken hinweg eine deutlich bessere Leistung erzielt.
Frage beantworten
Die Beantwortung von Fragen ist nützlich, wenn Sie eine große Textmenge nach bestimmten Informationen abfragen möchten. Es ermöglicht einem Benutzer, eine Frage in natürlicher Sprache zu äußern und eine sofortige und kurze Antwort zu erhalten. Von NLP betriebene Fragebeantwortungssysteme können in Suchmaschinen und Telefongesprächsschnittstellen verwendet werden.
Stellen Sie die Inferenz für das vorab trainierte Modell bereit und führen Sie sie aus
Unser vortrainiertes Modell ist das Extractive Question Answering (EQA)-Modell bert-large-uncased-ganzes-wort-maskierung-finetuned-squad basierend auf einem Transformer-Modell von Hugging Face. Wir verwenden einen AWS PyTorch DLC mit einem Skriptmodus und installieren den Transformer Bibliothek als Abhängigkeit über dem Container. Ähnlich wie bei der NER-Aufgabe stellen wir im Argument eine leere Archivdatei bereit model_data
da das vortrainierte Modell on-the-fly heruntergeladen wird. Nachdem der Endpunkt bereitgestellt wurde, können Sie den Endpunkt mithilfe der SageMaker-Python-SDKs direkt vom Notebook aus aufrufen Predictor
. Siehe folgenden Code:
Alles, was wir tun müssen, ist ein Dictionary-Objekt mit zwei Schlüsseln zu konstruieren. context
ist der Text, aus dem wir Informationen abrufen möchten. question
ist die Abfrage in natürlicher Sprache, die angibt, welche Informationen wir extrahieren möchten. Wir nennen predict
auf unserem Prädiktor, und wir sollten eine Antwort von dem Endpunkt erhalten, der die wahrscheinlichsten Antworten enthält:
Wir haben die Antwort und können die wahrscheinlichsten Antworten ausdrucken, die aus dem vorhergehenden Text extrahiert wurden. Jede Antwort hat einen Konfidenzwert, der für das Ranking verwendet wird (aber dieser Wert sollte nicht als wahre Wahrscheinlichkeit interpretiert werden). Neben der wörtlichen Antwort erhalten Sie auch die Start- und Endzeichen-Indizes der Antwort aus dem ursprünglichen Kontext:
Jetzt optimieren wir dieses Modell mit unserem eigenen benutzerdefinierten Datensatz, um bessere Ergebnisse zu erzielen.
Optimieren Sie das vortrainierte Modell anhand eines benutzerdefinierten Datasets
In diesem Schritt demonstrieren wir, wie Sie ein vortrainiertes Sprachmodell für EQA an Ihrem eigenen Datensatz optimieren. Der Feinabstimmungsschritt aktualisiert die Modellparameter, um die Charakteristik Ihrer eigenen Daten zu erfassen und die Genauigkeit zu verbessern. Wir benutzen das SQuAD2.0 Datensatz zur Feinabstimmung eines Texteinbettungsmodells bert-base-uncased von Hugging Face. Das für die Feinabstimmung verfügbare Modell fügt eine Antwortextraktionsschicht an das Texteinbettungsmodell an und initialisiert die Schichtparameter auf zufällige Werte. Der Feinabstimmungsschritt stimmt alle Modellparameter ab, um den Vorhersagefehler bei den Eingabedaten zu minimieren, und gibt das feinabgestimmte Modell zurück.
Ähnlich wie bei der Textklassifikationsaufgabe wird der Datensatz (SQuAD2.0) in Trainings-, Validierungs- und Testsatz aufgeteilt.
Als nächstes spezifizieren wir die Hyperparameter des Modells und verwenden die JumpStart-API um einen Fine-Tuning-Job auszulösen:
Nachdem die Feinabstimmung abgeschlossen ist, stellen wir das Modell bereit, führen eine Inferenz auf dem zurückgehaltenen Testdatensatz aus und berechnen Bewertungsmetriken. Die verwendeten Bewertungsmetriken sind die durchschnittliche exakte Übereinstimmungspunktzahl und die durchschnittliche F1-Punktzahl. Der folgende Screenshot zeigt die Ergebnisse.
Verbessern Sie die Feinabstimmungsleistung mit der automatischen Modellabstimmung von SageMaker weiter
Ähnlich wie in den vorherigen Abschnitten verwenden wir a HyperparameterTuner
Objekt zum Starten von Tuning-Jobs:
Nachdem die Optimierungsjobs abgeschlossen sind, stellen wir das Modell bereit, das die beste Bewertungsmetrik für das Validierungsdataset liefert, führen eine Inferenz für dasselbe Hold-out-Testdataset durch, das wir im vorherigen Abschnitt durchgeführt haben, und berechnen Bewertungsmetriken.
Wir können sehen, dass das Modell mit HPO eine deutlich bessere Leistung bei den Hold-out-Testdaten zeigt.
Extraktion von Beziehungen
Beziehungsextraktion ist die Aufgabe, semantische Beziehungen aus Text zu extrahieren, die normalerweise zwischen zwei oder mehr Entitäten auftreten. Die Beziehungsextraktion spielt eine wichtige Rolle beim Extrahieren strukturierter Informationen aus unstrukturierten Quellen wie Rohtext. In diesem Notebook demonstrieren wir zwei Anwendungsfälle der Beziehungsextraktion.
Optimieren Sie das vortrainierte Modell anhand eines benutzerdefinierten Datasets
Wir verwenden ein Beziehungsextraktionsmodell, das auf a BERT-Sockel-ohne Gehäuse Modell mit Transformatoren aus der Hugging Face-Transformatoren Bibliothek. Das Modell für die Feinabstimmung fügt eine lineare Klassifizierungsschicht hinzu, die ein Paar von Token-Einbettungen nimmt, die vom Texteinbettungsmodell ausgegeben werden, und die Schichtparameter auf zufällige Werte initialisiert. Der Feinabstimmungsschritt stimmt alle Modellparameter ab, um den Vorhersagefehler bei den Eingabedaten zu minimieren, und gibt das feinabgestimmte Modell zurück.
Der Datensatz, an dem wir das Modell optimieren, ist SemEval-2010 Aufgabe 8. Das durch die Feinabstimmung zurückgegebene Modell kann für die Inferenz weiter eingesetzt werden.
Das Dataset enthält Trainings-, Validierungs- und Testsets.
Wir verwenden den AWS PyTorch DLC mit einem Skriptmodus aus dem SageMaker Python SDK, wobei die transformers
Die Bibliothek wird als Abhängigkeit über dem Container installiert. Wir definieren den SageMaker PyTorch
Schätzer und eine Reihe von Hyperparametern wie das vortrainierte Modell, die Lernrate und die Epochennummern, um die Feinabstimmung durchzuführen. Der Code für die Feinabstimmung des Beziehungsextraktionsmodells ist in definiert entry_point.py
. Siehe folgenden Code:
Verbessern Sie die Feinabstimmungsleistung mit der automatischen Modellabstimmung von SageMaker weiter
Ähnlich wie in den vorherigen Abschnitten verwenden wir a HyperparameterTuner
-Objekt, um mit SageMaker-APIs zur Hyperparameter-Optimierung zu interagieren. Wir können den Hyperparameter-Tuning-Job starten, indem wir die aufrufen fit
Verfahren:
Wenn der Hyperparameter-Tuning-Job abgeschlossen ist, führen wir eine Inferenz durch und überprüfen die Bewertungspunktzahl.
Wir können sehen, dass das Modell mit HPO eine bessere Leistung bei den Hold-out-Testdaten zeigt.
Dokumentenzusammenfassung
Die Dokument- oder Textzusammenfassung ist die Aufgabe, große Mengen an Textdaten zu einer kleineren Teilmenge aussagekräftiger Sätze zu verdichten, die die wichtigsten oder relevantesten Informationen innerhalb des ursprünglichen Inhalts darstellen. Die Dokumentenzusammenfassung ist eine nützliche Technik, um wichtige Informationen aus großen Mengen von Textdaten in wenige Sätze zu destillieren. Die Textzusammenfassung wird in vielen Anwendungsfällen verwendet, z. B. bei der Dokumentenverarbeitung und dem Extrahieren von Informationen aus Blogs, Artikeln und Nachrichten.
Dieses Notebook demonstriert die Bereitstellung des Dokumentzusammenfassungsmodells T5-Basis von dem Hugging Face-Transformatoren Bibliothek. Wir testen die bereitgestellten Endpunkte auch mithilfe eines Textartikels und bewerten die Ergebnisse mithilfe der integrierten Bewertungsmetrik „Hugging Face“. ROT.
Ähnlich wie bei den Fragebeantwortungs- und NER-Notizbüchern verwenden wir die PyTorchModel
aus dem SageMaker Python SDK zusammen mit einer entry_point.py
-Skript zum Laden des T5-Basismodells auf einen HTTPS-Endpunkt. Nachdem der Endpunkt erfolgreich bereitgestellt wurde, können wir einen Textartikel an den Endpunkt senden, um eine Vorhersageantwort zu erhalten:
Als nächstes bewerten und vergleichen wir den Textartikel und das Zusammenfassungsergebnis unter Verwendung der ROUGE-Metrik. Es werden drei Bewertungsmetriken berechnet: rougeN
, rougeL
und rougeLsum
. rougeN
misst die Anzahl der Übereinstimmungen n-grams
zwischen dem modellgenerierten Text (Zusammenfassungsergebnis) und a reference
(Eingabetext). Die Metriken rougeL
machen rougeLsum
Messen Sie die längsten übereinstimmenden Wortfolgen, indem Sie in den generierten und Referenzzusammenfassungen nach den längsten gemeinsamen Teilzeichenfolgen suchen. Für jede Metrik werden Konfidenzintervalle für Präzision, Erinnerung und F1-Punktzahl berechnet. Siehe folgenden Code:
Aufräumen
Ressourcen, die für diese Lösung erstellt wurden, können mit gelöscht werden Löschen Sie alle Ressourcen Schaltfläche aus der SageMaker Studio IDE. Jedes Notebook bietet auch einen Bereinigungsabschnitt mit dem Code zum Löschen der Endpunkte.
Zusammenfassung
In diesem Beitrag haben wir gezeigt, wie modernste ML-Techniken eingesetzt werden können, um fünf verschiedene NLP-Aufgaben zu lösen: Dokumentenzusammenfassung, Textklassifizierung, Fragen und Antworten, Erkennung benannter Entitäten und Beziehungsextraktion mit Jumpstart. Starten Sie jetzt mit Jumpstart!
Über die Autoren
Xin Huang ist ein angewandter Wissenschaftler für Amazon SageMaker JumpStart und die integrierten Algorithmen von Amazon SageMaker. Er konzentriert sich auf die Entwicklung skalierbarer Algorithmen für maschinelles Lernen. Seine Forschungsinteressen liegen im Bereich der Verarbeitung natürlicher Sprache, erklärbares Deep Learning auf tabellarischen Daten und robuste Analyse von nichtparametrischem Raum-Zeit-Clustering. Er hat viele Artikel in ACL-, ICDM-, KDD-Konferenzen und in der Zeitschrift Royal Statistical Society: Series A veröffentlicht.
Vivek Gangasani ist Senior Machine Learning Solutions Architect bei Amazon Web Services. Er hilft Startups beim Aufbau und der Operationalisierung von KI/ML-Anwendungen. Derzeit konzentriert er sich darauf, seinen Hintergrund in Containern und maschinellem Lernen zu kombinieren, um Lösungen für MLOps, ML-Inferenz und Low-Code-ML bereitzustellen. In seiner Freizeit probiert er gerne neue Restaurants aus und erforscht neue Trends in den Bereichen KI und Deep Learning.
Geremy Cohen ist ein Lösungsarchitekt bei AWS, bei dem er Kunden bei der Entwicklung innovativer Cloud-basierter Lösungen unterstützt. In seiner Freizeit genießt er kurze Strandspaziergänge, erkundet mit seiner Familie die Bucht, repariert Dinge rund um das Haus, bricht Dinge rund um das Haus und grillt.
Neelam Koshiya ist ein Enterprise Solution Architect bei AWS. Ihr aktueller Fokus liegt darauf, Unternehmenskunden bei ihrer Cloud-Einführung für strategische Geschäftsergebnisse zu unterstützen. In ihrer Freizeit liest sie gerne und ist gerne im Freien.
- Fortgeschritten (300)
- AI
- Kunst
- KI-Kunstgenerator
- KI-Roboter
- Amazon Sage Maker
- Amazon SageMaker-JumpStart
- künstliche Intelligenz
- Zertifizierung für künstliche Intelligenz
- Künstliche Intelligenz im Bankwesen
- Roboter mit künstlicher Intelligenz
- Roboter mit künstlicher Intelligenz
- Software für künstliche Intelligenz
- AWS Maschinelles Lernen
- Blockchain
- Blockchain-Konferenz ai
- Einfallsreichtum
- dialogorientierte künstliche Intelligenz
- Krypto-Konferenz ai
- Dalls
- tiefe Lernen
- Experte (400)
- Google Ai
- Maschinelles Lernen
- Plato
- platon ai
- Datenintelligenz von Plato
- Plato-Spiel
- PlatoData
- Platogaming
- Skala ai
- Syntax
- Zephyrnet