Erstellen Sie ein nachrichtenbasiertes Echtzeit-Warnsystem mit Twitter, Amazon SageMaker und Hugging Face PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Erstellen Sie mit Twitter, Amazon SageMaker und Hugging Face ein nachrichtenbasiertes Echtzeit-Warnsystem

Soziale Medien sind heute eine riesige Nachrichtenquelle. Benutzer verlassen sich auf Plattformen wie Facebook und Twitter, um Nachrichten zu konsumieren. Für bestimmte Branchen wie Versicherungsunternehmen, Erstbefragte, Strafverfolgungsbehörden und Regierungsbehörden kann die Möglichkeit, Nachrichten über relevante Ereignisse schnell zu verarbeiten, ihnen helfen, Maßnahmen zu ergreifen, während sich diese Ereignisse noch entfalten.

Es ist nicht ungewöhnlich, dass Organisationen, die Wert aus Textdaten extrahieren wollen, nach einer Lösung suchen, die nicht das Training eines komplexen NLP-Modells (Natural Language Processing) beinhaltet. Für diese Organisationen ist die Verwendung eines vortrainierten NLP-Modells praktischer. Wenn das gewählte Modell ihre Erfolgsmetriken nicht erfüllt, möchten Unternehmen außerdem in der Lage sein, einfach ein anderes Modell auszuwählen und neu zu bewerten.

Derzeit ist es einfacher denn je, Informationen aus Textdaten zu extrahieren, dank:

  • Der Aufstieg hochmoderner Allzweck-NLP-Architekturen wie Transformatoren
  • Die Fähigkeit von Entwicklern und Datenwissenschaftlern, schnell Modelle für maschinelles Lernen (ML) in großem Umfang mit Diensten wie Amazon Sage Maker
  • Die Verfügbarkeit von Tausenden von vortrainierten NLP-Modellen in Hunderten von Sprachen und mit Unterstützung für mehrere Frameworks, die von der Community auf Plattformen wie bereitgestellt werden Face Hub umarmen

In diesem Beitrag zeigen wir Ihnen, wie Sie ein Echtzeit-Warnsystem aufbauen, das Nachrichten von Twitter verarbeitet und die Tweets mithilfe eines vortrainierten Modells aus dem Hugging Face Hub klassifiziert. Sie können diese Lösung für die Zero-Shot-Klassifizierung verwenden, d. h. Sie können Tweets in praktisch jedem Satz von Kategorien klassifizieren und das Modell mit SageMaker für Echtzeit-Inferenz einsetzen.

Wenn Sie alternativ nach Einblicken in die Gespräche Ihrer Kunden suchen und die Markenbekanntheit durch die Analyse von Interaktionen in sozialen Medien vertiefen möchten, empfehlen wir Ihnen, sich das anzusehen AI-gesteuertes Social Media Dashboard. Die Lösung verwendet Amazon verstehen, ein vollständig verwalteter NLP-Dienst, der wertvolle Einblicke und Zusammenhänge in Texten aufdeckt, ohne dass Erfahrung mit maschinellem Lernen erforderlich ist.

Zero-Shot-Lernen

Die Bereiche NLP und Natural Language Understanding (NLU) haben sich schnell weiterentwickelt, um Anwendungsfälle wie Textklassifizierung, Beantwortung von Fragen, Zusammenfassung, Textgenerierung und mehr zu adressieren. Diese Entwicklung war zum Teil dank des Aufkommens hochmoderner Allzweckarchitekturen wie Transformatoren möglich, aber auch der Verfügbarkeit von mehr und qualitativ besseren Textkorpora, die für das Training solcher Modelle verfügbar sind.

Die Transformer-Architektur ist ein komplexes neuronales Netzwerk, das Fachwissen und eine riesige Datenmenge erfordert, um von Grund auf neu trainiert zu werden. Eine gängige Praxis besteht darin, einen vortrainierten, hochmodernen Transformator wie BERT, RoBERTa, T5, GPT-2 oder DistilBERT zu nehmen und das Modell auf einen bestimmten Anwendungsfall abzustimmen (Lernen übertragen).

