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:
Texten delas upp i token.
Modellen bearbetar dessa token.
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:
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).
Token ”2296” för ” Red” (med ett inledande blanksteg och stor begynnelsebokstav) skiljer sig från token ”2266” för ” red” med liten bokstav.
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”)
