OpenAI
Ova stranica je mašinski prevedena. Pogledaj originalni članak na engleskom jeziku.

Razumijevanje i brojanje tokena

Saznajte kako ulazni, izlazni, keširani i tokeni rezonovanja utječu na upotrebu API-ja, ograničenja modela i troškove.

Ažurirano: 10 days ago

Pregled

Tokeni su jedinice koje OpenAI modeli 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 isto što i broj riječi. Isti tekst može dati različit broj tokena zavisno od modela, njegovog kodiranja i jezika.

Saznajte kako tekst postaje niz tokena

Kada pošaljete tekst modelu:

  1. Tekst se dijeli na tokene.

  2. Model obrađuje te tokene.

  3. Model generiše izlazne tokene. Oni mogu obuhvatati tekst koji primite, a kod modela rezonovanja i interne tokene rezonovanja koji se ne prikazuju kao tekst odgovora.

Koristite okvirne procjene za tekst na engleskom

Ove procjene mogu vam pomoći da odredite veličinu teksta na engleskom:

  • 1 token ima približno 4 znaka.

  • 1 token predstavlja približno tri četvrtine riječi.

  • 100 tokena predstavlja približno 75 riječi.

To su procjene, a ne tačni brojevi. Dužine rečenica i odlomaka se razlikuju, a u drugim jezicima odnosi između znakova, riječi i tokena mogu biti drugačiji.

Uzmite u obzir razmake i velika slova

Riječ se može podijeliti na različite tokene zavisno od načina pisanja, upotrebe velikih slova i okolnog teksta.

Naprimjer, red, Red i red nemaju identičan tekst: posljednji primjer sadrži razmak na početku. Kodiranje ih može predstaviti na različite načine.

ID-jevi tokena također zavise od kodiranja. Nemojte pretpostaviti da primjer ID-ja tokena vrijedi za svaki model.

Razlikovanje ulaznih i izlaznih tokena

KategorijaŠta opisuje
Ulazni tokeniTokeni dostavljeni modelu u zahtjevu. Nazivaju se i tokenima upita.
Izlazni tokeniTokeni koje generiše model. Chat Completions ih naziva tokenima dovršetka.
Keširani ulazni tokeniUlazni tokeni ponovo korišteni putem keširanja promptova. Njihove cijene mogu se razlikovati od cijena ulaznih tokena koji nisu keširani.
Tokeni rezonovanjaTokeni koje model rezonovanja interno koristi prije nego što generiše vidljivi odgovor.

Tokeni rezonovanja nisu vidljivi kao tekst odgovora, ali se ubrajaju u izlaznu upotrebu i naplaćuju kao izlazni tokeni.

Stoga kratak vidljivi odgovor može koristiti više tokena nego što prikazani tekst sugeriše.

Prebrojite tokene prije slanja zahtjeva

Brojanje tokena u običnom tekstu

Pomoću alata Tokenizer pogledajte kako se tekst dijeli na tokene.

Za programsku tokenizaciju običnog teksta koristite tiktoken. Odaberite kodiranje za ciljni model, naprimjer pomoću tiktoken.encoding_for_model(model).

Broj tokena u običnom tekstu ne mora obuhvatati sve tokene u API zahtjevu. Struktura poruka, alati, sheme, slike i datoteke mogu utjecati na ukupan broj ulaznih tokena.

Brojanje tokena u potpunom ulazu za Responses

Za potpuni ulaz API-ja Responses koristite API za brojanje ulaznih tokena.

Prihvata ulazne formate za Responses, uključujući poruke, slike, datoteke, alate i razgovore. Njegov broj obuhvata tokene za formatiranje strukture zahtjeva, kao što su uloge i granice poruka.

Broj ulaznih tokena ne predviđa koliko će izlaznih tokena model generisati.

Provjerite stvarnu upotrebu tokena

Nakon zahtjeva provjerite podatke o njegovoj upotrebi. Nazivi polja razlikuju se zavisno od krajnje tačke:

  • Chat Completions prikazuje prompt_tokens, completion_tokens i total_tokens.

  • Responses prikazuje input_tokens, output_tokens i total_tokens.

Aktivnost tokom vremena možete pregledati i na kontrolnoj ploči Usage. Upute, uključujući one za praćenje upotrebe tokom prijenosa, potražite u članku: Pregled upotrebe i troškova API-ja.

Ostanite unutar ograničenja modela

U dokumentaciji modela provjerite njegov kontekstni prozor i maksimalni izlaz. 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. Kod modela rezonovanja ostavite prostor i za tokene rezonovanja i za vidljivi odgovor.

Ako je vaš ulaz prevelik, možete:

  • Skratiti ili preformulisati upit.

  • Ukloniti nepotreban ili ponovljen kontekst.

  • Podijeliti velike ulaze na manje dijelove.

  • Sažeti ili unaprijed obraditi tekst prije slanja.

Koristite postavku izlaznih tokena koju podržavaju vaša krajnja tačka i model. Chat Completions koristi max_completion_tokens, a Responses koristi max_output_tokens.

Ova 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 koristite.

Razumijevanje cijena tokena

Kod cijena API-ja zasnovanih na tokenima, tarifa zavisi od modela i kategorije tokena. Ulazni, keširani ulazni i izlazni tokeni mogu imati različite cijene. Druge mogućnosti API-ja mogu koristiti drugačije obračunske jedinice.

Aktuelne tarife provjerite na stranici s cijenama API-ja.

Pri poređenju modela uzmite u obzir ukupan broj tokena i trošak potreban za izvršavanje zadatka. Niža cijena po milionu tokena ne znači nužno niži ukupan trošak: modeli mogu različito tokenizirati isti tekst i generisati različite količine izlaza ili rezonovanja.

Testirajte reprezentativne zadatke umjesto da poredite samo dužinu vidljivog odgovora.

Uzmite u obzir više dovršetaka

Kada krajnja tačka i model podržavaju generisanje više dovršetaka, i ti dodatni dovršeci koriste tokene.

U usluzi Chat Completions postavljanje n na vrijednost veću od 1 generiše više opcija. Naplaćuju vam se tokeni generisani u svim tim opcijama.

Kod zastarjelog API-ja Completions, best_of može generisati kandidate koji se neće svi vratiti. Naprimjer, best_of = 3 može među kandidatima generisati do 3 × max_tokens tokena dovršetka.

Ovi su parametri specifični za krajnju tačku. Nemojte pretpostaviti da drugi API ili model podržava n ili best_of.

Da li je ovaj članak bio koristan?