Dennoch kann selbst die Durchführung von Transfer Learning auf einem vortrainierten NLP-Modell oft eine herausfordernde Aufgabe sein, die große Mengen an gekennzeichneten Textdaten und ein Expertenteam zum Kuratieren der Daten erfordert. Diese Komplexität hindert die meisten Organisationen daran, diese Modelle effektiv zu nutzen, aber Zero-Shot-Learning hilft ML-Praktikern und Organisationen, diesen Mangel zu überwinden.

Zero-Shot-Lernen ist eine spezifische ML-Aufgabe, bei der ein Klassifikator während des Trainings mit einem Satz von Labels lernt und dann während der Inferenz mit einem anderen Satz von Labels bewertet wird, den der Klassifikator noch nie zuvor gesehen hat. In NLP können Sie einen Zero-Shot-Sequenzklassifikator verwenden, der für eine natürliche Sprachinferenz (NLI)-Aufgabe trainiert wurde, um Text ohne Feinabstimmung zu klassifizieren. In diesem Beitrag verwenden wir das beliebte NLI BART Modell bart-large-mnli, um Tweets zu klassifizieren. Dies ist ein großes vortrainiertes Modell (1.6 GB), das im Hugging Face-Modell-Hub verfügbar ist.

Hugging Face ist ein KI-Unternehmen, das eine Open-Source-Plattform (Hugging Face Hub) mit Tausenden von vortrainierten NLP-Modellen (Transformern) in mehr als 100 verschiedenen Sprachen und mit Unterstützung für verschiedene Frameworks wie TensorFlow und PyTorch verwaltet. Die Transformers-Bibliothek hilft Entwicklern und Datenwissenschaftlern beim Einstieg in komplexe NLP- und NLU-Aufgaben wie Klassifizierung, Informationsextraktion, Beantwortung von Fragen, Zusammenfassung, Übersetzung und Textgenerierung.

AWS und umarmendes Gesicht haben zusammengearbeitet, um die Einführung von NLP-Modellen zu vereinfachen und zu beschleunigen. Eine Reihe von Deep Learning Containers (DLCs) für Training und Inferenz in PyTorch oder TensorFlow sowie Hugging Face-Schätzer und -Prädiktoren für das SageMaker Python SDK sind jetzt verfügbar. Diese Funktionen helfen Entwicklern aller Erfahrungsstufen beim einfachen Einstieg in NLP.

Lösungsübersicht

Wir bieten eine funktionierende Lösung, die Tweets in Echtzeit von ausgewählten Twitter-Konten abruft. Für die Demonstration unserer Lösung verwenden wir drei Konten, Amazon Web Services (@awscloud), AWS-Sicherheit (@AWSSecurityInfo) und Amazon Science (@AmazonScience) und klassifizieren Sie ihre Inhalte in eine der folgenden Kategorien: Sicherheit, Datenbank, Datenverarbeitung, Speicherung und maschinelles Lernen. Wenn das Modell eine Kategorie mit einem Konfidenzwert von mehr als 40 % zurückgibt, wird eine Benachrichtigung gesendet.

Im folgenden Beispiel hat das Modell einen Tweet von Amazon Web Services in die Kategorie maschinelles Lernen mit einem Konfidenzwert von 97 % eingeordnet und eine Warnung generiert.

Die Lösung stützt sich auf ein vortrainiertes Transformer-Modell von Hugging Face (aus dem Hugging Face Hub), um Tweets basierend auf einer Reihe von Labels zu klassifizieren, die zum Zeitpunkt der Inferenz bereitgestellt werden – das Modell muss nicht trainiert werden. Die folgenden Screenshots zeigen weitere Beispiele und wie sie klassifiziert wurden.
Einige relevante Beispiele
Wir empfehlen Ihnen, die Lösung selbst auszuprobieren. Laden Sie einfach den Quellcode von der herunter GitHub-Repository und befolgen Sie die Bereitstellungsanweisungen in der README-Datei.

