Mitä tokenit ovat?
Tokenit ovat tekstin perusosia, joita OpenAI-mallit käsittelevät. Ne voivat olla lyhyitä kuin yksittäinen merkki tai pitkiä kuin kokonainen sana kielestä ja asiayhteydestä riippuen. Välilyönnit, välimerkit ja sanojen osat vaikuttavat kaikki tokenien määrään. Näin API jakaa tekstisi sisäisesti osiin ennen vastauksen luomista.
Hyödyllisiä nyrkkisääntöjä englannille:
1 token ≈ 4 merkkiä
1 token ≈ ¾ sanasta
100 tokenia ≈ 75 sanaa
1–2 lausetta ≈ 30 tokenia
1 kappale ≈ 100 tokenia
~1 500 sanaa ≈ 2 048 tokenia
Tokenisointi vaihtelee mallin ja koodauksen mukaan. Käytä Tokenizer-työkalua tai tiktoken.encoding_for_model(model)-funktiota saadaksesi tarkan määrän kohdemallillesi.
Esimerkkejä
Tässä on joitakin tosielämän tekstinäytteitä ja niiden likimääräiset tokenimäärät:
Wayne Gretzkyn sitaatti ”You miss 100% of the shots you don’t take” = 11 tokenia
OpenAI Charter = 476 tokenia
Yhdysvaltain itsenäisyysjulistus = 1 695 tokenia
Miten tokenimäärät lasketaan
Kun lähetät tekstiä API:lle:
Teksti jaetaan tokeneihin.
Malli käsittelee nämä tokenit.
Vastaus luodaan tokenien sarjana ja muunnetaan sitten takaisin tekstiksi.
Tokenien käyttöä seurataan useissa luokissa:
Syötetokenit – pyyntösi tokenit.
Tulostetokenit – vastauksessa luodut tokenit.
Välimuistiin tallennetut tokenit – keskusteluhistoriasta uudelleenkäytetyt tokenit (laskutetaan usein alennetulla hinnalla).
Päättelytokenit – joissakin edistyneissä malleissa sisäisesti mukaan sisällytettyjä ylimääräisiä ”ajatteluvaiheita” ennen lopullisen tulosteen tuottamista.
Nämä määrät näkyvät API-vastauksesi metatiedoissa, ja niitä käytetään laskutukseen ja käytön seurantaan.
Voit tutkia tokenisointia tarkemmin interaktiivisella Tokenizer-työkalullamme, jonka avulla voit laskea tokenien määrän ja nähdä, miten teksti jaetaan tokeneiksi.
Vaihtoehtoisesti, jos haluat tokenisoida tekstiä ohjelmallisesti, käytä Tiktokenia, nopeaa BPE-tokenisoijaa, jota käytetään erityisesti OpenAI-malleille.
Tokenirajat
Jokaisella mallilla on yhdistetty enimmäistokeniraja (syöte + tuloste). Nykyiset suuren kapasiteetin mallit tukevat kontekstissa jopa satojatuhansia tokeneita, vaikka käytännön rajat voivat vaihdella malliversion ja käyttötasosi mukaan.
Jos ylität rajan, voit:
Lyhentää tai muotoilla kehotteet uudelleen.
Jakaa suuret tekstit pienempiin osiin.
Tiivistää tai esikäsitellä syötteet ennen niiden lähettämistä.
Tokenien hinnoittelu
API:n käyttö hinnoitellaan tokenikohtaisesti, ja hinta vaihtelee mallin sekä sen mukaan, ovatko tokenit syöte-, tuloste- vai välimuistitokeneita. Katso ajantasaiset hinnat OpenAI:n hinnoittelusivulta. Jotkin päättelymallit voivat käyttää sisäisesti enemmän tokeneita, mutta pyrkivät parantamaan tehokkuutta vähentämällä valmista tehtävää kohti tarvittavien tokenien määrää.
Tokenien tutkiminen
API käsittelee sanoja niiden korpusdatassa olevan asiayhteyden mukaan. Mallit ottavat kehotteen, muuntavat syötteen tokeniluetteloksi, käsittelevät kehotteen ja muuntavat ennustetut tokenit takaisin sanoiksi, jotka näemme vastauksessa.
Se, mikä näyttää meille kahdelta samalta sanalta, voi muodostua eri tokeneiksi sen mukaan, miten sanat on rakennettu tekstissä. Tarkastellaan, miten API luo tokeniarvoja sanalle ”red” sen tekstissä olevan asiayhteyden perusteella:
Yllä olevassa ensimmäisessä esimerkissä token ”2266” muodolle ” red” sisältää lopussa olevan välilyönnin (huomaa, että nämä ovat esimerkkitokenien tunnuksia havainnollistamistarkoituksiin).
Token ”2296” muodolle ” Red” (jossa on alussa välilyönti ja joka alkaa isolla kirjaimella) eroaa tokenista ”2266”, joka vastaa pienellä kirjaimella kirjoitettua muotoa ” red”.
Kun ”Red” on lauseen alussa, luotu token ei sisällä edeltävää välilyöntiä. Token ”7738” eroaa sanan kahdesta aiemmasta esimerkistä.
Havaintoja:
Mitä todennäköisempi tai yleisempi token on, sitä pienempi tokeninumero sille annetaan:
Pisteelle luotu token on sama (”13”) kaikissa kolmessa lauseessa. Tämä johtuu siitä, että asiayhteyden kannalta pistettä käytetään korpusdatassa melko samalla tavalla.
Sanalle ”red” luotu token vaihtelee sen mukaan, missä kohdassa lausetta se esiintyy:
Pienellä kirjaimella lauseen keskellä: ” red” – (token: ”2266”)
Isolla kirjaimella lauseen keskellä: ” Red” – (token: ”2297”)
Isolla kirjaimella lauseen alussa: ”Red” – (token: ”7738”)
