OpenAI
Denne siden ble maskinoversatt. Se den opprinnelige engelske artikkelen.

Hva er token, og hvordan teller man dem?

Oppdatert: 15 days ago

Hva er token?

Token er byggesteinene i tekst som OpenAI-modeller behandler. De kan være så korte som ett enkelt tegn eller så lange som et helt ord, avhengig av språk og kontekst. Mellomrom, tegnsetting og deler av ord bidrar alle til antall token. Slik segmenterer API-et teksten din internt før det genererer et svar.

Nyttige tommelfingerregler for engelsk:

  • 1 token ≈ 4 tegn

  • 1 token ≈ ¾ av et ord

  • 100 token ≈ 75 ord

  • 1–2 setninger ≈ 30 token

  • 1 avsnitt ≈ 100 token

  • ~1 500 ord ≈ 2 048 token

Tokenisering kan variere etter språk. For eksempel inneholder «Cómo estás» (spansk for «Hvordan har du det») 5 token for 10 tegn. Ikke-engelsk tekst gir ofte et høyere forhold mellom token og tegn, noe som kan påvirke kostnader og grenser.

Eksempler

Her er noen teksteksempler fra virkeligheten med omtrentlige antall token:

  • Wayne Gretzkys sitat «Du bommer på 100 % av skuddene du ikke tar» = 11 token

  • OpenAI Charter = 476 token

  • USAs uavhengighetserklæring = 1 695 token

Hvordan antall token beregnes

Når du sender tekst til API-et:

  1. Teksten deles opp i token.

  2. Modellen behandler disse tokenene.

  3. Svaret genereres som en sekvens av token og konverteres deretter tilbake til tekst.

Tokenbruk spores i flere kategorier:

  • Input-token – token i forespørselen din.

  • Output-token – token generert i svaret.

  • Bufrede token – gjenbrukte token i samtalehistorikken (faktureres ofte til redusert sats).

  • Resonneringstoken – i noen avanserte modeller inkluderes ekstra «tanketrinn» internt før det endelige resultatet produseres.

Disse tallene vises i metadataene i API-svaret ditt og brukes til fakturering og brukssporing.

For å utforske tokenisering videre kan du bruke vårt interaktive Tokenizer-verktøy, som lar deg beregne antall token og se hvordan tekst deles opp i token.

Alternativt, hvis du vil tokenisere tekst programmatisk, kan du bruke Tiktoken som en rask BPE-tokeniserer som brukes spesifikt for OpenAI-modeller.

Tokengrenser

Hver modell har en maksimal samlet tokengrense (input + output). Dagens modeller med høy kapasitet støtter opptil hundretusener av token i kontekst, men praktiske grenser kan variere avhengig av modellversjonen og bruksnivået ditt.

Hvis du overskrider grensen, kan du:

  • Forkorte eller omformulere prompt.

  • Dele stor tekst opp i mindre biter.

  • Oppsummere eller forhåndsbehandle input før du sender dem.

Tokenprising

API-bruk prises per token, og varierer etter modell og om tokenene er input, output eller bufret. Se OpenAIs prisside for gjeldende satser. Noen resonneringsmodeller kan bruke flere token internt, men har som mål å forbedre effektiviteten ved å redusere antall token som trengs per fullført oppgave.

Utforske token

API-et behandler ord ut fra konteksten deres i korpusdataene. Modeller tar prompten, konverterer input til en liste med token, behandler prompten og konverterer de predikerte tokenene tilbake til ordene vi ser i svaret.

Det som kan se ut som to identiske ord for oss, kan bli generert til forskjellige token avhengig av hvordan de er strukturert i teksten. Se hvordan API-et genererer tokenverdier for ordet «red» basert på konteksten i teksten:

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

I det første eksempelet over inkluderer tokenet «2266» for « red» et etterfølgende mellomrom (merk at dette er eksempel-token-ID-er for demonstrasjonsformål).

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

Tokenet «2296» for « Red» (med et innledende mellomrom og stor forbokstav) er forskjellig fra tokenet «2266» for « red» med liten bokstav.

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

Når «Red» brukes i begynnelsen av en setning, inkluderer det genererte tokenet ikke et innledende mellomrom. Tokenet «7738» er forskjellig fra de to foregående eksemplene på ordet.

Observasjoner:

Jo mer sannsynlig/vanlig et token er, desto lavere tokennummer tildeles det:

  • Tokenet som genereres for punktumet er det samme («13») i alle de tre setningene. Dette er fordi punktum, kontekstuelt sett, brukes ganske likt gjennom hele korpusdataene.

  • Tokenet som genereres for «red», varierer avhengig av plasseringen i setningen:

    • Liten bokstav midt i en setning: « red» - (token: «2266»)

    • Stor bokstav midt i en setning: « Red» - (token: «2297»)

    • Stor bokstav i begynnelsen av en setning: «Red» - (token: «7738»)

Var denne artikkelen nyttig?