Principy tokenů
Tokeny jsou slova, znakové sady nebo kombinace slov a interpunkce, které používají velké jazykové modely (LLM) k rozkladu textu. Tokenizace je prvním krokem v trénování. LLM analyzuje sémantické vztahy mezi tokeny, například jak často se používají společně nebo jestli se používají v podobných kontextech. Po trénování LLM použije tyto vzory a relace k vygenerování posloupnosti výstupních tokenů na základě vstupní sekvence.
Převod textu na tokeny
Sada jedinečných tokenů, na kterých se trénuje LLM, se označuje jako jeho slovník.
Představte si například následující větu:
Slyšel jsem psí štěkání hlasitě u kočky
Tento text může být tokenizován takto:
- I
- slyšel
- d
- pes
- kůra
- hlasitě
- v
- d
- cat
Díky dostatečně velké sadě trénovacího textu může tokenizace zkompilovat slovník mnoha tisíc tokenů.
Běžné metody tokenizace
Konkrétní metoda tokenizace se liší podle LLM. Mezi běžné metody tokenizace patří:
- Tokenizace wordu (text je rozdělen na jednotlivá slova na základě oddělovače)
- Tokenizace znaků (text je rozdělený na jednotlivé znaky)
- Tokenizace dílčích slov (text je rozdělený na částečná slova nebo znakové sady)
Například modely GPT vyvinuté openAI používají typ tokenizace subword, která se označuje jako BPE (Byte-Pair Encoding ). OpenAI poskytuje nástroj pro vizualizaci způsobu tokenizace textu.
Pro každou metodu tokenizace existují výhody a nevýhody:
Velikost tokenu | Výhody | Nevýhody |
---|---|---|
Menší tokeny (tokenizace znaku nebo subwordu) | - Umožňuje modelu zpracovat širší rozsah vstupů, jako jsou neznámá slova, překlepy nebo složitá syntaxe. – Může umožnit zmenšení velikosti slovníku, což vyžaduje méně prostředků paměti. |
– Daný text je rozdělený na více tokenů, což při zpracování vyžaduje další výpočetní prostředky. – Při dosažení limitu pevného tokenu je maximální velikost vstupu a výstupu modelu menší. |
Větší tokeny (tokenizace slov) | – Daný text je rozdělen na méně tokenů, což při zpracování vyžaduje méně výpočetních prostředků. – Vzhledem ke stejnému limitu tokenů je maximální velikost vstupu a výstupu modelu větší. |
– Může způsobit větší velikost slovníku, což vyžaduje více prostředků paměti. – Může omezit schopnost modelů zpracovávat neznámá slova, překlepy nebo složitou syntaxi. |
Jak LLM používají tokeny
Po dokončení tokenizace LLM přiřadí ID každému jedinečnému tokenu.
Podívejte se na naši ukázku věty:
Slyšel jsem psí štěkání hlasitě u kočky
Jakmile model použije metodu tokenizace slov, může přiřadit ID tokenů následujícím způsobem:
- I (1)
- slyšet (2)
- a (3)
- pes (4)
- kůra (5)
- hlasitě (6)
- v (7)
- a (token "a" už má přiřazené ID 3)
- kočka (8)
Přiřazením ID lze text reprezentovat jako posloupnost ID tokenů. Příklad věty by byla reprezentována jako [1, 2, 3, 4, 5, 6, 7, 3, 8]. Věta "Slyšel jsem kočku" by byla reprezentována jako [1, 2, 3, 8].
S tím, jak trénování pokračuje, model přidá do slovníku všechny nové tokeny v trénovacím textu a přiřadí mu ID. Příklad:
- meow (9)
- spuštění (10)
Sémantické vztahy mezi tokeny je možné analyzovat pomocí těchto sekvencí ID tokenu. Číselné vektory s více hodnotami, označované jako vkládání, se používají k reprezentaci těchto relací. Vkládání se přiřadí ke každému tokenu na základě toho, jak často se používá společně s ostatními tokeny nebo v podobných kontextech.
Po vytrénování může model vypočítat vkládání textu, který obsahuje více tokenů. Model tokenizuje text a pak vypočítá celkovou hodnotu vkládání na základě naučených vkládání jednotlivých tokenů. Tuto techniku lze použít pro sémantické vyhledávání dokumentů nebo přidání vektorových úložišť do AI.
Během generování výstupu model predikuje hodnotu vektoru pro další token v sekvenci. Model pak vybere další token ze slovníku na základě této vektorové hodnoty. V praxi model vypočítá více vektorů pomocí různých prvků vkládání předchozích tokenů. Model pak vyhodnotí všechny potenciální tokeny z těchto vektorů a vybere nejpravděpodobnější token, který bude pokračovat v sekvenci.
Generování výstupu je iterativní operace. Model připojí zatím předpovězený token do posloupnosti a použije ho jako vstup pro další iteraci a současně vytvoří poslední výstup jednoho tokenu.
Limity tokenů
LLM mají omezení týkající se maximálního počtu tokenů, které je možné použít jako vstup nebo vygenerovat jako výstup. Toto omezení často způsobuje kombinování vstupních a výstupních tokenů do okna maximálního kontextu.
Například GPT-4 podporuje až 8 192 tokenů kontextu. Kombinovaná velikost vstupních a výstupních tokenů nesmí překročit 8 192.
Společně určuje limit tokenu modelu a metodu tokenizace maximální délku textu, kterou lze poskytnout jako vstup nebo vygenerovat jako výstup.
Představte si například model s maximálním kontextovým oknem 100 tokenů. Model zpracovává ukázkové věty jako vstupní text:
Slyšel jsem psí štěkání hlasitě u kočky
Když použijete metodu tokenizace založenou na slově, vstup je devět tokenů. Tento příkaz ponechá pro výstup k dispozici 91 tokenů slova .
Pomocí metody tokenizace na základě znaků je vstup 34 tokenů (včetně mezer). Tento příkaz ponechá pro výstup k dispozici pouze 66 znakových tokenů.
Ceny založené na tokenech a omezování rychlosti
Generování služeb AI často používá ceny založené na tokenech. Náklady na každý požadavek závisí na počtu vstupních a výstupních tokenů. Ceny se můžou lišit mezi vstupem a výstupem. Podívejte se například na ceny služby Azure OpenAI.
Generování služeb umělé inteligence může být také omezené, pokud jde o maximální počet tokenů za minutu (TPM). Tato omezení rychlosti se můžou lišit v závislosti na oblasti služby a LLM. Další informace o konkrétních oblastech najdete v tématu Kvóty a limity služby Azure OpenAI.