Omówienie tokenów
Tokeny to wyrazy, zestawy znaków lub kombinacje wyrazów i znaków interpunkcyjnych generowanych przez duże modele językowe (LLM) podczas rozkładania tekstu. Tokenizacja to pierwszy krok trenowania. Usługa LLM analizuje relacje semantyczne między tokenami, takie jak często używane razem lub czy są używane w podobnych kontekstach. Po trenowaniu usługa LLM używa tych wzorców i relacji do generowania sekwencji tokenów wyjściowych na podstawie sekwencji danych wejściowych.
Przekształcanie tekstu w tokeny
Zestaw unikatowych tokenów, na których jest trenowany moduł LLM, jest znany jako jego słownictwo.
Rozważmy na przykład następujące zdanie:
Słyszałem psa szczekać głośno na kotu
Ten tekst może być tokenizowany jako:
- I
- Słyszał
- a
- pies
- kora
- głośno
- o
- a
- cat
Mając wystarczająco duży zestaw tekstu szkoleniowego, tokenizacja może skompilować słownictwo wielu tysięcy tokenów.
Typowe metody tokenizacji
Określona metoda tokenizacji różni się w zależności od metody LLM. Typowe metody tokenizacji obejmują:
- Tokenizacja wyrazów (tekst jest podzielony na poszczególne wyrazy na podstawie ogranicznika)
- Tokenizacja znaków (tekst jest podzielony na poszczególne znaki)
- Tokenizacja podwordu (tekst jest podzielony na częściowe wyrazy lub zestawy znaków)
Na przykład modele GPT opracowane przez platformę OpenAI używają typu tokenizacji podwordu nazywanego kodowaniem byte-pair (BPE). Interfejs OpenAI udostępnia narzędzie do wizualizacji sposobu tokenizacji tekstu.
Istnieją korzyści i wady każdej metody tokenizacji:
Rozmiar tokenu | Plusy | Minusy |
---|---|---|
Mniejsze tokeny (tokenizacja znaków lub podordów) | — Umożliwia modelowi obsługę szerszego zakresu danych wejściowych, takich jak nieznane słowa, literówki lub składnia złożona. — Może pozwolić na zmniejszenie rozmiaru słownictwa, co wymaga mniejszej ilości zasobów pamięci. |
— Dany tekst jest podzielony na więcej tokenów, co wymaga dodatkowych zasobów obliczeniowych podczas przetwarzania — Biorąc pod uwagę stały limit tokenu, maksymalny rozmiar danych wejściowych i wyjściowych modelu jest mniejszy |
Większe tokeny (tokenizacja wyrazów) | — Dany tekst jest podzielony na mniej tokenów, co wymaga mniejszej liczby zasobów obliczeniowych podczas przetwarzania. — Biorąc pod uwagę ten sam limit tokenu, maksymalny rozmiar danych wejściowych i wyjściowych modelu jest większy. |
— Może spowodować zwiększenie rozmiaru słownictwa, co wymaga większej ilości zasobów pamięci. — Może ograniczyć możliwości obsługi nieznanych słów, literówek lub składni złożonej. |
Jak maszyny LLM używają tokenów
Po zakończeniu tokenizacji przez moduł LLM przypisuje identyfikator do każdego unikatowego tokenu.
Rozważmy nasze przykładowe zdanie:
Słyszałem psa szczekać głośno na kotu
Po użyciu metody tokenizacji wyrazów model może przypisać identyfikatory tokenów w następujący sposób:
- I (1)
- słyszane (2)
- a (3)
- pies (4)
- kora (5)
- głośno (6)
- at (7)
- a (token "a" jest już przypisany identyfikator 3)
- kot (8)
Przypisując identyfikatory, tekst może być reprezentowany jako sekwencja identyfikatorów tokenów. Przykładowe zdanie będzie reprezentowane jako [1, 2, 3, 4, 5, 6, 7, 3, 8]. Zdanie "Słyszałem kota" byłoby reprezentowane jako [1, 2, 3, 8].
W miarę kontynuowania trenowania model dodaje wszelkie nowe tokeny w tekście szkoleniowym do swojego słownictwa i przypisuje mu identyfikator. Na przykład:
- meow (9)
- run (10)
Relacje semantyczne między tokenami można analizować przy użyciu tych sekwencji identyfikatorów tokenu. Wielowartościowe wektory liczbowe, znane jako osadzanie, są używane do reprezentowania tych relacji. Osadzanie jest przypisywane do każdego tokenu na podstawie tego, jak często jest używany razem z innymi tokenami lub w podobnych kontekstach.
Po wytrenowaniu model może obliczyć osadzanie dla tekstu zawierającego wiele tokenów. Model tokenizuje tekst, a następnie oblicza ogólną wartość osadzania na podstawie poznanych osadzań poszczególnych tokenów. Ta technika może służyć do semantycznych wyszukiwań dokumentów lub dodawania magazynów wektorów do sztucznej inteligencji.
Podczas generowania danych wyjściowych model przewiduje wartość wektora dla następnego tokenu w sekwencji. Następnie model wybiera następny token ze słownictwa na podstawie tej wartości wektora. W praktyce model oblicza wiele wektorów przy użyciu różnych elementów osadzania poprzednich tokenów. Następnie model ocenia wszystkie potencjalne tokeny z tych wektorów i wybiera najbardziej prawdopodobną, aby kontynuować sekwencję.
Generowanie danych wyjściowych to operacja iteracyjna. Model dołącza przewidywany token do sekwencji do tej pory i używa go jako danych wejściowych następnej iteracji, tworząc końcowy wynik jeden token naraz.
Limity tokenów
LlMs mają ograniczenia dotyczące maksymalnej liczby tokenów, które mogą być używane jako dane wejściowe lub generowane jako dane wyjściowe. To ograniczenie często powoduje połączenie tokenów wejściowych i wyjściowych w maksymalnym oknie kontekstowym. W połączeniu z modelem limit tokenu i metoda tokenizacji określają maksymalną długość tekstu, który można podać jako dane wejściowe lub wygenerowane jako dane wyjściowe.
Rozważmy na przykład model z maksymalnym oknem kontekstu wynoszącym 100 tokenów. Model przetwarza nasze przykładowe zdania jako tekst wejściowy:
Słyszałem psa szczekać głośno na kotu
Przy użyciu metody tokenizacji opartej na wyrazach dane wejściowe to dziewięć tokenów. Spowoduje to pozostawienie 91 tokenów słów dostępnych dla danych wyjściowych.
Przy użyciu metody tokenizacji opartej na znakach dane wejściowe to 34 tokeny (w tym spacje). Pozostawia to tylko 66 tokenów znaków dostępnych dla danych wyjściowych.
Ceny i ograniczanie szybkości oparte na tokenach
Generowanie usług sztucznej inteligencji często używa cen opartych na tokenach. Koszt każdego żądania zależy od liczby tokenów wejściowych i wyjściowych. Ceny mogą się różnić między danymi wejściowymi i wyjściowymi. Zobacz na przykład cennik usługi Azure OpenAI Service.
Usługi generowania sztucznej inteligencji mogą być również ograniczone do maksymalnej liczby tokenów na minutę (TPM). Te limity szybkości mogą się różnić w zależności od regionu usługi i usługi LLM. Aby uzyskać więcej informacji na temat określonych regionów, zobacz Limity przydziału i limity usługi Azure OpenAI Service.