Пейджер

🌍 Вітаю! 🇧🇾

TL;DR
  • Токены — валюта LLM, платим за каждый вызов
  • Размер vocabulary влияет на эффективность токенизации
  • English токенизируется эффективнее, чем русский
  • Output-токены дороже input-токенов в 2-3 раза
🌍 Вітаю! 🇧🇾

Идея поста возникла в тот момент, когда я думал, что мне выбрать подписку claude или просто взять торбочку токенов и отдельно их оплачивать 🤔

Но что есть токены? Токены — это валюта LLM 💰

Если нет понимания за токены, то есть вероятность переплатить 💵.
Нормальный тейк? Заинтриговал? 🍩

🤔 Что за рыба эта ваша колбаса?

Токены — это то, за что мы реально платим при вызове Anthropic, OpenAI, Google и тд.

👷‍♂️ Как работает токенизация

1️⃣ Encoding
Текст разбивается на куски, по принципу "найди самый длинный кусок текста, который есть в словаре"
"I am Ilya" -> ["I", "am", "Il", "ya"]


2️⃣ Vocabulary
У каждой LLM свой словарь токенов 📚 (список всех слов, подслов и символов) которые она знает. Каждому токену присвоен номер:
"I" → 45
"am" → 1413
"Il" → 15760
"ya" → 189


💡 Размер vocabulary имеет значения, к примеру:

➡️ 1K токенов → "understanding" → [under, st, and, ing] = 5 токенов
➡️ 200K токенов → "understanding" → [understand, ing] = 2 токена

💡 Примерные размеры словарей:

➡️ OpenAI ~200K
➡️ Google ~256K
➡️ Anthropic ~65K

3️⃣ LLM работа
LLM не видит текст, работает только с массивом чисел

4️⃣ Decoding
Числа обратно в текст:
[9876, 1234] → "Hi! How are you?"


🔞 Вечный холивар

Если писать на русском языке, будет потребление токенов больше или меньше? 🤔
Если писать на JS или на Haskell, где будет потребление больше? 🤔

💡 Что мы поняли на данный момент:
Редкие слова = больше токенов
"hello" → 1 токен
"fsdfsdf" → 3 токена [fs, dfs, df]


Разбираемся с языком 👅

💡 Модели обучаются на английском языке, а чем чаще язык/текст встречается в обучающих данных, тем эффективнее токенизация.

➡️ "Hello world, I love you" → 6 токенов 🇬🇧
➡️ "Привет мир, я люблю тебя" → 13 токенов 🇷🇺

❗️ Стоит отметить, что новые модели эту разницу сводят к минимуму.

Языки программирования 💻

Теперь по поводу языка программирования, реализовал последовательность Фибоначчи на нескольких языках программирования
Результаты можно посмотреть здесь, кратенько ситуация по токенам следующая:

➡️ Haskell → 39 токенов
➡️ Go → 34 токена
➡️ JS → 32 токена
➡️ Python → 30 токенов

✍️ Выводы?
Ну не нужно писать на Haskell, да и COBOL вам не нужен, хотя за те деньги которые они предлагают можно и пописать 😅

💰 Как считается стоимость?

Input: "Hello World" → 3 токена
Output: "Hi! How are you?" → 20 токенов

Цена токенов в Sonnet 4.6:
Input → $3/MTok
Output → $15/MTok

Расчет стоимости:
Input: (3 / 1e6) × 3 = $0.000009 💵
Output: (20 / 1e6) × 15 = $0.0003 💵

💡 Обычно output токены дороже в 2-3 раза

✍️ Полезности

➡️ Я для вас подготовил репозиторий с апкой — можете поиграться с токенизацией:

Вводите любой текст 📝
Смотрите, как Claude разбивает его на токены 🔍
Сколько каждый токен стоит 💰
Сколько запросов можно сделать на $1 💵

➡️ А вот тут прям наглядно — токенизатор от OpenAI, можно поиграться и посмотреть как работает
➡️ А еще есть Prompt Caching в Claude, в OpenAI такого нет, но зато у них есть Batch API

💬 Делитесь своим мнением в комментариях 👇! Если вам понравился пост, не забудьте поставить лайк! 👍

#AI
Медиа 1
Хотите больше таких постов?
Подпишитесь на канал и читайте продолжение в Telegram.
Подписаться на @ivanchikovitclub Открыть пост в Telegram