OpenAI
Den här sidan har maskinöversatts. Visa den ursprungliga engelska artikeln.

Vad är token och hur räknar man dem?

Uppdaterades: 21 days ago

Vad är token?

Token är byggstenarna i text som OpenAI-modeller bearbetar. De kan vara så korta som ett enda tecken eller så långa som ett helt ord, beroende på språk och sammanhang. Mellanslag, skiljetecken och delar av ord bidrar alla till antalet token. Så här segmenterar API:et din text internt innan det genererar ett svar.

Användbara tumregler för engelska:

  • 1 token ≈ 4 tecken

  • 1 token ≈ ¾ av ett ord

  • 100 token ≈ 75 ord

  • 1–2 meningar ≈ 30 token

  • 1 stycke ≈ 100 token

  • ~1 500 ord ≈ 2 048 token

Tokenisering varierar beroende på modell och kodning. Använd verktyget Tokenizer eller tiktoken.encoding_for_model(model) för att få det exakta antalet för din målmodell.

Exempel

Här är några verkliga textexempel med deras ungefärliga antal token:

  • Wayne Gretzkys citat ”Du missar 100 % av de skott du inte skjuter” = 11 token

  • OpenAI-stadgan = 476 token

  • USA:s självständighetsförklaring = 1 695 token

Hur antalet token beräknas

När du skickar text till API:et:

  1. Texten delas upp i token.

  2. Modellen bearbetar dessa token.

  3. Svaret genereras som en sekvens av token och konverteras sedan tillbaka till text.

Tokenanvändning spåras i flera kategorier:

  • Indatatoken – token i din begäran.

  • Utdatatoken – token som genereras i svaret.

  • Cachelagrade token – återanvända token i konversationshistoriken (debiteras ofta till ett lägre pris).

  • Resonemangstoken – i vissa avancerade modeller inkluderas extra ”tankesteg” internt innan det slutliga resultatet produceras.

Dessa antal visas i metadata för ditt API-svar och används för debitering och användningsspårning.

Om du vill utforska tokenisering ytterligare kan du använda vårt interaktiva Tokenizer-verktyg, där du kan beräkna antalet token och se hur text delas upp i token.

Alternativt, om du vill tokenisera text programmatiskt, kan du använda Tiktoken som en snabb BPE-tokeniserare som används specifikt för OpenAI-modeller.

Tokengränser

Varje modell har en maximal sammanlagd tokengräns (indata + utdata). Aktuella modeller med hög kapacitet stöder upp till hundratusentals token i kontexten, även om praktiska gränser kan variera beroende på modellversion och användningsnivå.

Om du överskrider gränsen kan du:

  • Förkorta eller formulera om prompter.

  • Dela upp stora texter i mindre delar.

  • Sammanfatta eller förbearbeta indata innan du skickar dem.

Tokenprissättning

API-användning prissätts per token och varierar beroende på modell och på om token är indata, utdata eller cachelagrade. Se OpenAI:s prissida för aktuella priser. Vissa resonemangsmodeller kan använda fler token internt men syftar till att förbättra effektiviteten genom att minska antalet token som behövs per slutförd uppgift.

Utforska token

API:et behandlar ord utifrån deras sammanhang i korpusdata. Modeller tar prompten, konverterar indata till en lista med token, bearbetar prompten och konverterar de förutsagda token tillbaka till orden vi ser i svaret.

Det som för oss kan verka vara två identiska ord kan genereras till olika token beroende på hur de är strukturerade i texten. Tänk på hur API:et genererar tokenvärden för ordet ”red” baserat på dess sammanhang i texten:

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örsta exemplet ovan innehåller token ”2266” för ” red” ett efterföljande blanksteg (observera att detta är exempel på token-ID:n i demonstrationssyfte).

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” för ” Red” (med ett inledande blanksteg och stor begynnelsebokstav) skiljer sig från token ”2266” för ” 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” används i början av en mening innehåller den genererade token inte något inledande blanksteg. Token ”7738” skiljer sig från de två tidigare exemplen på ordet.

Observationer:

Ju mer sannolik/vanlig en token är, desto lägre tokennummer tilldelas den:

  • Den token som genereras för punkten är densamma (”13”) i alla tre meningar. Det beror på att punkten, sett till sammanhanget, används ganska likartat i hela korpusdatan.

  • Den token som genereras för ”red” varierar beroende på dess placering i meningen:

    • Gemener mitt i en mening: ” red” – (token: ”2266”)

    • Versal mitt i en mening: ” Red” – (token: ”2297”)

    • Versal i början av en mening: ”Red” – (token: ”7738”)

Var den här artikeln till hjälp?