OpenAI
Această pagină a fost tradusă automat. Vezi articolul original în limba engleză.

Ce sunt tokenurile și cum le numeri?

Actualizat: 22 days ago

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:

  1. Textul este împărțit în tokenuri.

  2. Modelul procesează aceste tokenuri.

  3. 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:

Sentence split into color-coded tokens with Text selected over Token IDs
Token ID output as a list of integers with the Token IDs tab selected

Î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).

Sentence split into color-coded token blocks: My favorite color is Red.
Tokenizer output with Token IDs selected and a list of numeric token IDs

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ă.

Tokenizer example splitting “Red is my favorite color.” into color-coded tokens
Tokenizer output with Token IDs selected and a list of token ID numbers

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”)

A fost util acest articol?