OpenAI
Šis puslapis buvo išverstas mašininiu būdu. Peržiūrėti originalų straipsnį anglų kalba.

Kas yra žetonai ir kaip juos skaičiuoti?

Atnaujinta: 17 days ago

Kas yra žetonai?

Žetonai yra teksto sudedamosios dalys, kurias apdoroja OpenAI modeliai. Jie gali būti tokie trumpi kaip vienas simbolis arba tokie ilgi kaip visas žodis, priklausomai nuo kalbos ir konteksto. Tarpai, skyrybos ženklai ir žodžių dalys prisideda prie žetonų skaičiaus. Taip API viduje suskaido jūsų tekstą prieš generuodama atsakymą.

Naudingos apytikrės taisyklės anglų kalbai:

  • 1 žetonas ≈ 4 simboliai

  • 1 žetonas ≈ ¾ žodžio

  • 100 žetonų ≈ 75 žodžiai

  • 1–2 sakiniai ≈ 30 žetonų

  • 1 pastraipa ≈ 100 žetonų

  • ~1 500 žodžių ≈ 2 048 žetonai

Skaidymas į žetonus priklauso nuo modelio ir kodavimo. Naudokite skaidymo į žetonus įrankį arba tiktoken.encoding_for_model(model), kad gautumėte tikslų savo tikslinio modelio skaičių.

Pavyzdžiai

Štai keli realūs teksto pavyzdžiai ir jų apytikslis žetonų skaičius:

  • Wayne’o Gretzky citata „Nepataikysite 100 % metimų, kurių neatliksite“ = 11 žetonų

  • OpenAI chartija = 476 žetonai

  • JAV Nepriklausomybės deklaracija = 1 695 žetonai

Kaip apskaičiuojamas žetonų skaičius

Kai siunčiate tekstą į API:

  1. Tekstas suskaidomas į žetonus.

  2. Modelis apdoroja šiuos žetonus.

  3. Atsakymas sugeneruojamas kaip žetonų seka, tada vėl paverčiamas tekstu.

Žetonų naudojimas stebimas keliose kategorijose:

  • Įvesties žetonai – žetonai jūsų užklausoje.

  • Išvesties žetonai – atsakyme sugeneruoti žetonai.

  • Talpykloje saugomi žetonai – pokalbių istorijoje pakartotinai naudojami žetonai (dažnai apmokestinami mažesniu tarifu).

  • Protavimo žetonai – kai kuriuose pažangiuose modeliuose prieš pateikiant galutinę išvestį viduje įtraukiami papildomi „mąstymo žingsniai“.

Šie skaičiai rodomi jūsų API atsakymo metaduomenyse ir naudojami atsiskaitymui bei naudojimo stebėjimui.

Norėdami išsamiau tyrinėti skaidymą į žetonus, galite naudoti mūsų interaktyvų skaidymo į žetonus įrankį, kuris leidžia apskaičiuoti žetonų skaičių ir pamatyti, kaip tekstas suskaidomas į žetonus.

Arba, jei norite skaidyti tekstą į žetonus programiškai, naudokite Tiktoken – greitą BPE skaidymo į žetonus priemonę, specialiai naudojamą OpenAI modeliams.

Žetonų limitai

Kiekvienas modelis turi didžiausią bendrą žetonų limitą (įvestis + išvestis). Dabartiniai didelės talpos modeliai kontekste palaiko iki šimtų tūkstančių žetonų, tačiau praktiniai limitai gali skirtis priklausomai nuo modelio versijos ir jūsų naudojimo lygio.

Jei viršijate limitą, galite:

  • Sutrumpinti arba perfrazuoti užklausas.

  • Didelį tekstą suskaidyti į mažesnes dalis.

  • Apibendrinti arba iš anksto apdoroti įvestis prieš jas siunčiant.

Žetonų kainodara

API naudojimas apmokestinamas už žetoną, o kaina priklauso nuo modelio ir nuo to, ar žetonai yra įvesties, išvesties ar talpykloje saugomi. Dabartinius tarifus rasite OpenAI kainodaros puslapyje. Kai kurie protavimo modeliai viduje gali naudoti daugiau žetonų, bet siekia pagerinti efektyvumą sumažindami žetonų skaičių, reikalingą atliktai užduočiai.

Žetonų tyrinėjimas

API žodžius traktuoja pagal jų kontekstą korpuso duomenyse. Modeliai paima užklausą, paverčia įvestį žetonų sąrašu, apdoroja užklausą ir paverčia nuspėtus žetonus atgal į žodžius, kuriuos matome atsakyme.

Tai, kas mums gali atrodyti kaip du vienodi žodžiai, gali būti sugeneruota kaip skirtingi žetonai, priklausomai nuo to, kaip jie suformuoti tekste. Apsvarstykite, kaip API generuoja žetono reikšmes žodžiui „red“, atsižvelgdama į jo kontekstą tekste:

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

Pirmajame pirmiau pateiktame pavyzdyje žetonas „2266“, skirtas „ red“, apima tarpą pabaigoje (pastaba: tai pavyzdiniai žetonų ID, skirti demonstracijai).

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

Žetonas „2296“, skirtas „ Red“ (su tarpu pradžioje ir prasidedantis didžiąja raide), skiriasi nuo žetono „2266“, skirto „ red“ su mažąja raide.

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

Kai „Red“ vartojamas sakinio pradžioje, sugeneruotame žetone nėra tarpo pradžioje. Žetonas „7738“ skiriasi nuo dviejų ankstesnių šio žodžio pavyzdžių.

Pastebėjimai:

Kuo žetonas tikėtinesnis / dažnesnis, tuo mažesnis jam priskirtas žetono numeris:

  • Taškui sugeneruotas žetonas yra tas pats („13“) visuose 3 sakiniuose. Taip yra todėl, kad konteksto požiūriu taškas visame korpuso duomenų rinkinyje naudojamas gana panašiai.

  • „red“ sugeneruotas žetonas skiriasi priklausomai nuo jo vietos sakinyje:

    • Mažoji raidė sakinio viduryje: „ red“ – (žetonas: „2266“)

    • Didžioji raidė sakinio viduryje: „ Red“ – (žetonas: „2297“)

    • Didžioji raidė sakinio pradžioje: „Red“ – (žetonas: „7738“)

Ar šis straipsnis buvo naudingas?