Zadanie MediaPipe Text Embedder umożliwia tworzenie liczbowej reprezentacji danych tekstowych w celu uchwycenia ich znaczenia semantycznego. Ta funkcja jest często używana do porównywania podobieństwa semantycznego 2 fragmentów tekstu za pomocą technik porównywania matematycznego, takich jak podobieństwo wg cosinusa. To zadanie działa na danych tekstowych za pomocą modelu systemów uczących się (ML) i wyprowadza liczbową reprezentację danych tekstowych w postaci listy wektorów cech o wysokiej wymiarowości, zwanych też wektorami zanurzeniowymi, w postaci liczby zmiennoprzecinkowej lub zaokrąglonej.
Rozpocznij
Aby zacząć korzystać z tego zadania, postępuj zgodnie z jednym z tych przewodników dotyczących wdrażania na platformie docelowej. Te przewodniki dotyczące poszczególnych platform zawierają podstawowe informacje o wdrażaniu tego zadania, w tym zalecany model i przykład kodu z zalecanymi opcjami konfiguracji:
- Android – przykład kodu – przewodnik
- Python – przykład kodu – przewodnik
- Web – przykład kodu – przewodnik
Szczegóły działania
W tej sekcji opisano możliwości, dane wejściowe, dane wyjściowe i opcje konfiguracji tego zadania.
Funkcje
- Przetwarzanie tekstu wejściowego – obsługa tokenizacji poza grafem dla modeli bez tokenizacji w grafie.
- Obliczanie podobieństwa wektorów za pomocą embeddingu – wbudowana funkcja pomocnicza do obliczania podobieństwo cosinusa między dwoma wektorami cech.
- Kwantyzacja – obsługa kwantyzacji skalarnej wektorów cech.
Dane wejściowe zadania | Dane wyjściowe |
---|---|
Wtyczka do wklejania tekstu obsługuje te typy danych wejściowych:
|
Text Embedder generuje listę wektorów embeddingu zawierającą:
|
Opcje konfiguracji
To zadanie ma te opcje konfiguracji:
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
l2_normalize |
Określa, czy zwrócony wektor cech ma być znormalizowany za pomocą normy L2. Używaj tej opcji tylko wtedy, gdy model nie zawiera już natywnej operacji TFLite L2_NORMALIZATION. W większości przypadków tak jest już w ogóle, więc normalizacja L2 jest osiągana przez wnioskowanie TFLite bez potrzeby stosowania tej opcji. | Boolean |
False |
quantize |
Określa, czy zwrócony wektor dystrybucyjny ma być zaokrąglony do bajtów za pomocą kwantyzacji skalarnej. Zakłada się, że wektory mają długość jednostkową, dlatego wartość dowolnego wymiaru musi mieścić się w zakresie [-1,0, 1,0]. Jeśli nie, użyj opcji l2_normalize. | Boolean |
False |
Modele
Gdy rozpoczniesz tworzenie tego zadania, otrzymasz domyślny, zalecany model.
model Universal Sentence Encoder (zalecany);
Ten model korzysta z podwójnej architektury kodowania i został wytrenowany na różnych zbiorach danych z pytaniami i odpowiedziami.
Rozważ te pary zdań:
- ("it's a charming and often affecting journey", "what a great and fantastic trip")
- ("I like my phone", "I hate my phone")
- („Ta restauracja ma świetny chwyt marketingowy”, „Musimy jeszcze raz sprawdzić szczegóły naszego planu”)
W pierwszych 2 parach zbliżenia słów będzie wyższe niż w 3 parach, ponieważ pierwsze 2 zbiory zdań mają wspólny temat „wycieczka” i „opinia o telefonie”, a 3 zbiór zdań nie ma wspólnego tematu.
Zwróć uwagę, że mimo że zdania w drugiej parze mają przeciwne nastroje, mają wysoki wynik podobieństwa, ponieważ dotyczą tego samego tematu.
Nazwa modelu | Kształt wejściowy | Typ kwantowania | Wersje |
---|---|---|---|
Universal Sentence Encoder | ciąg tekstowy, ciąg tekstowy, ciąg tekstowy | Brak (float32) | Najnowsze |
Porównania zadań
Poniżej znajdziesz punkty odniesienia zadań dla całego potoku na podstawie wymienionych powyżej wstępnie wytrenowanych modeli. Wynik opóźnienia to średnie opóźnienie na Pixelu 6 z wykorzystaniem procesora CPU lub GPU.
Nazwa modelu | Czas oczekiwania procesora | Opóźnienie GPU |
---|---|---|
Uniwersalny koder zdań | 18,21 ms | - |