Przewodnik umieszczania tekstu

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.

Wypróbuj!

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:

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:
  • Ciąg znaków
Na wyjściu znajduje się lista reprezentacji właściwościowych, w skład której wchodzą:
  • Umieszczanie: sam wektor cech w postaci zmiennoprzecinkowej lub kwantyzacji skalarnej.
  • Indeks nagłówka: indeks nagłówka, który utworzył dane osadzanie.
  • Nazwa nagłówka (opcjonalnie): nazwa nagłówka, za pomocą którego utworzono obiekt.

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.

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 -