Ugrás a tartalomra

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ó

Kódolás

Érvénytelen bemenet

Betöltési kalkulátor...
📚

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ásHasználjaA szókészlet hozzávetőleges mérete
cl100k_baseA GPT-3,5 és GPT-4 család modelljei, valamint a ChatGPTkörülbelül 100 000 token
p50k_baseAz újabb GPT-3 modellekkörülbelül 50 000 token
r50k_baseA korábbi GPT-3 és GPT-2 modellekkö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:

  1. Válassza ki a célnak megfelelő modellhez tartozó kódolást.
  2. Adja át a szöveget az adott kódolás tokenizálójának.
  3. 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

  1. OpenAI. "tiktoken." GitHub, https://github.com/openai/tiktoken.
  2. Sennrich, Rico és mtsai. "Neural Machine Translation of Rare Words with Subword Units." arXiv:1508,07909, 2016, http://arxiv.org/abs/1508.07909.
  3. Brown, Tom B. és mtsai. "Language Models are Few-Shot Learners." arXiv:2005,14165, 2020, http://arxiv.org/abs/2005.14165.