Lösungsarchitektur

Die Lösung hält eine offene Verbindung zum Endpunkt von Twitter aufrecht und sendet eine Nachricht an eine Warteschlange, wenn ein neuer Tweet eintrifft. Ein Konsument liest Nachrichten aus der Warteschlange, ruft den Klassifizierungsendpunkt auf und benachrichtigt abhängig von den Ergebnissen den Endbenutzer.

Das folgende ist das Architekturdiagramm der Lösung.
Umfang der Lösung
Der Lösungsworkflow besteht aus den folgenden Komponenten:

  1. Die Lösung stützt sich auf die Stream-API von Twitter, um Tweets in Echtzeit abzurufen, die den konfigurierten Regeln (Tweets von den interessierenden Konten) entsprechen. Dazu hält eine Anwendung, die in einem Container ausgeführt wird, eine offene Verbindung zum Endpunkt von Twitter aufrecht. Beziehen auf Twitter-API für weitere Informationen an.
  2. Der Container läuft weiter Amazon Elastic Container-Service (Amazon ECS), ein vollständig verwalteter Container-Orchestrierungsdienst, der Ihnen die Bereitstellung, Verwaltung und Skalierung containerisierter Anwendungen erleichtert. Eine einzelne Aufgabe wird auf einer serverlosen Infrastruktur ausgeführt, die von verwaltet wird AWS Fargate.
  3. Das Twitter Bearer Token wird sicher gespeichert in AWS Systems Manager-Parameterspeicher, eine Fähigkeit von AWS-Systemmanager die einen sicheren, hierarchischen Speicher für Konfigurationsdaten und Geheimnisse bietet. Das Container-Image wird gehostet auf Amazon Elastic Container-Registrierung (Amazon ECR), eine vollständig verwaltete Containerregistrierung, die Hochleistungshosting bietet.
  4. Immer wenn ein neuer Tweet eintrifft, legt die Containeranwendung den Tweet in eine Amazon Simple Queue-Dienst (Amazon SQS)-Warteschlange. Amazon SQS ist ein vollständig verwalteter Message Queuing-Service, mit dem Sie Microservices, verteilte Systeme und serverlose Anwendungen entkoppeln und skalieren können.
  5. Die Logik der Lösung liegt in einem AWS Lambda Funktion. Lambda ist ein serverloser, ereignisgesteuerter Rechendienst. Die Funktion konsumiert neue Tweets aus der Warteschlange und klassifiziert sie, indem sie einen Endpunkt aufruft.
  6. Der Endpunkt basiert auf einem Hugging Face-Modell und wird auf SageMaker gehostet. Der Endpunkt führt die Inferenz aus und gibt die Klasse des Tweets aus.
  7. Je nach Klassifizierung generiert die Funktion eine Benachrichtigung durch Amazon Simple Notification Service (Amazon SNS), ein vollständig verwalteter Nachrichtendienst. Sie können das SNS-Thema abonnieren und mehrere Ziele können diese Benachrichtigung erhalten (siehe Amazon SNS-Ereignisziele). Beispielsweise können Sie die Benachrichtigung als E-Mail-Nachricht an Posteingänge senden (siehe E-Mail Benachrichtigungen).

Stellen Sie Hugging Face-Modelle mit SageMaker bereit

Sie können eines der über 10,000 öffentlich verfügbaren Modelle aus dem auswählen Modellhub mit umarmendem Gesicht und stellen Sie sie mit SageMaker bereit, indem Sie verwenden Hugging Face Inference DLCs.

