Przewodnik umieszczania tekstu

Dwa przykładowe zdania, które pokazują odpowiadające im wektory dla każdego słowa w zdaniach jako tablicę.

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.

Wypróbuj to!

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:

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:
  • Ciąg znaków
Text Embedder generuje listę wektorów embeddingu zawierającą:
  • Wstawianie: wektor cech w formie zmiennoprzecinkowej lub skalarnej.
  • Indeks głowy: indeks głowy, która wygenerowała to ujednolicenie.
  • Nazwa głowy (opcjonalnie): nazwa głowy, która wygenerowała ten element.

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.

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 -