OpenAI
Ta stran je bila strojno prevedena. Oglejte si izvirni članek v angleščini.

Kaj so žetoni in kako jih šteti?

Posodobljeno: 8 days ago

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:

  1. Besedilo se razdeli na žetone.

  2. Model obdela te žetone.

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

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

V prvem zgornjem primeru žeton »2266« za ‘ red’ vključuje končni presledek (opomba: to so primeri ID-jev žetonov za predstavitvene namene).

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

Žeton »2296« za ‘ Red’ (z začetnim presledkom in veliko začetnico) se razlikuje od žetona »2266« za ‘ red’ z malo začetnico.

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

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

Ali vam je bil ta članek v pomoč?