Aufgabenleitfaden für die Textklassifizierung

Mit der Textklassifikatoraufgabe „MediaPipe“ können Sie Text in eine Reihe definierter Kategorien einteilen, z. B. nach positiver oder negativer Stimmung. Die Kategorien werden während des Trainings des Modells definiert. Diese Aufgabe verarbeitet Textdaten mit einem Modell für maschinelles Lernen (ML) als statische Daten und gibt eine Liste von Kategorien und ihren Wahrscheinlichkeitswerten aus.

Jetzt ausprobieren

Jetzt starten

Beginnen Sie mit dieser Aufgabe. Folgen Sie dazu einer der folgenden Implementierungsleitfäden für die Plattform, an der Sie gerade arbeiten:

Diese plattformspezifischen Leitfäden führen Sie durch eine grundlegende Implementierung dieser Aufgabe, einschließlich eines empfohlenen Modells und eines Codebeispiels mit empfohlenen Konfigurationsoptionen.

Taskdetails

In diesem Abschnitt werden die Funktionen, Eingaben, Ausgaben und Konfigurationsoptionen dieser Aufgabe beschrieben.

Funktionen

  • Eingabetextverarbeitung: Unterstützung der Out-of-Graph-Tokenisierung für Modelle ohne In-Graph-Tokenisierung.
  • Mehrere Klassifizierungskopfzeilen: Jeder Kopf kann einen eigenen Kategoriesatz verwenden.
  • Gebietsschema für Labelkarte: die Sprache für Anzeigenamen festlegen
  • Score-Schwellenwert: Ergebnisse basierend auf den Vorhersagewerten filtern
  • Top-K-Klassifizierungsergebnisse – Anzahl der Erkennungsergebnisse filtern
  • Zulassungs- und Sperrliste für Labels: Geben Sie die erkannten Kategorien an.
Aufgabeneingaben Aufgabenausgaben
Der Textklassifikator unterstützt die folgenden Eingabedatentypen:
  • String
Der Textklassifikator gibt eine Liste von Kategorien aus, die Folgendes enthalten:
  • Kategorieindex: Der Index der Kategorie in den Modellausgaben
  • Wert: der Konfidenzwert für diese Kategorie, ausgedrückt als Wahrscheinlichkeit zwischen null und eins als Gleitkommawert.
  • Kategoriename (optional): Der Name der Kategorie, wie in den Metadaten des TensorFlow Lite-Modells angegeben, falls verfügbar.
  • Anzeigename der Kategorie (optional): ein Anzeigename für die Kategorie, wie in den Metadaten des TensorFlow Lite-Modells angegeben, in der Sprache, die über die Sprachoptionen für Anzeigenamen angegeben wird, falls verfügbar.

Konfigurationsoptionen

Diese Aufgabe hat die folgenden Konfigurationsoptionen:

Option Beschreibung Wertebereich Standardwert
displayNamesLocale Legt die Sprache von Labels fest, die für Anzeigenamen bereitgestellt werden, die in den Metadaten des Aufgabenmodells angegeben sind, sofern verfügbar. Der Standardwert für Englisch ist en. Mit der TensorFlow Lite Metadata Writer API können Sie den Metadaten eines benutzerdefinierten Modells lokalisierte Labels hinzufügen. Sprachcode en
maxResults Legt die optionale maximale Anzahl der Klassifizierungsergebnisse mit den besten Bewertungen fest, die zurückgegeben werden sollen. Wenn < 0, werden alle verfügbaren Ergebnisse zurückgegeben. Beliebige positive Zahlen -1
scoreThreshold Legt den Schwellenwert für den Vorhersagewert fest, der den in den Modellmetadaten angegebenen Grenzwert überschreibt (falls vorhanden). Ergebnisse unter diesem Wert werden abgelehnt. Beliebige Gleitkommazahl Nicht festgelegt
categoryAllowlist Legt die optionale Liste der zulässigen Kategorienamen fest. Wenn das Feld nicht leer ist, werden Klassifizierungsergebnisse herausgefiltert, deren Kategoriename nicht in diesem Set enthalten ist. Doppelte oder unbekannte Kategorienamen werden ignoriert. Diese Option und categoryDenylist schließen sich gegenseitig aus und die Verwendung beider Werte führt zu einem Fehler. Beliebige Strings Nicht festgelegt
categoryDenylist Legt die optionale Liste der nicht zulässigen Kategorienamen fest. Wenn das Feld nicht leer ist, werden Klassifizierungsergebnisse herausgefiltert, deren Kategoriename in diesem Satz enthalten ist. Doppelte oder unbekannte Kategorienamen werden ignoriert. Diese Option und categoryAllowlist schließen sich gegenseitig aus und die Verwendung beider Optionen führt zu einem Fehler. Beliebige Strings Nicht festgelegt

