Što su tokeni?
Tokeni su osnovne jedinice teksta koje obrađuju modeli OpenAI-ja. Mogu biti kratki poput jednog znaka ili dugi poput cijele riječi, ovisno o jeziku i kontekstu. Razmaci, interpunkcijski znakovi i dijelovi riječi ulaze u ukupan broj tokena. API na taj način interno segmentira vaš tekst prije generiranja odgovora.
Korisne okvirne procjene za engleski:
1 token ≈ 4 znaka
1 token ≈ ¾ riječi
100 tokena ≈ 75 riječi
1–2 rečenice ≈ 30 tokena
1 odlomak ≈ 100 tokena
~1.500 riječi ≈ 2.048 tokena
Tokenizacija se razlikuje ovisno o modelu i kodiranju. Za točan broj za ciljni model upotrijebite alat za tokenizaciju ili tiktoken.encoding_for_model(model).
Primjeri
Evo nekoliko primjera tekstova iz stvarnog svijeta s približnim brojem tokena:
Citat Waynea Gretzkyja „Promašite 100 % udaraca koje ne pokušate“ = 11 tokena
Povelja OpenAI-ja = 476 tokena
Deklaracija neovisnosti SAD-a = 1.695 tokena
Kako se izračunava broj tokena
Kada pošaljete tekst API-ju:
Tekst se dijeli na tokene.
Model obrađuje te tokene.
Odgovor se generira kao niz tokena, a zatim se ponovno pretvara u tekst.
Upotreba tokena prati se u nekoliko kategorija:
Ulazni tokeni – tokeni u vašem zahtjevu.
Izlazni tokeni – tokeni generirani u odgovoru.
Predmemorirani tokeni – ponovno upotrijebljeni tokeni iz povijesti razgovora (često se naplaćuju po nižoj cijeni).
Tokeni rasuđivanja – kod nekih naprednih modela prije izrade konačnog rezultata interno se izvode dodatni „koraci razmišljanja“.
Ti se brojevi prikazuju u metapodacima odgovora API-ja te se upotrebljavaju za naplatu i praćenje upotrebe.
Za dodatno istraživanje tokenizacije možete upotrijebiti naš interaktivni alat za tokenizaciju, koji omogućuje izračun broja tokena i prikazuje kako se tekst dijeli na tokene.
Ako pak želite programski tokenizirati tekst, upotrijebite Tiktoken, brzi BPE tokenizator namijenjen modelima OpenAI-ja.
Ograničenja tokena
Svaki model ima maksimalno ukupno ograničenje tokena (ulaz + izlaz). Trenutačni modeli velikog kapaciteta podržavaju kontekst od nekoliko stotina tisuća tokena, iako se praktična ograničenja mogu razlikovati ovisno o verziji modela i vašoj razini upotrebe.
Ako prekoračite ograničenje, možete:
Skratiti ili preoblikovati upite.
Podijeliti velike tekstove na manje dijelove.
Sažeti ili prethodno obraditi ulazne podatke prije slanja.
Cijene tokena
Upotreba API-ja naplaćuje se po tokenu, a cijena ovisi o modelu i tome jesu li tokeni ulazni, izlazni ili predmemorirani. Aktualne cijene potražite na stranici s cijenama OpenAI-ja. Neki modeli za rasuđivanje mogu interno upotrebljavati više tokena, ali nastoje povećati učinkovitost smanjenjem broja tokena potrebnih za dovršavanje zadatka.
Istraživanje tokena
API obrađuje riječi u skladu s njihovim kontekstom u korpusnim podacima. Modeli primaju upit, pretvaraju ulaz u popis tokena, obrađuju upit te predviđene tokene ponovno pretvaraju u riječi koje vidimo u odgovoru.
Dvije riječi koje nama izgledaju jednako mogu se pretvoriti u različite tokene, ovisno o tome kako su strukturirane u tekstu. Pogledajte kako API generira vrijednosti tokena za riječ „red“ na temelju njezina konteksta u tekstu:
U prvom gornjem primjeru token „2266“ za „ red“ uključuje završni razmak (napomena: ovo su primjeri ID-jeva tokena navedeni radi demonstracije).
Token „2296“ za „ Red“ (s početnim razmakom i velikim početnim slovom) razlikuje se od tokena „2266“ za „ red“ s malim početnim slovom.
Kada se „Red“ nalazi na početku rečenice, generirani token ne uključuje početni razmak. Token „7738“ razlikuje se od prethodna dva primjera te riječi.
Zapažanja:
Što je token vjerojatniji ili učestaliji, to mu se dodjeljuje manji broj:
Token generiran za točku jednak je („13“) u sve tri rečenice. Razlog je to što se točka u kontekstu upotrebljava prilično slično u cijelom korpusu podataka.
Token generiran za „red“ razlikuje se ovisno o položaju riječi u rečenici:
Malo početno slovo u sredini rečenice: „ red“ – (token: „2266“)
Veliko početno slovo u sredini rečenice: „ Red“ – (token: „2297“)
Veliko početno slovo na početku rečenice: „Red“ – (token: „7738“)
