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 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:
- Android – Codebeispiel – Anleitung
- Python – Codebeispiel – Anleitung
- Web – Codebeispiel – Anleitung
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:
|
Der Text-Embedder gibt eine Liste von Einbettungen aus, die Folgendes enthält:
|
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.
Universal Sentence Encoder-Modell (empfohlen)
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 | - |