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

Mitä tokenit ovat ja miten ne lasketaan?

Päivitetty: 22 days ago

Mitä tokenit ovat?

Tokenit ovat tekstin rakennuspalikoita, joita OpenAI:n mallit käsittelevät. Ne voivat olla niin lyhyitä kuin yksi merkki tai niin pitkiä kuin kokonainen sana kielen ja kontekstin mukaan. Välilyönnit, välimerkit ja sanan osat kaikki vaikuttavat token-määriin. Näin API jaksottaa tekstisi sisäisesti ennen vastauksen luomista.

Hyödyllisiä nyrkkisääntöjä englannille:

  • 1 token ≈ 4 merkkiä

  • 1 token ≈ ¾ sanasta

  • 100 tokenia ≈ 75 sanaa

  • 1–2 virkettä ≈ 30 tokenia

  • 1 kappale ≈ 100 tokenia

  • ~1 500 sanaa ≈ 2 048 tokenia

Tokenisointi voi vaihdella kielen mukaan. Esimerkiksi ”Cómo estás” (espanjaa ja tarkoittaa ”Mitä kuuluu?”) sisältää 5 tokenia 10 merkille. Muunkielinen kuin englanninkielinen teksti tuottaa usein suuremman tokeni–merkki-suhteen, mikä voi vaikuttaa kustannuksiin ja rajoihin.

Esimerkkejä

Tässä on joitakin oikean maailman tekstinäytteitä ja niiden likimääräiset token-mää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 token-määrät lasketaan

Kun lähetät tekstiä APIin:

  1. Teksti jaetaan tokeneiksi.

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

  3. Vastaus luodaan token-jonona ja muunnetaan sitten takaisin tekstiksi.

Tokenien käyttöä seurataan useissa luokissa:

  • Syötetokenit – pyynnössäsi olevat tokenit.

  • Tulostetokenit – vastauksessa luodut tokenit.

  • Välimuistitokenit – keskusteluhistoriassa uudelleenkäytetyt tokenit (joista veloitetaan usein alemmalla hinnalla).

  • Päättelytokenit – joissakin kehittyneissä malleissa lopullista tulostetta ennen sisältyy sisäisesti ylimääräisiä ”ajatteluvaiheita”.

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

Jos haluat tutkia tokenisointia tarkemmin, voit käyttää interaktiivista Tokenizer-työkaluamme, jonka avulla voit laskea tokenien määrän ja nähdä, miten teksti pilkotaan tokeneiksi.

Vaihtoehtoisesti, jos haluat tokenisoida tekstiä ohjelmallisesti, käytä Tiktokenia nopeana BPE-tokenisoijana, jota käytetään erityisesti OpenAI:n malleissa.

Token-rajoitukset

Jokaisella mallilla on enimmäisraja yhdistetylle token-määrälle (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 kehotteita uudelleen.

  • Jakaa suuren tekstin pienempiin osiin.

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

Token-hinnoittelu

API:n käyttö hinnoitellaan tokenia kohden, 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 niiden tavoitteena on parantaa tehokkuutta vähentämällä valmista tehtävää kohden tarvittavien tokenien määrää.

Tokenien tarkastelu

API käsittelee sanoja niiden kontekstin mukaan korpusaineistossa. Mallit ottavat kehotteen, muuttavat syötteen token-luetteloksi, käsittelevät kehotteen ja muuttavat ennustetut tokenit takaisin sanoiksi, jotka näemme vastauksessa.

Se, mikä voi näyttää meille kahdelta samalta sanalta, voidaan tuottaa eri tokeneina sen mukaan, miten ne on jäsennetty tekstissä. Tarkastellaan, miten API luo token-arvoja sanalle ”red” sen tekstikontekstin 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ä token ”2266” sanalle ” red” sisältää perässä olevan välilyönnin (huomaa, että nämä ovat esimerkinomaisia token-tunnuksia havainnollistamistarkoituksiin).

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

Token ”2296” sanalle ” Red” (edeltävä välilyönti ja alkukirjain isolla) on eri kuin token ”2266” sanalle ” red”, jossa alkukirjain on pieni.

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” esiintyy lauseen alussa, luotu token ei sisällä edeltävää välilyöntiä. Token ”7738” on eri kuin sanan kaksi aiempaa esimerkkiä.

Huomioita:

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

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

  • Sanalle ”red” luotu token vaihtelee sen mukaan, missä kohdassa lausetta se on:

    • Pienellä kirjaimella lauseen keskellä: ” red” - (token: ”2266”)

    • Isolla kirjaimella lauseen keskellä: ” Red” - (token: ”2297”)

    • Isolla kirjaimella lauseen alussa: ”Red” - (token: ”7738”)

Oliko tästä artikkelista apua?