Anleitung zum Einbetten von Text

Zwei Beispielsätze, die die entsprechenden Einbettungen für jedes Wort in den Sätzen als Array zeigen.

Mit der MediaPipe-Aufgabe „Text Embedder“ 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 Texten mithilfe von mathematischen Vergleichstechniken wie der Kosinusähnlichkeit zu vergleichen. Bei dieser Aufgabe werden Textdaten mit einem Modell für maschinelles Lernen (ML) verarbeitet und eine numerische Darstellung der Textdaten als Liste von hochdimensionalen Feature-Vektoren, auch als Einbettungsvektoren bezeichnet, in Gleitkomma- oder Quantisierungsform ausgegeben.

Jetzt testen!

Jetzt starten

Folgen Sie einer dieser Implementierungsanleitungen für Ihre Zielplattform, um diese Aufgabe zu verwenden. In diesen plattformspezifischen Anleitungen werden Sie durch die grundlegende Implementierung dieser Aufgabe geführt. Sie finden dort auch ein empfohlenes Modell und ein Codebeispiel 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 Graphen für Modelle ohne Tokenisierung innerhalb des Graphen.
  • Berechnung der Ähnlichkeit von Einbettungen: Eingebettete Dienstfunktion zum Berechnen der Kosinusähnlichkeit zwischen zwei Merkmalsvektoren.
  • Quantisierung: Unterstützt die Skalarquantisierung für die Feature-Vektoren.
Aufgabeneingaben Aufgabenausgaben
Der Text-Embedder akzeptiert den folgenden Eingabedatentyp:
  • String
Der Text-Embedder gibt eine Liste von Einbettungen aus, die Folgendes enthält:
  • Einbettung: Der Merkmalsvektor selbst, entweder in Gleitkommaform oder skalar quantisiert.
  • Kopfindex: Der Index für den Kopf, der dieses Einbettungselement erstellt hat.
  • Name des Heads (optional): Der Name des Heads, der dieses Einbettungsobjekt erstellt hat.

Konfigurationsoptionen

Für diese Aufgabe gibt es die folgenden Konfigurationsoptionen:

Option Beschreibung Wertebereich Standardwert
l2_normalize Gibt an, ob der zurückgegebene Feature-Vektor mit der L2-Norm normalisiert werden soll. Verwenden Sie diese Option nur, wenn das Modell noch keine native TFLite-Operation vom Typ „L2_NORMALIZATION“ enthält. In den meisten Fällen ist das bereits der Fall und die L2-Normalisierung wird durch TFLite-Inferenz erreicht, sodass diese Option nicht erforderlich ist. Boolean False
quantize Gibt an, ob die zurückgegebene Einbettung über die Skalarquantisierung in Bytes quantisiert werden soll. Für Einbettungen wird implizit davon ausgegangen, dass sie normiert sind. Daher hat jede Dimension garantiert einen Wert im Bereich [−1,0; 1,0]. Verwenden Sie die Option „l2_normalize“, wenn dies nicht der Fall ist. Boolean False

Modelle

Wir bieten ein standardmäßiges, empfohlenes Modell, 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 Gimmick“, „Wir müssen die Details unseres Plans noch einmal überprüfen“)

Die Text-Embeddings in den ersten beiden Paaren haben eine höhere Kosinusähnlichkeit als die Embeddings im dritten Paar, da die ersten beiden Satzpaare das gemeinsame Thema „Reisestimmung“ bzw. „Meinung zum Smartphone“ haben, während das dritte Satzpaar kein gemeinsames Thema hat.

Beachten Sie, dass die beiden Sätze im zweiten Paar zwar gegensätzliche Emotionen haben, aber einen hohen Ähnlichkeitsscore haben, da sie ein gemeinsames Thema haben.

Modellname Eingabeform Quantisierungstyp Versionen
Universal Sentence Encoder string, string, string Keine (float32) Neueste

Benchmarks für Aufgaben

Hier sind die Aufgaben-Benchmarks für die gesamte Pipeline, die auf den oben genannten vorab trainierten Modellen basieren. Das Latenzergebnis ist die durchschnittliche Latenz auf Pixel 6 mit CPU / GPU.

Modellname CPU-Latenz GPU-Latenz
Universal Sentence Encoder 18,21 ms -