Zadanie MediaPipe Text Embedder pozwala utworzyć liczbową reprezentację danych tekstowych w celu zebrania ich semantycznego znaczenia. Ta funkcja jest często używana do porównywania semantycznego podobieństwa dwóch fragmentów tekstu za pomocą matematycznych metod porównywania, takich jak podobieństwo cosinusowe. To zadanie operuje na danych tekstowych z użyciem modelu systemów uczących się i generuje liczbową reprezentację danych tekstowych w postaci listy wysokowymiarowych wektorów cech (tzw. wektorów dystrybucyjnych) w postaci zmiennoprzecinkowej lub kwantowej.
Rozpocznij
Zacznij od wykonania tego zadania, postępując zgodnie z instrukcjami podanymi w jednym z przewodników po implementacji dla platformy docelowej. Przewodniki dotyczące poszczególnych platform przeprowadzą Cię przez podstawowe wdrożenie tego zadania, w tym zalecany model i przykładowy kod z zalecanymi opcjami konfiguracji:
- Android – przykładowy kod – przewodnik
- Python – przykładowy kod – przewodnik
- Sieć – przykładowy kod – Przewodnik
Szczegóły działania
W tej sekcji opisujemy możliwości, dane wejściowe, dane wyjściowe i opcje konfiguracji tego zadania.
Funkcje
- Przetwarzanie tekstu wejściowego – obsługuje tokenizację poza wykresem w przypadku modeli bez tokenizacji na wykresie.
- Obliczanie podobieństwa między 2 wektorami cech – wbudowana funkcja narzędziowa służąca do obliczania podobieństwa cosinusowego między 2 wektorami cech.
- Kwantyzacja – obsługuje kwantyzację skalarną wektorów cech.
Dane wejściowe zadań | Wyniki działania |
---|---|
Umieszczony tekst akceptuje ten typ danych wejściowych:
|
Na wyjściu znajduje się lista reprezentacji właściwościowych, w skład której wchodzą:
|
Opcje konfiguracji
To zadanie ma te opcje konfiguracji:
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
l2_normalize |
Określa, czy znormalizować zwrócony wektor cech z normą L2. Użyj tej opcji tylko wtedy, gdy model nie zawiera jeszcze natywnej operacji L2_NORMALIZATION TFLite. W większości przypadków tak się dzieje i w ten sposób można uzyskać normalizację L2 za pomocą wnioskowania TFLite bez potrzeby użycia tej opcji. | Boolean |
False |
quantize |
Określa, czy zwrócone umieszczenie ma zostać poddane kwantyzacji do liczby bajtów za pomocą kwantyzacji skalarnej. Osadzone elementy są domyślnie uznawane za normę jednostki, dlatego każdy wymiar na pewno ma wartość [-1,0, 1,0]. Jeśli tak nie jest, użyj opcji l2_normalize. | Boolean |
False |
Modele
Gdy zaczniesz tworzyć to zadanie, udostępniamy domyślny, zalecany model.
Model uniwersalnego kodera zdań (zalecany)
Ten model korzysta z architektury podwójnego kodera i został wytrenowany na różnych zbiorach danych typu pytania i odpowiedzi.
Rozważmy następujące pary zdań:
- („to urocza i często zmieniająca podróż", „wspaniała i wspaniała podróż”)
- ("Lubię swój telefon", "Nienawidzę swojego telefonu")
- ("Ta restauracja to świetny pomysł", "Musimy dokładnie sprawdzić szczegóły naszego planu")
Wektory dystrybucyjne tekstu w pierwszych 2 parach będą miały większe podobieństwo cosinusowe niż reprezentacje w trzeciej parze, ponieważ pierwsze 2 pary zdań mają wspólny temat – odpowiednio „podróż do podróży” i „opinie telefoniczne”, podczas gdy trzecia para zdań nie ma wspólnego tematu.
Pamiętaj, że chociaż 2 zdania w drugiej parze mają różne opinie, mają wysoki wynik podobieństwa, ponieważ dotyczą wspólnego tematu.
Nazwa modelu | Wprowadź kształt | Typ kwantyzacji | Wersje |
---|---|---|---|
Uniwersalny koder zdań | string, string, string | Brak (float32) | Najnowsze |
Testy porównawcze działań
Oto porównania zadań dla całego potoku na podstawie powyższych wytrenowanych modeli. Wynik opóźnienia to średnie opóźnienie na Pixelu 6 korzystającym z procesora / GPU.
Nazwa modelu | Czas oczekiwania procesora | Opóźnienie GPU |
---|---|---|
Uniwersalny koder zdań | 18,21 ms | - |