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 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:
- Android – Codebeispiel – Anleitung
- Python – Codebeispiel – Anleitung
- Web – Codebeispiel – Leitfaden
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:
|
Der Text Embedder gibt eine Liste von Einbettungen aus, die aus Folgendem bestehen:
|
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.
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 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 | - |