Beim Benutzen AWS CloudFormation, wählen Sie eine der öffentlich verfügbaren aus Umarmende Gesichtsschluss-Container und konfigurieren Sie das Modell und die Aufgabe. Diese Lösung verwendet die facebook/bart-large-mnli Modell und die Zero-Shot-Klassifizierungsaufgabe, aber Sie können eines der folgenden Modelle auswählen Zero-Shot-Klassifizierung auf dem Hugging Face Model Hub. Sie konfigurieren diese, indem Sie die Umgebungsvariablen HF_MODEL_ID und HF_TASK in Ihrer CloudFormation-Vorlage wie im folgenden Code festlegen:

SageMakerModel:
  Type: AWS::SageMaker::Model
  Properties:
    ExecutionRoleArn: !GetAtt SageMakerModelRole.Arn
    PrimaryContainer:
      Image: 763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-inference:1.7-transformers4.6-cpu-py36-ubuntu18.04
      Environment:
        HF_MODEL_ID: facebook/bart-large-mnli
        HF_TASK: zero-shot-classification
        SAGEMAKER_CONTAINER_LOG_LEVEL: 20
        SAGEMAKER_REGION: us-east-1

Alternativ können Sie, wenn Sie AWS CloudFormation nicht verwenden, die gleichen Ergebnisse mit wenigen Codezeilen erzielen. Beziehen auf Stellen Sie Modelle in Amazon SageMaker bereit für weitere Informationen an.

Um den Inhalt zu klassifizieren, rufen Sie einfach den SageMaker-Endpunkt auf. Das Folgende ist ein Python-Code-Snippet:

endpoint_name = os.environ['ENDPOINT_NAME']
labels = os.environ['ENDPOINT_NAME']

data = {
    'inputs': tweet,
    'parameters': {
        'candidate_labels': labels,
        'multi_class': False
    }
}

response = sagemaker.invoke_endpoint(EndpointName=endpoint_name,
                                     ContentType='application/json',
                                     Body=json.dumps(data))

response_body = json.loads(response['Body'].read())

Beachten Sie das falsch Wert für die multi_class Parameter, um anzugeben, dass die Summe aller Wahrscheinlichkeiten für jede Klasse 1 ergibt.

Lösungsverbesserungen

Sie können die hier vorgeschlagene Lösung erweitern, indem Sie die Tweets und die Modellergebnisse speichern. Amazon Simple Storage-Service (Amazon S3), ein Objektspeicherdienst, ist eine Option. Sie können Tweets, Ergebnisse und andere Metadaten als JSON-Objekte in einen S3-Bucket schreiben. Sie können dann Ad-hoc-Abfragen für diesen Inhalt durchführen, indem Sie verwenden Amazonas Athena, ein interaktiver Abfragedienst, der die Analyse von Daten in Amazon S3 mit Standard-SQL erleichtert.

Sie können den Verlauf nicht nur zum Extrahieren von Erkenntnissen, sondern auch zum Trainieren eines benutzerdefinierten Modells verwenden. Sie können die Hugging Face-Unterstützung verwenden, um ein Modell mit Ihren eigenen Daten mit SageMaker zu trainieren. Erfahren Sie mehr auf Führen Sie Schulungen auf Amazon SageMaker durch.

Reale Anwendungsfälle

Kunden experimentieren bereits mit Hugging Face-Modellen auf SageMaker. Seguros Bolivar, ein 1939 gegründetes kolumbianisches Finanz- und Versicherungsunternehmen, ist ein Beispiel.

„Wir haben eine Bedrohungsmeldelösung für Kunden und Versicherungsmakler entwickelt. Wir verwenden vortrainierte NLP-Modelle von Hugging Face, um Tweets von relevanten Konten zu klassifizieren, um Benachrichtigungen für unsere Kunden nahezu in Echtzeit als Präventionsstrategie zur Schadensminderung zu generieren. Ein Anspruch tritt ein, weil Kunden sich der Höhe des Risikos, dem sie ausgesetzt sind, nicht bewusst sind. Die Lösung ermöglicht es uns, bei unseren Kunden ein Bewusstsein zu schaffen und Risiken in konkreten Situationen messbar zu machen.“

