Kaj so žetoni?
Žetoni so gradniki besedila, ki ga obdelujejo modeli OpenAI. Lahko so kratki kot en sam znak ali dolgi kot cela beseda, odvisno od jezika in konteksta. Presledki, ločila in deli besed vsi prispevajo k številu žetonov. Tako API interno razčleni vaše besedilo, preden ustvari odgovor.
Koristna okvirna pravila za angleščino:
1 žeton ≈ 4 znaki
1 žeton ≈ ¾ besede
100 žetonov ≈ 75 besed
1–2 stavka ≈ 30 žetonov
1 odstavek ≈ 100 žetonov
~1.500 besed ≈ 2.048 žetonov
Tokenizacija se razlikuje glede na model in kodiranje. Za natančno število za ciljni model uporabite orodje Tokenizer ali tiktoken.encoding_for_model(model).
Primeri
Tukaj je nekaj resničnih vzorcev besedila z njihovim približnim številom žetonov:
Citat Wayna Gretzkyja »Zgrešiš 100 % strelov, ki jih ne izvedeš« = 11 žetonov
Listina OpenAI = 476 žetonov
Deklaracija neodvisnosti ZDA = 1.695 žetonov
Kako se izračuna število žetonov
Ko pošljete besedilo v API:
Besedilo se razdeli na žetone.
Model obdela te žetone.
Odgovor se ustvari kot zaporedje žetonov in nato pretvori nazaj v besedilo.
Poraba žetonov se spremlja v več kategorijah:
Vhodni žetoni – žetoni v vaši zahtevi.
Izhodni žetoni – žetoni, ustvarjeni v odgovoru.
Predpomnjeni žetoni – ponovno uporabljeni žetoni v zgodovini pogovora (pogosto obračunani po nižji ceni).
Žetoni sklepanja – pri nekaterih naprednih modelih so pred pripravo končnega izhoda interno vključeni dodatni »miselni koraki«.
Ta štetja so prikazana v metapodatkih odgovora API-ja in se uporabljajo za obračunavanje ter spremljanje porabe.
Za nadaljnje raziskovanje tokenizacije lahko uporabite naše interaktivno orodje Tokenizer, ki omogoča izračun števila žetonov in prikaz, kako se besedilo razdeli na žetone.
Če pa želite besedilo tokenizirati programsko, uporabite Tiktoken, hiter tokenizator BPE, posebej uporabljen za modele OpenAI.
Omejitve žetonov
Vsak model ima največjo skupno omejitev žetonov (vhod + izhod). Trenutni modeli z veliko zmogljivostjo podpirajo do več sto tisoč žetonov v kontekstu, vendar se praktične omejitve lahko razlikujejo glede na različico modela in vašo raven uporabe.
Če presežete omejitev, lahko:
Skrajšate ali preoblikujete pozive.
Veliko besedilo razdelite na manjše dele.
Povzamete ali predhodno obdelate vhode, preden jih pošljete.
Cene žetonov
Uporaba API-ja se zaračunava na žeton in se razlikuje glede na model ter glede na to, ali so žetoni vhodni, izhodni ali predpomnjeni. Za trenutne cene glejte stran s cenami OpenAI. Nekateri modeli sklepanja lahko interno uporabijo več žetonov, vendar si prizadevajo izboljšati učinkovitost z zmanjšanjem števila žetonov, potrebnih za dokončano nalogo.
Raziskovanje žetonov
API obravnava besede glede na njihov kontekst v podatkih korpusa. Modeli vzamejo poziv, pretvorijo vhod v seznam žetonov, obdelajo poziv in predvidene žetone pretvorijo nazaj v besede, ki jih vidimo v odgovoru.
Kar se nam morda zdi kot dve enaki besedi, se lahko ustvari kot različni žetoni, odvisno od tega, kako sta strukturirani v besedilu. Oglejte si, kako API ustvari vrednosti žetonov za besedo ‘red’ glede na njen kontekst v besedilu:
V prvem zgornjem primeru žeton »2266« za ‘ red’ vključuje končni presledek (opomba: to so primeri ID-jev žetonov za predstavitvene namene).
Žeton »2296« za ‘ Red’ (z začetnim presledkom in veliko začetnico) se razlikuje od žetona »2266« za ‘ red’ z malo začetnico.
Ko se ‘Red’ uporabi na začetku stavka, ustvarjeni žeton ne vključuje začetnega presledka. Žeton »7738« se razlikuje od prejšnjih dveh primerov besede.
Opažanja:
Bolj verjeten oziroma pogost kot je žeton, nižja številka žetona mu je dodeljena:
Žeton, ustvarjen za piko, je enak (»13«) v vseh 3 stavkih. To je zato, ker se pika kontekstualno uporablja precej podobno v vseh podatkih korpusa.
Žeton, ustvarjen za ‘red’, se razlikuje glede na njegov položaj v stavku:
Mala začetnica sredi stavka: ‘ red’ - (žeton: »2266«)
Velika začetnica sredi stavka: ‘ Red’ - (žeton: »2297«)
Velika začetnica na začetku stavka: ‘Red’ - (žeton: »7738«)
