Hoppa till innehåll

Gratis Tokenräknare för GPT-4, ChatGPT & AI-modeller

Exakt tokenräknare med OpenAI:s tiktoken-bibliotek. Räkna tokens för GPT-4, ChatGPT och GPT-3-modeller. Hantera API-kostnader och optimera AI-prompter direkt.

Tokenräknare

Kodning

Ogiltig inmatning

Laddningsberäknare...
📚

Dokumentation

Vad är en tokenräknare?

En tokenräknare mäter hur många token ett textstycke delas upp i när en AI-språkmodell läser det. Token är små textdelar – hela ord, delar av ord eller skiljetecken – som modeller som GPT-4 och ChatGPT bearbetar i stället för enskilda bokstäver. Verktyget använder tiktoken, ett bibliotek för tokenisering med öppen källkod som publicerats av OpenAI, så att antalen överensstämmer med de resultat som OpenAIs egna modeller och API skulle ge.

Så fungerar tokenisering

En tokeniserare räknar inte bara ord. Den kör texten genom en algoritm som kallas byte pair encoding (BPE). Algoritmen börjar med textens enskilda byte och slår upprepade gånger ihop de vanligaste intilliggande paren, baserat på mönster som lärts in från en stor textmängd under träningen. Resultatet blir en fast uppsättning med tiotusentals vanliga textbitar: hela korta ord, vanliga ordfragment och enskilda tecken för sådant som är sällsynt.

Därför blir ett engelskt ord ofta en token, men längre eller ovanliga ord kan delas upp i två eller fler. Mellanslag kopplas vanligtvis till början av nästa token i stället för att räknas separat, och skiljetecken utgör oftast egna token.

Kodningar som stöds av verktyget

Tiktoken erbjuder flera kodningar, som var och en är knuten till en familj av OpenAI-modeller. Verktyget stöder tre:

KodningAnvänds avUngefärlig ordförrådsstorlek
cl100k_baseModeller i GPT-3,5- och GPT-4-familjerna, ChatGPTcirka 100 000 token
p50k_baseSenare GPT-3-modellercirka 50 000 token
r50k_baseTidigare GPT-3- och GPT-2-modellercirka 50 000 token

cl100k_base väljs som standard, eftersom den omfattar den modellfamilj som de flesta använder i dag. Samma text kan ge olika antal token beroende på kodning, eftersom var och en tränades på olika text och slår ihop tecken på olika sätt.

Så beräknas ett tokenantal

Det finns ingen enkel aritmetisk formel för att omvandla tecken- eller ordantal till ett tokenantal, eftersom BPE-sammanslagningarna beror på den specifika texten och det tränade ordförrådet. Den enda exakta metoden är att köra texten genom själva tokeniseraren:

  1. Välj den kodning som motsvarar målmodellen.
  2. Mata in texten i den kodningens tokeniserare.
  3. Räkna antalet token-ID:n i den resulterande listan. Listans längd är tokenantalet.

Som en grov uppskattning för engelsk text motsvarar en token ungefär fyra tecken eller cirka tre fjärdedelar av ett ord. Detta är bara en riktlinje. Tal, kod, icke-engelsk text och ovanlig stavning kan förändra förhållandet avsevärt.

Löst exempel

Ta följande mening:

"Tokenisering delar texten i delar."

Med kodningen cl100k_base delar tiktoken upp detta i 7 token:

Token, ization, splits, text, into, pieces, .

Lägg märke till att själva ordet "Tokenisering" delas upp i två token, "Token" och "isering", medan alla andra ord förblir hela. Den avslutande punkten är en egen token. Därför ger en mening med 37 tecken och 5 ord 7 token i stället för 6.

Varför tokenantal spelar roll

AI-leverantörer tar betalt per token för API-användning och räknar både texten som skickas in och texten som genereras som svar, så ett tokenantal förutsäger kostnaden innan en begäran skickas. Varje modell har också en maximal kontextlängd, det vill säga en gräns för hur många token en enskild begäran och dess svar får innehålla tillsammans. Gränsen varierar mellan modeller och ändras när leverantörer släpper nya versioner, så den bör kontrolleras i den aktuella dokumentationen för modellen som används i stället för att antas utifrån minnet.

Vanliga frågor och svar

Vad är en token i AI-språkmodeller? En token är en textdel som en språkmodell läser som en enhet. Det kan vara ett helt kort ord, en del av ett längre ord, ett skiljetecken eller ett mellanslag som är kopplat till det följande ordet.

Varför ger olika kodningar olika tokenantal för samma text? Varje kodning tränades på sitt eget texturval och byggde upp sitt eget ordförråd med vanliga delar. Ett ord som är tillräckligt vanligt för att vara en enda token i ett ordförråd kanske inte finns där på samma sätt i ett annat, och delas därför upp annorlunda.

Räknas skiljetecken som en token? Ja. Skiljetecken räknas vanligtvis som egna token, men kan ibland slås ihop med tecknet bredvid, beroende på hur ofta kombinationen förekom i tokeniserarens träningsdata.

Är en token samma sak som ett ord? Nej. Korta, vanliga ord är vanligtvis en token vardera. Längre eller mindre vanliga ord, och de flesta ord på andra språk än engelska, delas ofta upp i två eller fler token.

Hur exakt är det här verktyget? Det räknar token med OpenAIs eget tiktoken-bibliotek och använder samma kodningslogik som OpenAI använder internt, så antalet stämmer överens med vad ett OpenAI API-anrop skulle rapportera för samma text och kodning.

Kan verktyget räkna token för modeller som inte kommer från OpenAI? Det använder tiktokens kodningar, som är byggda för OpenAIs modeller. Andra leverantörer, som Anthropic eller Google, använder egna tokeniserare, vilket kan ge olika antal för samma text.

Referenser

  1. OpenAI. "tiktoken." GitHub, https://github.com/openai/tiktoken.
  2. Sennrich, Rico, med flera. "Neural Machine Translation of Rare Words with Subword Units." arXiv:1508,07909, 2016, http://arxiv.org/abs/1508.07909.
  3. Brown, Tom B., med flera. "Language Models are Few-Shot Learners." arXiv:2005,14165, 2020, http://arxiv.org/abs/2005.14165.