– Julian Rico, Forschungs- und Wissensleiter bei Seguros Bolívar.

Seguros Bolívar arbeitete mit AWS zusammen, um ihre Lösung neu zu gestalten; Es basiert jetzt auf SageMaker und ähnelt dem in diesem Beitrag beschriebenen.

Zusammenfassung

Die Zero-Shot-Klassifizierung ist ideal, wenn Sie nur wenige Daten zum Trainieren eines benutzerdefinierten Textklassifikators haben oder wenn Sie es sich nicht leisten können, ein benutzerdefiniertes NLP-Modell zu trainieren. Für spezielle Anwendungsfälle, wenn Text auf bestimmten Wörtern oder Begriffen basiert, ist es besser, ein überwachtes Klassifizierungsmodell zu verwenden, das auf einem benutzerdefinierten Trainingssatz basiert.

In diesem Beitrag haben wir Ihnen gezeigt, wie Sie einen Nachrichtenklassifikator mit einem Zero-Shot-Modell von Hugging Face auf AWS erstellen. Wir haben Twitter als Nachrichtenquelle verwendet, aber Sie können eine Nachrichtenquelle auswählen, die Ihren spezifischen Bedürfnissen besser entspricht. Darüber hinaus können Sie das Modell einfach ändern, geben Sie einfach Ihr ausgewähltes Modell in der CloudFormation-Vorlage an.

Den Quellcode finden Sie in der GitHub-Repository Es enthält die vollständigen Einrichtungsanweisungen. Sie können es selbst klonen, ändern, bereitstellen und ausführen. Sie können es auch als Ausgangspunkt verwenden und die Kategorien und die Warnlogik anpassen oder eine andere Lösung für einen ähnlichen Anwendungsfall erstellen.

Bitte probieren Sie es aus und teilen Sie uns Ihre Meinung mit. Wie immer freuen wir uns über Ihr Feedback. Sie können es an Ihre üblichen AWS-Support-Kontakte oder im Internet senden AWS Forum für SageMaker.


Über die Autoren

Erstellen Sie ein nachrichtenbasiertes Echtzeit-Warnsystem mit Twitter, Amazon SageMaker und Hugging Face PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.David Laredo ist Prototyping Architect bei AWS Envision Engineering in LATAM, wo er an der Entwicklung mehrerer Prototypen für maschinelles Lernen mitgewirkt hat. Zuvor war er als Machine Learning Engineer tätig und beschäftigt sich seit über 5 Jahren mit maschinellem Lernen. Seine Interessengebiete sind NLP, Zeitreihen und End-to-End ML.

Erstellen Sie ein nachrichtenbasiertes Echtzeit-Warnsystem mit Twitter, Amazon SageMaker und Hugging Face PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Raffael Werneck ist Senior Prototyping Architect bei AWS Envision Engineering mit Sitz in Brasilien. Zuvor arbeitete er als Software Development Engineer bei Amazon.com.br und Amazon RDS Performance Insights.

Erstellen Sie ein nachrichtenbasiertes Echtzeit-Warnsystem mit Twitter, Amazon SageMaker und Hugging Face PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Vikram Elango ist AI/ML Specialist Solutions Architect bei Amazon Web Services mit Sitz in Virginia, USA. Vikram unterstützt Kunden aus der Finanz- und Versicherungsbranche mit Design und Vordenkerrolle bei der Erstellung und Bereitstellung von Anwendungen für maschinelles Lernen in großem Maßstab. Derzeit konzentriert er sich auf die Verarbeitung natürlicher Sprache, verantwortungsbewusste KI, Inferenzoptimierung und die Skalierung von ML im gesamten Unternehmen. In seiner Freizeit reist er gerne, wandert, kocht und campt mit seiner Familie.

Zeitstempel:

Mehr von AWS Maschinelles Lernen