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

Ce sunt tokenurile și cum le numeri?

Actualizat: 19 days ago

Ce sunt tokenurile?

Tokenurile sunt blocurile de bază ale textului pe care modelele OpenAI îl procesează. Ele 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, semnele de punctuație și fragmentele de cuvinte contribuie toate la numărul de tokenuri. Așa segmentează intern API-ul textul tău înainte de a genera un răspuns.

Reguli orientative utile pentru engleză:

  • 1 token ≈ 4 caractere

  • 1 token ≈ ¾ dintr-un cuvânt

  • 100 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 poate varia în funcție de limbă. De exemplu, „Cómo estás” (spaniolă pentru „Ce mai faci”) conține 5 tokenuri pentru 10 caractere. Textul non-englez produce adesea un raport token-caracter mai mare, ceea ce poate afecta costurile și limitele.

Exemple

Iată câteva mostre de text din lumea reală, cu numărul lor aproximativ de tokenuri:

  • Citatul lui Wayne Gretzky „Ratezi 100% din șuturile pe care nu le tragi” = 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 este convertit înapoi în text.

Utilizarea tokenurilor este urmărită în mai multe categorii:

  • Tokenuri de intrare – tokenurile din solicitarea ta.

  • 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 incluse intern etape suplimentare de „gândire” înainte de generarea rezultatului final.

Aceste valori apar în metadatele răspunsului API și sunt folosite pentru facturare și urmărirea utilizării.

Pentru a explora mai departe 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 text programatic, folosește Tiktoken ca tokenizer BPE rapid, folosit în mod specific 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 textul mare în fragmente mai mici.

  • Rezuma sau preprocesa intrările înainte de a le trimite.

Prețul tokenurilor

Utilizarea API este tarifată per token, iar prețul variază în funcție de model și de faptul că tokenurile sunt de intrare, de ieșire sau din 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 prin reducerea numărului de tokenuri necesare pentru fiecare sarcină finalizată.

Explorarea tokenurilor

API-ul tratează cuvintele în funcție de contextul lor din 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 pentru noi poate părea două cuvinte identice poate fi generat în tokenuri diferite, în funcție de felul în care sunt structurate în text. Iată cum generează API-ul valorile tokenurilor pentru cuvântul „roșu” în funcție de contextul 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 „ roșu” include un spațiu final (Reține, acestea sunt ID-uri de token exemplificative, folosite î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 „ Roșu” (cu un spațiu inițial și cu majusculă) este diferit de tokenul „2266” pentru „ roșu” 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 „Roșu” 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/mai frecvent, cu atât numărul de token atribuit lui este mai mic:

  • Tokenul generat pentru punct este același („13”) în toate cele 3 propoziții. Asta deoarece, contextual, punctul este folosit destul de similar în întregul corpus de date.

  • Tokenul generat pentru „roșu” variază în funcție de poziția sa în propoziție:

    • Literă mică la mijlocul unei propoziții: „ roșu” - (token: „2266”)

    • Majusculă la mijlocul unei propoziții: „ Roșu” - (token: „2297”)

    • Majusculă la începutul unei propoziții: „Roșu” - (token: „7738”)

A fost util acest articol?