Прескочи към съдържанието

Безплатен брояч на токени за GPT-4, ChatGPT и AI модели

Точен брояч на токени, използващ библиотеката tiktoken на OpenAI. Броене на токени за GPT-4, ChatGPT и GPT-3 модели. Управление на API разходи и моментална оптимизация на AI подканвания.

Брояч на токени

Кодиране

Невалиден вход

Калкулатор за зареждане...
📚

Документация

Какво представлява броячът на токени?

Броячът на токени измерва на колко токена се разделя даден текст, когато езиков модел с изкуствен интелект го прочете. Токените са малки части от текста — цели думи, части от думи или препинателни знаци — които модели като GPT-4 и ChatGPT обработват вместо отделни букви. Този инструмент използва tiktoken — библиотеката с отворен код за токенизация, публикувана от OpenAI, — така че броят съвпада с резултата, който биха дали собствените модели и API на OpenAI.

Как работи токенизацията

Токенизаторът не брои просто думите. Той подава текста на алгоритъм, наречен кодиране чрез двойки байтове (BPE). Алгоритъмът започва с отделните байтове на текста и многократно слива най-често срещаните съседни двойки въз основа на закономерности, научени от голям корпус текст по време на обучението. Резултатът е фиксиран речник от десетки хиляди често срещани части: цели кратки думи, чести фрагменти от думи и отделни знаци за редки случаи.

Поради това една английска дума често се превръща в един токен, но по-дългите или необичайни думи могат да се разделят на два или повече. Обикновено интервалите се прикрепят към началото на следващия токен, вместо да се броят самостоятелно, а препинателните знаци обикновено са отделни токени.

Поддържани от този инструмент кодирания

Tiktoken предлага няколко кодирания, всяко свързано с определено семейство модели на OpenAI. Този инструмент поддържа три:

КодиранеИзползва се отПриблизителен размер на речника
cl100k_baseМоделите от семейството GPT-3,5 и GPT-4, ChatGPTоколо 100 000 токена
p50k_baseПо-новите модели GPT-3около 50 000 токена
r50k_baseПо-старите модели GPT-3 и GPT-2около 50 000 токена

cl100k_base е избрано по подразбиране, тъй като обхваща семейството модели, което повечето хора използват днес. Един и същ текст може да даде различен брой токени при всяко кодиране, защото всяко от тях е обучено с различен текст и слива знаците по различен начин.

Как се изчислява броят на токените

Няма проста аритметична формула за преобразуване на броя знаци или думите в брой токени, тъй като сливането при BPE зависи от конкретния текст и обучения речник. Единственият точен метод е текстът да се подаде на самия токенизатор:

  1. Изберете кодиране, което съответства на целевия модел.
  2. Подайте текста на токенизатора за това кодиране.
  3. Пребройте получения списък с идентификатори на токени. Дължината на този списък е броят на токените.

Като груба оценка за текст на английски, един токен съответства приблизително на четири знака или на около три четвърти от дума. Това е само ориентир. Числата, кодът, текстът на други езици и необичайният правопис могат значително да променят съотношението.

Решен пример

Нека разгледаме изречението:

„Токенизацията разделя текста на части.“

При кодирането cl100k_base tiktoken разделя това на 7 токена:

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

Забележете, че самата дума „Tokenization“ се разделя на два токена — „Token“ и „ization“, докато всяка друга дума остава цяла. Крайната точка е отделен токен. Затова изречение с 37 знака и 5 думи дава 7 токена, а не 6.

Защо броят на токените е важен

Доставчиците на изкуствен интелект таксуват използването на API според броя токени, като броят както изпратения текст, така и генерирания в отговор текст, така че броят на токените позволява да се предвиди цената преди изпращането на заявка. Всеки модел има и максимална дължина на контекста — ограничение за общия брой токени, които могат да се съдържат в една заявка и нейния отговор. Това ограничение се различава според модела и се променя с пускането на нови версии от доставчиците, затова е най-добре да се проверява в актуалната документация за използвания модел, вместо да се предполага по памет.

Често задавани въпроси

Какво е токен в езиковите модели с изкуствен интелект? Токенът е част от текста, която езиковият модел прочита като една единица. Това може да е цяла кратка дума, част от по-дълга дума, препинателен знак или интервал, прикрепен към следващата дума.

Защо различните кодирания дават различен брой токени за един и същ текст? Всяко кодиране е обучено със собствен набор от текстове и има собствен речник от често срещани части. Дума, която е достатъчно честа, за да бъде един токен в единия речник, може да не присъства в другия и затова да се раздели по различен начин.

Препинателният знак брои ли се за токен? Да. Препинателните знаци обикновено се броят като отделни токени, а понякога се сливат със съседния знак в зависимост от това колко често тази комбинация се е срещала при обучението на токенизатора.

Токенът същото ли е като дума? Не. Кратките и често срещани думи обикновено са по един токен. По-дългите или по-редките думи, както и повечето думи извън английския език, често се разделят на два или повече токена.

Колко точен е този инструмент? Той брои токените чрез собствената библиотека tiktoken на OpenAI и използва същата логика за кодиране, която OpenAI прилага вътрешно, така че броят съвпада с резултата от извикване на API на OpenAI за същия текст и кодиране.

Може ли този инструмент да брои токени за модели, които не са на OpenAI? Той използва кодиранията на tiktoken, създадени за моделите на OpenAI. Други доставчици, като Anthropic или Google, използват собствени токенизатори, които могат да дадат различен брой за същия текст.

Източници

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