Pregled
Tokeni su jedinice kojima se modeli OpenAI koriste za obradu teksta. Token može predstavljati znak, dio riječi, cijelu riječ ili interpunkcijski znak. Razmaci također utječu na podjelu teksta na tokene.
Broj tokena nije jednak broju riječi. Isti tekst može imati različit broj tokena ovisno o modelu, njegovu kodiranju i jeziku.
Saznajte kako tekst postaje skup tokena
Kada modelu pošaljete tekst:
Tekst se dijeli na tokene.
Model obrađuje te tokene.
Model generira izlazne tokene. Oni mogu obuhvaćati tekst koji primate, a kod modela za rasuđivanje i interne tokene rasuđivanja koji nisu prikazani kao tekst odgovora.
Upotrebljavajte okvirne procjene za engleski tekst
Ove vam procjene mogu pomoći u određivanju veličine engleskog teksta:
1 token približno je jednak četirima znakovima.
1 token približno je jednak trima četvrtinama riječi.
100 tokena približno je jednako 75 riječi.
To su procjene, a ne točni brojevi. Duljine rečenica i odlomaka razlikuju se, a u drugim jezicima odnosi između znakova, riječi i tokena mogu biti drukčiji.
Uzmite u obzir razmake i velika slova
Riječ se može podijeliti na različite tokene ovisno o načinu pisanja, velikim i malim slovima te okolnom tekstu.
Primjerice, red, Red i red nemaju identičan tekst: posljednji primjer sadržava početni razmak. Kodiranje ih može prikazati na različite načine.
ID-jevi tokena također ovise o kodiranju. Nemojte pretpostaviti da primjer ID-ja tokena vrijedi za svaki model.
Razlikujte ulazne i izlazne tokene
| Kategorija | Što opisuje |
| Ulazni tokeni | Tokeni koji se modelu šalju u zahtjevu. Nazivaju se i tokenima upita. |
| Izlazni tokeni | Tokeni koje generira model. Chat Completions naziva ih tokenima dovršetka. |
| Predmemorirani ulazni tokeni | Ulazni tokeni ponovno upotrijebljeni predmemoriranjem upita. Njihova se cijena može razlikovati od cijene ulaznih tokena koji nisu predmemorirani. |
| Tokeni rasuđivanja | Tokeni koje model za rasuđivanje interno upotrebljava prije nego što izradi vidljivi odgovor. |
Tokeni rasuđivanja nisu vidljivi kao tekst odgovora, ali ubrajaju se u izlaznu upotrebu i naplaćuju kao izlazni tokeni.
Stoga se za kratak vidljivi odgovor može potrošiti više tokena nego što prikazani tekst daje naslutiti.
Prebrojite tokene prije slanja zahtjeva
Prebrojite tokene u običnom tekstu
Upotrijebite Tokenizer da biste vidjeli kako se tekst dijeli na tokene.
Za programsku tokenizaciju običnog teksta upotrijebite tiktoken. Odaberite kodiranje za ciljni model, primjerice pomoću tiktoken.encoding_for_model(model).
Broj tokena u običnom tekstu ne obuhvaća nužno sve tokene u API zahtjevu. Struktura poruka, alati, sheme, slike i datoteke mogu utjecati na ukupan broj ulaznih tokena.
Prebrojite tokene u cijelom ulazu za Responses
Za cijeli ulaz API-ja Responses upotrijebite API za brojanje ulaznih tokena.
Prihvaća ulazne formate za Responses, uključujući poruke, slike, datoteke, alate i razgovore. U broj su uključeni tokeni oblikovanja koji se upotrebljavaju za strukturu zahtjeva, kao što su uloge i granice poruka.
Broj ulaznih tokena ne predviđa koliko će izlaznih tokena model generirati.
Provjerite stvarnu upotrebu tokena
Nakon zahtjeva pregledajte podatke o njegovoj upotrebi. Nazivi polja razlikuju se ovisno o krajnjoj točki:
Chat Completions prikazuje prompt_tokens, completion_tokens i total_tokens.
Responses prikazuje input_tokens, output_tokens i total_tokens.
Aktivnost tijekom vremena možete pregledati i na nadzornoj ploči Usage. Upute, uključujući one za upotrebu streaminga, potražite ovdje: Pregled upotrebe i troškova API-ja.
Ostanite unutar ograničenja modela
U dokumentaciji svojeg modela provjerite njegov kontekstni prozor i najveću dopuštenu veličinu izlaza. Ta se ograničenja mogu razlikovati među modelima.
Kontekstni prozor ograničava broj tokena koje model može obraditi u jednom zahtjevu. Modeli imaju i ograničenje izlaza. Za modele za rasuđivanje ostavite prostora i za tokene rasuđivanja i za vidljivi odgovor.
Ako je vaš ulaz prevelik, možete:
Skratiti ili preoblikovati upit.
Ukloniti nepotreban ili ponovljen kontekst.
Podijeliti velike ulaze na manje dijelove.
Sažeti ili prethodno obraditi tekst prije slanja.
Upotrijebite postavku izlaznih tokena koju podržavaju vaša krajnja točka i model. Chat Completions upotrebljava max_completion_tokens, a Responses max_output_tokens.
Ta ograničenja veličine zahtjeva odvojena su od ograničenja učestalosti API zahtjeva te mjesečnih ograničenja upotrebe ili potrošnje. Pregledajte dokumentaciju modela koji upotrebljavate.
Razumijevanje cijena tokena
Kod određivanja cijena API-ja prema tokenima tarifa ovisi o modelu i kategoriji tokena. Ulazni, predmemorirani ulazni i izlazni tokeni mogu imati različite cijene. Druge mogućnosti API-ja mogu se naplaćivati u drugim jedinicama.
Trenutačne tarife provjerite na stranici s cijenama API-ja.
Pri usporedbi modela uzmite u obzir ukupan broj tokena i trošak potreban za dovršavanje zadatka. Niža cijena po milijunu tokena ne znači nužno niži ukupan trošak: modeli mogu različito tokenizirati isti tekst te generirati različite količine izlaza ili rasuđivanja.
Testirajte reprezentativne zadatke umjesto da uspoređujete samo duljinu vidljivog odgovora.
Uzmite u obzir više dovršetaka
Kada krajnja točka i model podržavaju generiranje više dovršetaka, i ti dodatni dovršeci troše tokene.
Ako se za Chat Completions n postavi na vrijednost veću od 1, generira se više mogućnosti. Naplaćuju vam se tokeni generirani u svim tim mogućnostima.
Za zastarjeli Completions API best_of može generirati kandidate koji se neće svi vratiti. Primjerice, best_of = 3 može među kandidatima generirati do 3 × max_tokens tokena dovršetka.
Ti su parametri specifični za pojedinu krajnju točku. Nemojte pretpostaviti da drugi API ili model podržava n ili best_of.
