Ingyenes Token Számláló GPT-4, ChatGPT és AI Modellek számára
Pontos token számláló az OpenAI tiktoken könyvtárával. Számold a tokeneket GPT-4, ChatGPT és GPT-3 modelleknél. Kezeld az API költségeket és optimalizáld az AI promptokat azonnal.
Token Számláló
Érvénytelen bemenet
Dokumentáció
Mi az a tokenszámláló?
A tokenszámláló azt méri, hogy egy szövegrész hány tokenre bomlik, amikor egy mesterségesintelligencia-nyelvi modell beolvassa. A tokenek azok a kis szövegegységek — teljes szavak, szavak részei vagy írásjelek — amelyeket a GPT-4-hez és a ChatGPT-hez hasonló modellek a nyers betűk helyett dolgoznak fel. Ez az eszköz az OpenAI által közzétett, nyílt forráskódú tiktoken tokenizálókönyvtárat használja, ezért a számlálás megegyezik azzal, amit az OpenAI saját modelljei és API-ja előállítanának.
Hogyan működik a tokenizálás?
A tokenizáló nem egyszerűen megszámolja a szavakat. A szöveget egy, bájtpáros kódolásnak (BPE) nevezett algoritmussal dolgozza fel. Az algoritmus a szöveg egyes bájtjaival kezdi, majd a tanítás során nagy szövegkorpuszból megtanult minták alapján ismételten egyesíti a leggyakoribb szomszédos párokat. Ennek eredménye több tízezer gyakori egységből álló, rögzített szókészlet: teljes rövid szavakból, gyakori szórészletekből és ritka elemek esetén egyetlen karakterekből.
Emiatt egy angol szó gyakran egy tokenné alakul, de a hosszabb vagy szokatlan szavak kettő vagy több tokenre is felbomolhatnak. A szóközök általában a következő token elejéhez kapcsolódnak, nem pedig önállóan számítanak, az írásjelek pedig jellemzően saját tokenek.
Az eszköz által támogatott kódolások
A tiktoken többféle kódolást kínál, amelyek mindegyike az OpenAI-modellek egy-egy családjához kapcsolódik. Ez az eszköz hármat támogat:
| Kódolás | Használja | A szókészlet hozzávetőleges mérete |
|---|---|---|
cl100k_base | A GPT-3,5 és GPT-4 család modelljei, valamint a ChatGPT | körülbelül 100 000 token |
p50k_base | Az újabb GPT-3 modellek | körülbelül 50 000 token |
r50k_base | A korábbi GPT-3 és GPT-2 modellek | körülbelül 50 000 token |
Alapértelmezés szerint a cl100k_base van kiválasztva, mivel ez fedi le a legtöbb ember által manapság használt modellcsaládot. Ugyanaz a szöveg az egyes kódolásokkal eltérő tokenszámot eredményezhet, mert mindegyiket más szövegen tanították, és eltérő módon egyesítik a karaktereket.
Hogyan számítható ki a tokenszám?
Nincs egyszerű számtani képlet, amellyel a karakterszám vagy a szószám tokenszámmá alakítható, mivel a BPE-egyesítések a konkrét szövegtől és a betanított szókészlettől függenek. Az egyetlen pontos módszer a szöveg közvetlen átadása a tokenizálónak:
- Válassza ki a célnak megfelelő modellhez tartozó kódolást.
- Adja át a szöveget az adott kódolás tokenizálójának.
- Számolja meg az eredményül kapott tokenazonosítók listáját. A lista hossza adja meg a tokenszámot.
Angol szöveg esetén durva becslésként egy token közel négy karakternek, illetve egy szó körülbelül háromnegyedének felel meg. Ez csak útmutató. A számok, a kód, a nem angol nyelvű szöveg és a szokatlan helyesírás jelentősen módosíthatják az arányt.
Kidolgozott példa
Vegyük ezt a mondatot:
„A tokenizálás darabokra bontja a szöveget.”
A cl100k_base kódolás esetén a tiktoken 7 tokenre bontja:
Token, ization, splits, text, into, pieces, .
Figyeljük meg, hogy a „Tokenization” önmagában két tokenre, a „Token” és az „ization” egységre bomlik, miközben minden más szó egyben marad. A záró pont önálló token. Ezért egy 37 karakterből álló, 5 szavas mondat 7 tokent eredményez, nem pedig 6-ot.
Miért számít a tokenszám?
A mesterségesintelligencia-szolgáltatók tokenenként számítanak fel díjat az API használatáért, beleszámítva a beküldött és a válaszként létrehozott szöveget is, ezért a tokenszám alapján a kérés elküldése előtt megbecsülhető a költség. Minden modellnek van maximális kontextushossza is: ez korlátozza, hogy egyetlen kérés és a hozzá tartozó válasz együttesen hány tokent tartalmazhat. A korlát modellenként eltér, és a szolgáltatók új verzióinak kiadásával változik, ezért azt nem emlékezetből, hanem a használt modell aktuális dokumentációjában célszerű ellenőrizni.
Gyakran ismételt kérdések
Mi az a token a mesterségesintelligencia-nyelvi modellekben? A token olyan szövegegység, amelyet a nyelvi modell egyetlen egységként olvas. Lehet teljes rövid szó, hosszabb szó része, írásjel vagy a következő szóhoz kapcsolódó szóköz.
Miért adnak a különböző kódolások eltérő tokenszámot ugyanarra a szövegre? Mindegyik kódolást a saját szövegmintáján tanították, és mindegyik saját szókészletet hozott létre a gyakori egységekből. Egy szó az egyik szókészletben elég gyakori lehet ahhoz, hogy egyetlen token legyen, a másikban viszont nem szerepel így, ezért eltérő módon bomlik fel.
Tokennek számít az írásjel? Igen. Az írásjelek általában önálló tokenként számítanak, de időnként a mellettük álló karakterrel is egyesülhetnek attól függően, hogy ez a kombináció milyen gyakran fordult elő a tokenizáló tanítása során.
Azonos a token a szóval? Nem. A rövid, gyakori szavak általában egy-egy tokenből állnak. A hosszabb vagy ritkább szavak, valamint az angolon kívüli nyelvek legtöbb szava gyakran kettő vagy több tokenre bomlik.
Mennyire pontos ez az eszköz? Az OpenAI saját tiktoken-könyvtárával számolja a tokeneket, az OpenAI által belsőleg használt kódolási logikát futtatva, ezért a számlálás ugyanazt az eredményt adja, mint amit egy OpenAI API-hívás jelentene ugyanarra a szövegre és kódolásra.
Képes ez az eszköz nem OpenAI-modellek tokenjeinek megszámolására? A tiktoken kódolásait használja, amelyeket az OpenAI modelljeihez készítettek. Más szolgáltatók, például az Anthropic vagy a Google, saját tokenizálókat használnak, amelyek ugyanarra a szövegre eltérő számlálást adhatnak.
Hivatkozások
- OpenAI. "tiktoken." GitHub, https://github.com/openai/tiktoken.
- Sennrich, Rico és mtsai. "Neural Machine Translation of Rare Words with Subword Units." arXiv:1508,07909, 2016, http://arxiv.org/abs/1508.07909.
- Brown, Tom B. és mtsai. "Language Models are Few-Shot Learners." arXiv:2005,14165, 2020, http://arxiv.org/abs/2005.14165.