Tasuta sõnetähiste loendur GPT-4, ChatGPT ja AI mudelitele
Täpne sõnetähiste loendur OpenAI tiktoken teegi abil. Loendage sõnetähiseid GPT-4, ChatGPT ja GPT-3 mudelitele. Hallake API kulusid ja optimeeri AI käsklusi koheselt.
Märgikomplekti loendur
Vigane sisend
Dokumentatsioon
Mis on tokeniloendur?
Tokeniloendur mõõdab, mitmeks tokeniks tekstilõik tehisintellekti keelemudeli lugemisel jaguneb. Tokenid on väikesed tekstiosad — terved sõnad, sõnaosad või kirjavahemärgid — mida sellised mudelid nagu GPT-4 ja ChatGPT töötlevad toortähtede asemel. See tööriist kasutab tiktokenit, OpenAI avaldatud avatud lähtekoodiga tokeniseerimisteeki, mistõttu vastab tokenite arv sellele, mille annaksid OpenAI enda mudelid ja API.
Kuidas tokeniseerimine toimib
Tokeniseerija ei loenda lihtsalt sõnu. See töötleb teksti algoritmiga, mida nimetatakse baidipaarikodeeringuks (BPE). Algoritm alustab teksti üksikutest baitidest ja ühendab treenimise käigus suurest tekstikogumist õpitud mustrite põhjal korduvalt kõige sagedasemad kõrvutised paarid. Tulemuseks on kümnete tuhandete levinud tekstijuppide fikseeritud sõnavara: terved lühikesed sõnad, sagedased sõnafragmendid ja haruldaste juhtude jaoks üksikud märgid.
Seetõttu muutub üks ingliskeelne sõna sageli üheks tokeniks, kuid pikemad või ebatavalised sõnad võivad jaguneda kaheks või enamaks. Tühikud paiknevad tavaliselt järgmise tokeni alguses, mitte ei moodusta eraldi tokeneid, ning kirjavahemärgid on enamasti eraldi tokenid.
Selle tööriista toetatud kodeeringud
Tiktoken pakub mitut kodeeringut, millest igaüks on seotud kindla OpenAI mudelite perekonnaga. See tööriist toetab kolme:
| Kodeering | Kasutatakse mudelites | Ligikaudne sõnavara suurus |
|---|---|---|
cl100k_base | GPT-3,5 ja GPT-4 perekonna mudelid, ChatGPT | umbes 100 000 tokenit |
p50k_base | Hilisemad GPT-3 mudelid | umbes 50 000 tokenit |
r50k_base | Varasemad GPT-3 ja GPT-2 mudelid | umbes 50 000 tokenit |
Vaikimisi valitakse cl100k_base, sest see hõlmab mudeliperekonda, mida enamik inimesi tänapäeval kasutab. Sama tekst võib eri kodeeringute korral anda erineva tokenite arvu, sest iga kodeering treeniti erineva teksti põhjal ja ühendab märke erinevalt.
Kuidas tokenite arvu arvutada
Märkide arvu või sõnade arvu tokenite arvuks teisendamiseks ei ole lihtsat aritmeetilist valemit, sest BPE ühendamised sõltuvad konkreetsest tekstist ja treenitud sõnavarast. Ainus täpne meetod on tekst tokeniseerijale anda:
- Valige sihtmudeliga sobiv kodeering.
- Edastage tekst selle kodeeringu tokeniseerijale.
- Loendage saadud tokeni-ID-de loend. Selle loendi pikkus on tokenite arv.
Ingliskeelse teksti ligikaudse hinnanguna vastab üks token umbes neljale märgile ehk ligikaudu kolmele neljandikule sõnast. See on ainult suunis. Numbrid, kood, muukeelne tekst ja ebatavaline õigekiri võivad suhet oluliselt muuta.
Lahendatud näide
Võtame lause:
„Tokeniseerimine jagab teksti osadeks.“
Kodeeringu cl100k_base korral jagab tiktoken selle 7 tokeniks:
Token, ization, splits, text, into, pieces, .
Pange tähele, et sõna „Tokenization“ koosneb kahest tokenist: „Token“ ja „ization“, samal ajal kui kõik ülejäänud sõnad jäävad tervikuks. Lõpus olev punkt on eraldi token. Seetõttu annab 37 märgi ja 5 sõnaga lause 7 tokenit, mitte 6.
Miks tokenite arv on oluline
Tehisintellekti teenusepakkujad võtavad API kasutamise eest tasu tokenite arvu alusel, loendades nii saadetud teksti kui ka vastuseks genereeritud teksti, mistõttu aitab tokenite arv ennustada kulu enne päringu saatmist. Igal mudelil on ka maksimaalne konteksti pikkus ehk piir, kui palju tokeneid võib üks päring koos vastusega sisaldada. See piir oleneb mudelist ja muutub, kui teenusepakkujad uusi versioone välja annavad, seega on parem kontrollida seda kasutatava mudeli ajakohasest dokumentatsioonist, mitte tugineda mälule.
Korduma kippuvad küsimused
Mis on token tehisintellekti keelemudelites? Token on tekstiosa, mida keelemudel loeb ühe ühikuna. See võib olla terve lühike sõna, pikema sõna osa, kirjavahemärk või järgmise sõna külge liidetud tühik.
Miks annavad eri kodeeringud sama teksti puhul erineva tokenite arvu? Iga kodeering treeniti oma tekstinäidise põhjal ja selle jaoks loodi levinud tekstiosadest oma sõnavara. Sõna, mis on ühes sõnavaras piisavalt levinud, et moodustada üks token, ei pruugi teises sõnavaras sellisena esineda, mistõttu jagatakse see erinevalt.
Kas kirjavahemärgid loetakse tokeniteks? Jah. Kirjavahemärke loendatakse tavaliselt eraldi tokenitena või liidetakse mõnikord nende kõrval oleva märgiga, sõltuvalt sellest, kui sageli selline kombinatsioon tokeniseerija treeningu ajal esines.
Kas token on sama mis sõna? Ei. Lühikesed ja levinud sõnad on tavaliselt igaüks üks token. Pikemad või harvemad sõnad ning enamik inglise keelest erinevate keelte sõnu jagunevad sageli kaheks või enamaks tokeniks.
Kui täpne see tööriist on? See loendab tokeneid OpenAI enda tiktokeni teegi abil, kasutades OpenAI sisemise töötlusega sama kodeerimisloogikat, mistõttu on loendustulemus sama, mille OpenAI API-kutse sama teksti ja kodeeringu korral tagastaks.
Kas see tööriist saab loendada mitte-OpenAI mudelite tokeneid? See kasutab tiktokeni kodeeringuid, mis on loodud OpenAI mudelite jaoks. Teised mudelipakkujad, näiteks Anthropic ja Google, kasutavad oma tokeniseerijaid, mis võivad sama teksti puhul anda erineva tokenite arvu.
Viited
- OpenAI. "tiktoken." GitHub, https://github.com/openai/tiktoken.
- Sennrich, Rico jt. "Neural Machine Translation of Rare Words with Subword Units." arXiv:1508,07909, 2016, http://arxiv.org/abs/1508.07909.
- Brown, Tom B. jt. "Language Models are Few-Shot Learners." arXiv:2005,14165, 2020, http://arxiv.org/abs/2005.14165.