Anleitung zum Einbetten von Text

Mit der Aufgabe „MediaPipe-Texteinbettung“ können Sie eine numerische Darstellung von Textdaten erstellen, um ihre semantische Bedeutung zu erfassen. Diese Funktion wird häufig verwendet, um die semantische Ähnlichkeit von zwei Textelementen mithilfe mathematischer Vergleichstechniken wie Kosinus-Ähnlichkeit zu vergleichen. Diese Aufgabe verarbeitet Textdaten mit einem Modell für maschinelles Lernen (ML) und gibt eine numerische Darstellung der Textdaten als Liste hochdimensionaler Featurevektoren, auch Einbettungsvektoren genannt, entweder in Gleitkomma- oder quantisierter Form aus.

Jetzt ausprobieren

Jetzt starten

Beginnen Sie mit dieser Aufgabe, indem Sie einem dieser Implementierungsleitfäden für Ihre Zielplattform folgen. 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ützt die Tokenisierung außerhalb des Diagramms für Modelle ohne In-Graph-Tokenisierung.
  • Berechnung der Einbettungsähnlichkeit: Integrierte Dienstfunktion zur Berechnung der Kosinus-Ähnlichkeit zwischen zwei Featurevektoren.
  • Quantisierung: Unterstützt die skalare Quantisierung für die Featurevektoren.
Aufgabeneingaben Aufgabenausgaben
Texteinbetter unterstützt folgende Eingabedatentypen:
  • String
Der Text Embedder gibt eine Liste von Einbettungen aus, die aus Folgendem bestehen:
  • Einbettung: der Featurevektor selbst, entweder in Gleitkommaform oder skalarquantisiert.
  • Head-Index: Der Index für den Kopf, der diese Einbettung erzeugt hat.
  • Name des Kopfs (optional): der Name des Kopfes, der diese Einbettung erzeugt hat.

Konfigurationsoptionen

Diese Aufgabe hat die folgenden Konfigurationsoptionen:

Option Beschreibung Wertebereich Standardwert
l2_normalize Gibt an, ob der zurückgegebene Featurevektor mit der L2-Norm normalisiert werden soll. Verwenden Sie diese Option nur, wenn das Modell noch keinen nativen L2_NORMALIZATION TFLite-Vorgang enthält. In den meisten Fällen ist dies bereits der Fall und die L2-Normalisierung wird daher durch TFLite-Inferenz erreicht, ohne dass diese Option erforderlich ist. Boolean False
quantize Gibt an, ob die zurückgegebene Einbettung über eine skalare Quantisierung in Byte quantisiert werden soll. Bei Einbettungen wird implizit davon ausgegangen, dass es sich um eine Einheitsnorm handelt. Daher hat jede Dimension garantiert einen Wert bei [-1,0, 1,0]. Sollte dies nicht der Fall sein, verwenden Sie die Option „l2_normalize“. Boolean False

Modelle

Wir bieten ein empfohlenes Standardmodell an, wenn Sie mit dieser Aufgabe beginnen.

Dieses Modell verwendet eine Dual-Encoder-Architektur und wurde mit verschiedenen Frage-Antwort-Datasets trainiert.

Betrachten Sie die folgenden Satzpaare:

  • ("Es ist eine charmante und oft bewegende Reise", "was für eine tolle und fantastische Reise")
  • („Ich mag mein Smartphone“, „Ich hasse mein Smartphone“)
  • („Dieses Restaurant hat ein tolles Spiel“, „Wir müssen die Details unseres Plans noch einmal prüfen.)

Die Texteinbettungen in den ersten beiden Paaren haben eine höhere Kosinus-Ähnlichkeit als die Einbettungen im dritten Paar, da die ersten beiden Satzpaare das Thema "Fahrtstimmung" bzw. "Telefonmeinung" haben, während das dritte Satzpaar kein gemeinsames Thema hat.

Die beiden Sätze im zweiten Paar haben zwar gegensätzliche Stimmungen, haben aber einen hohen Ähnlichkeitswert, da sie ein gemeinsames Thema haben.

Modellname Form eingeben Quantisierungstyp Versionen
Universal Sentence Encoder String, String, String 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
Universeller Satz-Encoder 18,21 ms -