Ce sunt tokenurile?
Tokenurile sunt elementele de bază ale textului procesat de modelele OpenAI. Pot fi alcătuite dintr-un singur caracter sau dintr-un cuvânt întreg, în funcție de limbă și context. Spațiile, semnele de punctuație și fragmentele de cuvinte contribuie la numărul de tokenuri. Astfel segmentează API-ul textul la nivel intern înainte de a genera un răspuns.
Câteva reguli orientative utile pentru limba engleză:
1 token ≈ 4 caractere
1 token ≈ ¾ dintr-un cuvânt
100 de tokenuri ≈ 75 de cuvinte
1–2 propoziții ≈ 30 de tokenuri
1 paragraf ≈ 100 de tokenuri
~1.500 de cuvinte ≈ 2.048 de tokenuri
Tokenizarea variază în funcție de model și de codificare. Folosiți instrumentul Tokenizer sau tiktoken.encoding_for_model(model) pentru a afla numărul exact pentru modelul vizat.
Exemple
Iată câteva mostre de text din lumea reală și numărul lor aproximativ de tokenuri:
Citatul lui Wayne Gretzky „Ratezi 100% dintre loviturile pe care nu le încerci” = 11 tokenuri
Carta OpenAI = 476 de tokenuri
Declarația de independență a SUA = 1.695 de tokenuri
Cum se calculează numărul de tokenuri
Când trimiteți text către API:
Textul este împărțit în tokenuri.
Modelul procesează aceste tokenuri.
Răspunsul este generat ca o secvență de tokenuri, apoi este convertit din nou în text.
Utilizarea tokenurilor este urmărită în mai multe categorii:
Tokenuri de intrare – tokenurile din solicitarea dvs.
Tokenuri de ieșire – tokenurile generate în răspuns.
Tokenuri din cache – tokenuri reutilizate din istoricul conversației (adesea facturate la un tarif redus).
Tokenuri de raţionament – în unele modele avansate, sunt incluși intern pași suplimentari de „gândire” înainte de obținerea rezultatului final.
Aceste valori apar în metadatele răspunsului API și sunt folosite pentru facturare și monitorizarea utilizării.
Pentru a explora în continuare tokenizarea, puteți folosi instrumentul nostru interactiv Tokenizer, care vă permite să calculați numărul de tokenuri și să vedeți cum este împărțit textul în tokenuri.
Alternativ, dacă doriți să tokenizați textul prin programare, folosiți Tiktoken, un instrument rapid de tokenizare BPE, creat special pentru modelele OpenAI.
Limite de tokenuri
Fiecare model are o limită maximă pentru numărul total de tokenuri (intrare + ieșire). Modelele actuale de mare capacitate acceptă în context până la sute de mii de tokenuri, însă limitele practice pot varia în funcție de versiunea modelului și de nivelul dvs. de utilizare.
Dacă depășiți limita, puteți:
Scurta sau reformula solicitările.
Împărți textele mari în fragmente mai mici.
Rezuma sau preprocesa datele de intrare înainte de a le trimite.
Tarife pentru tokenuri
Utilizarea API-ului este tarifată per token, în funcție de model și de tipul tokenurilor: de intrare, de ieșire sau din cache. Consultați pagina de tarife OpenAI pentru prețurile actuale. Unele modele de raţionament pot folosi intern mai multe tokenuri, dar urmăresc să îmbunătățească eficiența reducând numărul de tokenuri necesare pentru fiecare sarcină finalizată.
Tokenurile nu sunt standardizate între modelele sau furnizorii de IA. Modele diferite pot procesa sau genera același text folosind un număr diferit de tokenuri, așadar un preț afișat mai mic per milion de tokenuri nu înseamnă neapărat un cost total mai mic.
Nici lungimea vizibilă a răspunsului nu spune întreaga poveste. Unele modele folosesc intern tokenuri de raţionament înainte de a produce un răspuns, astfel că un răspuns vizibil mai lung nu înseamnă neapărat că modelul a folosit mai multe tokenuri în total.
Când comparați modele, luați în calcul numărul total de tokenuri necesare și costul fiecărui rezultat reușit. Testele de referință pot fi un punct de plecare util, dar testarea modelelor în propriile cazuri de utilizare este cea mai bună metodă de a le înțelege costul și performanța reale.
Explorarea tokenurilor
API-ul tratează cuvintele în funcție de contextul lor din datele corpusului. Modelele preiau solicitarea, convertesc datele de intrare într-o listă de tokenuri, procesează solicitarea și convertesc tokenurile estimate înapoi în cuvintele pe care le vedem în răspuns.
Două cuvinte care nouă ni se par identice pot fi transformate în tokenuri diferite, în funcție de structura lor în text. Observați cum generează API-ul valori de token pentru cuvântul „red”, în funcție de contextul său din text:
În primul exemplu de mai sus, tokenul „2266” pentru „ red” include un spațiu la final (rețineți că acestea sunt ID-uri de token exemplificative, folosite în scop demonstrativ).
Tokenul „2296” pentru „ Red” (cu un spațiu înainte și inițială majusculă) este diferit de tokenul „2266” pentru „ red”, scris cu literă mică.
Când „Red” apare la începutul unei propoziții, tokenul generat nu include un spațiu înainte. Tokenul „7738” este diferit de cele din cele două exemple anterioare ale cuvântului.
Observații:
Cu cât un token este mai probabil sau mai frecvent, cu atât numărul care îi este atribuit este mai mic:
Tokenul generat pentru punct este același („13”) în toate cele 3 propoziții. Acest lucru se întâmplă deoarece, din perspectiva contextului, punctul este folosit aproximativ la fel în toate datele corpusului.
Tokenul generat pentru „red” variază în funcție de poziția sa în propoziție:
Literă mică în mijlocul propoziției: „ red” – (token: „2266”)
Literă mare în mijlocul propoziției: „ Red” – (token: „2297”)
Literă mare la începutul propoziției: „Red” – (token: „7738”)