Modelle

Der Textklassifikator kann mit mehr als einem ML-Modell verwendet werden. Beginnen Sie mit dem standardmäßigen, empfohlenen Modell für Ihre Zielplattform, wenn Sie mit dieser Aufgabe beginnen. Die anderen verfügbaren Modelle machen in der Regel Kompromisse zwischen Leistung, Genauigkeit, Auflösung und Ressourcenanforderungen und beinhalten in einigen Fällen zusätzliche Funktionen.

Die vortrainierten Modelle werden für die Sentimentanalyse trainiert und sagen voraus, ob die Stimmung des Eingabetexts positiv oder negativ ist. Die Modelle wurden mit dem Dataset SST-2 (Stanford Sentiment Treebank) trainiert, das aus Filmrezensionen besteht, die entweder positiv oder negativ gekennzeichnet sind. Die Modelle unterstützen nur Englisch. Da sie mit einem Datensatz von Filmrezensionen trainiert wurden, ist die Qualität von Texten zu anderen Themen möglicherweise verringert.

Dieses Modell verwendet eine BERT-basierte Architektur (insbesondere das MobileBERT-Modell) und wird aufgrund der hohen Genauigkeit empfohlen. Es enthält Metadaten, mit denen die Aufgabe eine BERT-Tokenisierung außerhalb des Diagramms ausführen kann.

Modellname Form eingeben Quantisierungstyp Versionen
BERT-Klassifikator [1x128],[1x128],[1x128] dynamischer Bereich Neueste

Durchschnittliches Worteinbettungsmodell

Dieses Modell verwendet eine durchschnittliche Architektur zum Einbetten von Wörtern. Dieses Modell bietet eine kleinere Modellgröße und eine geringere Latenz, allerdings auf Kosten einer geringeren Vorhersagegenauigkeit im Vergleich zum BERT-Klassifikator. Das Anpassen dieses Modells durch zusätzliches Training ist außerdem schneller als das Training des BERT-basierten Klassifikators. Dieses Modell enthält Metadaten, mit denen die Aufgabe eine Regex-Tokenisierung außerhalb des Diagramms durchführen kann.

Modellname Form eingeben Quantisierungstyp Versionen
Durchschnittliche Worteinbettung 1 x 256 Keine (float32) Neueste

Aufgaben-Benchmarks

Im Folgenden sind die Aufgaben-Benchmarks für die gesamte Pipeline basierend auf den oben vortrainierten Modellen aufgeführt. Das Latenzergebnis ist die durchschnittliche Latenz auf Pixel 6 mit CPU / GPU.

Modellname CPU-Latenz GPU-Latenz
Durchschnittliche Worteinbettung 0,14 ms -
BERT-Klassifikator 57,68 ms -

Benutzerdefinierte Modelle

Sie können für diese Aufgabe ein benutzerdefiniertes ML-Modell verwenden, wenn Sie die Funktionen der bereitgestellten Modelle verbessern oder ändern möchten. Sie können Model Maker verwenden, um die vorhandenen Modelle zu ändern, oder ein Modell mit Tools wie TensorFlow erstellen. Benutzerdefinierte Modelle, die mit MediaPipe verwendet werden, müssen im TensorFlow Lite-Format vorliegen und bestimmte Metadaten enthalten, die die Betriebsparameter des Modells beschreiben. Sie sollten die Verwendung von Model Maker in Betracht ziehen, um die bereitgestellten Modelle für diese Aufgabe zu ändern, bevor Sie eigene erstellen.