Ce sunt tokenurile?
Tokenurile sunt elementele de bază ale textului pe care le procesează modelele OpenAI. Pot fi la fel de scurte ca un singur caracter sau la fel de lungi ca un cuvânt întreg, în funcție de limbă și context. Spațiile, punctuația și cuvintele parțiale contribuie toate la numărul de tokenuri. Acesta este modul în care API-ul segmentează intern textul înainte de a genera un răspuns.
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 codificare. Folosește instrumentul Tokenizer sau tiktoken.encoding_for_model(model) pentru a obține numărul exact pentru modelul țintă.
Exemple
Iată câteva exemple de texte reale, cu 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 trimiț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 convertit înapoi în text.
Utilizarea tokenurilor este urmărită în mai multe categorii:
Tokenuri de intrare – tokenuri din solicitarea ta.
Tokenuri de ieșire – tokenuri generate în răspuns.
Tokenuri stocate în cache – tokenuri reutilizate din istoricul conversației (adesea facturate la un tarif redus).
Tokenuri de raționament – în unele modele avansate, sunt incluse intern etape suplimentare de „gândire” înainte de producerea rezultatului final.
Aceste valori apar în metadatele răspunsului API și sunt folosite pentru facturare și urmărirea utilizării.
Pentru a explora mai mult tokenizarea, poți folosi instrumentul nostru interactiv Tokenizer, care îți permite să calculezi numărul de tokenuri și să vezi cum este împărțit textul în tokenuri.
Alternativ, dacă vrei să tokenizezi textul programatic, folosește Tiktoken, un tokenizer BPE rapid folosit special pentru modelele OpenAI.
Limite de tokenuri
Fiecare model are o limită maximă combinată de tokenuri (intrare + ieșire). Modelele actuale de mare capacitate acceptă până la sute de mii de tokenuri în context, deși limitele practice pot varia în funcție de versiunea modelului și de nivelul tău de utilizare.
Dacă depășești limita, poți:
Scurta sau reformula solicitările.
Împărți textele mari în fragmente mai mici.
Rezuma sau preprocesa intrările înainte de a le trimite.
Prețurile pentru tokenuri
Utilizarea API-ului este tarifată per token și variază în funcție de model și de tipul tokenurilor: de intrare, de ieșire sau stocate în cache. Consultă pagina de prețuri OpenAI pentru tarifele 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ă.
Explorarea tokenurilor
API-ul tratează cuvintele în funcție de contextul lor în datele corpusului. Modelele preiau solicitarea, convertesc intrarea într-o listă de tokenuri, procesează solicitarea și convertesc tokenurile prezise înapoi în cuvintele pe care le vedem în răspuns.
Ceea ce nouă ne poate părea două cuvinte identice poate fi generat în tokenuri diferite, în funcție de modul în care sunt structurate în text. Gândește-te cum generează API-ul valori de token pentru cuvântul „red”, pe baza contextului său în text:
În primul exemplu de mai sus, tokenul „2266” pentru „ red” include un spațiu final (Notă: acestea sunt ID-uri de token exemplificative, în scop demonstrativ).
Tokenul „2296” pentru „ Red” (cu un spațiu inițial și cu literă mare la început) este diferit de tokenul „2266” pentru „ red” cu literă mică.
Când „Red” este folosit la începutul unei propoziții, tokenul generat nu include un spațiu inițial. Tokenul „7738” este diferit de cele două exemple anterioare ale cuvântului.
Observații:
Cu cât un token este mai probabil/frecvent, cu atât numărul de token 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, contextual, punctul este folosit destul de similar în toate datele corpusului.
Tokenul generat pentru „red” variază în funcție de poziția sa în propoziție:
Cu literă mică în mijlocul unei propoziții: „ red” - (token: „2266”)
Cu literă mare în mijlocul unei propoziții: „ Red” - (token: „2297”)
Cu literă mare la începutul unei propoziții: „Red” - (token: „7738”)
