Spring til indhold

Gratis Token-tæller til GPT-4, ChatGPT & AI-modeller

Nøjagtig token-tæller ved brug af OpenAI's tiktoken-bibliotek. Tæl tokens for GPT-4, ChatGPT og GPT-3 modeller. Administrer API-omkostninger og optimer AI-prompter øjeblikkeligt.

Token Tæller

Kodning

Ugyldigt input

Indlæsningsberegner...
📚

Dokumentation

Hvad er en token-tæller?

En token-tæller måler, hvor mange tokens et stykke tekst opdeles i, når en AI-sprogmodel læser det. Tokens er de små tekststykker — hele ord, dele af ord eller tegnsætningstegn — som modeller som GPT-4 og ChatGPT behandler i stedet for rå bogstaver. Dette værktøj bruger tiktoken, et open source-tokeniseringsbibliotek udgivet af OpenAI, så optællingerne stemmer overens med det, OpenAIs egne modeller og API ville producere.

Sådan fungerer tokenisering

En tokenizer tæller ikke blot ord. Den kører teksten gennem en algoritme, der kaldes byte pair encoding (BPE). Algoritmen begynder med individuelle bytes i teksten og sammenfletter gentagne gange de hyppigste tilstødende par baseret på mønstre, der er lært fra en stor tekstmængde under træningen. Resultatet er et fast ordforråd på titusindvis af almindelige tekststykker: hele korte ord, hyppige orddele og enkelttegn for alt, der forekommer sjældent.

Derfor bliver ét engelsk ord ofte til én token, men længere eller usædvanlige ord kan opdeles i to eller flere. Mellemrum er normalt knyttet til begyndelsen af den næste token i stedet for at blive talt separat, og tegnsætningstegn er typisk deres egne tokens.

Kodninger, som dette værktøj understøtter

Tiktoken tilbyder flere kodninger, som hver er knyttet til en familie af OpenAI-modeller. Dette værktøj understøtter tre:

KodningAnvendes afOmtrentlig størrelse på ordforrådet
cl100k_baseModeller i GPT-3,5- og GPT-4-familien, ChatGPTomkring 100.000 tokens
p50k_baseSenere GPT-3-modelleromkring 50.000 tokens
r50k_baseTidligere GPT-3- og GPT-2-modelleromkring 50.000 tokens

cl100k_base vælges som standard, da den dækker den model-familie, som de fleste bruger i dag. Den samme tekst kan give et forskelligt antal tokens med hver kodning, fordi de hver især er trænet på forskellige tekster og sammenfletter tegn på forskellig måde.

Sådan beregnes et antal tokens

Der findes ingen enkel aritmetisk formel til at omregne antal tegn eller ord til et antal tokens, fordi BPE-sammenfletninger afhænger af den konkrete tekst og det trænede ordforråd. Den eneste nøjagtige metode er at køre teksten gennem selve tokenizeren:

  1. Vælg den kodning, der passer til målmodellen.
  2. Send teksten ind i tokenizeren til den pågældende kodning.
  3. Tæl den resulterende liste af token-id'er. Listens længde er antallet af tokens.

Som et groft estimat for engelsk tekst svarer én token til omkring fire tegn eller cirka tre fjerdedele af et ord. Dette er kun en tommelfingerregel. Tal, kode, ikke-engelsk tekst og usædvanlig stavning kan ændre forholdet betydeligt.

Regneeksempel

Betragt sætningen:

"Tokenisering opdeler tekst i stykker."

Med kodningen cl100k_base opdeler tiktoken denne i 7 tokens:

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

Bemærk, at selve "Tokenization" opdeles i to tokens, "Token" og "ization", mens alle andre ord forbliver hele. Det afsluttende punktum er sin egen token. Derfor giver en sætning på 37 tegn med 5 ord 7 tokens i stedet for 6.

Hvorfor antallet af tokens er vigtigt

AI-udbydere tager betaling for API-brug pr. token og tæller både den tekst, der sendes ind, og den tekst, der genereres som svar, så et antal tokens kan forudsige omkostningen, før en forespørgsel sendes. Hver model har også en maksimal kontekstlængde, altså en grænse for, hvor mange tokens en enkelt forespørgsel og dens svar tilsammen kan indeholde. Grænsen varierer fra model til model og ændrer sig, når udbydere udgiver nye versioner, så den bør kontrolleres i den aktuelle dokumentation for den model, der bruges, i stedet for at blive antaget ud fra hukommelsen.

Ofte stillede spørgsmål

Hvad er en token i AI-sprogmodeller? En token er et stykke tekst, som en sprogmodel læser som én enhed. Det kan være et helt kort ord, en del af et længere ord, et tegnsætningstegn eller et mellemrum, der er knyttet til det følgende ord.

Hvorfor giver forskellige kodninger forskellige antal tokens for den samme tekst? Hver kodning blev trænet på sit eget tekstudsnit og opbyggede sit eget ordforråd af almindelige tekststykker. Et ord, der er almindeligt nok til at være én token i ét ordforråd, findes måske ikke i et andet og bliver derfor opdelt anderledes.

Tæller tegnsætning som en token? Ja. Tegnsætningstegn tælles normalt som deres egne tokens eller bliver lejlighedsvis sammenflettet med det tilstødende tegn, afhængigt af hvor ofte denne kombination forekom under tokenizerens træning.

Er en token det samme som et ord? Nej. Korte, almindelige ord er normalt én token hver. Længere eller mindre almindelige ord og de fleste ord uden for engelsk opdeles ofte i to eller flere tokens.

Hvor nøjagtigt er dette værktøj? Det tæller tokens ved hjælp af OpenAIs eget tiktoken-bibliotek og anvender den samme kodningslogik, som OpenAI bruger internt, så optællingen stemmer overens med det, et OpenAI API-kald ville rapportere for den samme tekst og kodning.

Kan dette værktøj tælle tokens for modeller, der ikke er fra OpenAI? Det bruger tiktokens kodninger, som er udviklet til OpenAIs modeller. Andre udbydere, såsom Anthropic eller Google, bruger deres egne tokenizere, som kan give forskellige optællinger for den samme tekst.

Referencer

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