OpenAI
Tämä sivu on konekäännetty. Katso alkuperäinen englanninkielinen artikkeli.

Mitä tokenit ovat ja miten ne lasketaan?

Päivitetty: 13 hours ago

Mitä tokenit ovat?

Tokenit ovat tekstin rakenneosia, joita OpenAI-mallit käsittelevät. Ne voivat olla yhden merkin tai kokonaisen sanan pituisia kielen ja asiayhteyden mukaan. 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ä englannin kielelle:

  • 1 token ≈ 4 merkkiä

  • 1 token ≈ ¾ sanaa

  • 100 tokenia ≈ 75 sanaa

  • 1–2 virkettä ≈ 30 tokenia

  • 1 kappale ≈ 100 tokenia

  • noin 1 500 sanaa ≈ 2 048 tokenia

Tokenisointi vaihtelee mallin ja koodauksen mukaan. Saat tarkan määrän kohdemallillesi Tokenizer-työkalulla tai komennolla tiktoken.encoding_for_model(model).

Esimerkkejä

Tässä on käytännön tekstiesimerkkejä ja niiden likimääräiset tokenimäärät:

  • Wayne Gretzkyn sitaatti ”Kaikki laukaukset, joita et lauo, menevät varmasti ohi” = 11 tokenia

  • OpenAI-peruskirja = 476 tokenia

  • Yhdysvaltain itsenäisyysjulistus = 1 695 tokenia

Tokenimäärien laskeminen

Kun lähetät tekstiä APIin:

  1. Teksti jaetaan tokeneiksi.

  2. Malli käsittelee nämä tokenit.

  3. Vastaus luodaan tokenien sarjana ja muunnetaan sitten takaisin tekstiksi.

Tokenien käyttöä seurataan useissa luokissa:

  • Syötetokenit – pyyntösi tokenit.

  • Tulostokenit – vastaukseen luodut tokenit.

  • Välimuistiin tallennetut tokenit – keskusteluhistoriasta uudelleen käytetyt tokenit (usein edullisemmalla hinnalla).

  • Päättelytokenit – joissakin edistyneissä malleissa käytetään sisäisesti ylimääräisiä ”ajatteluvaiheita” ennen lopullisen tuloksen tuottamista.

Nämä määrät näkyvät API-vastauksen metatiedoissa, ja niitä käytetään laskutukseen sekä käytön seurantaan.

Voit tutustua tokenisointiin tarkemmin interaktiivisella Tokenizer-työkalullamme, jolla voit laskea tokenien määrän ja nähdä, miten teksti jaetaan tokeneiksi.

Jos haluat tokenisoida tekstiä ohjelmallisesti, käytä Tiktokenia. Se on nopea BPE-tokenisoija, joka on suunniteltu erityisesti OpenAI-malleille.

Tokenirajat

Jokaisella mallilla on syöte- ja tulostokenien yhteinen enimmäismäärä. Nykyiset suuren kapasiteetin mallit tukevat kontekstissa jopa satojatuhansia tokeneita, mutta käytännön rajat voivat vaihdella malliversion ja käyttötason mukaan.

Jos ylität rajan, voit:

  • Lyhentää tai muotoilla kehotteet uudelleen.

  • Jakaa pitkän tekstin pienempiin osiin.

  • Tiivistää tai esikäsitellä syötteet ennen lähettämistä.

Tokenien hinnoittelu

API-käyttö hinnoitellaan tokeneittain. Hinta riippuu mallista sekä siitä, ovatko tokenit syöte-, tulos- vai välimuistitokeneita. Ajantasaiset hinnat ovat OpenAI:n hinnoittelusivulla. Jotkin päättelymallit voivat käyttää sisäisesti enemmän tokeneita, mutta pyrkivät tehostamaan toimintaa vähentämällä tehtävän suorittamiseen tarvittavien tokenien määrää.

Tokenien tarkastelu

API käsittelee sanoja korpusaineistossa esiintyvän asiayhteyden mukaan. Mallit ottavat kehotteen, muuntavat syötteen tokeniluetteloksi, käsittelevät kehotteen ja muuntavat ennustetut tokenit takaisin vastauksessa näkyviksi sanoiksi.

Kaksi meistä samalta näyttävää sanaa voidaan muuntaa eri tokeneiksi sen mukaan, miten ne sijoittuvat tekstiin. Tarkastellaan, miten API luo sanalle ”red” tokenarvoja sen tekstiyhteyden perusteella:

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

Yllä olevassa ensimmäisessä esimerkissä ilmauksen ” red” token ”2266” sisältää lopussa välilyönnin. (Nämä token-tunnukset ovat vain havainnollistavia esimerkkejä.)

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

Ilmauksen ” Red” token ”2296” (alussa välilyönti ja iso alkukirjain) eroaa pienellä kirjaimella kirjoitetun ilmauksen ” red” tokenista ”2266”.

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

Kun ”Red” on virkkeen alussa, luotu token ei sisällä edeltävää välilyöntiä. Token ”7738” eroaa sanan kahdesta edellisestä esimerkistä.

Huomioita:

Mitä todennäköisempi tai yleisempi token on, sitä pienempi numero sille annetaan:

  • Pisteelle luotu token on sama (”13”) kaikissa kolmessa virkkeessä. Tämä johtuu siitä, että pistettä käytetään asiayhteyden kannalta varsin samalla tavalla koko korpusaineistossa.

  • Sanalle ”red” luotu token vaihtelee sen mukaan, missä kohdassa virkettä sana on:

    • Pienellä kirjaimella virkkeen keskellä: ” red” – (token: ”2266”)

    • Isolla kirjaimella virkkeen keskellä: ” Red” – (token: ”2297”)

    • Isolla kirjaimella virkkeen alussa: ”Red” – (token: ”7738”)

Oliko tästä artikkelista apua?