Токенізація «під капотом»
Ви розгортаєте чат-бота. Англійські запити використовують 42 токени. Іспаномовний користувач надсилає один запит, і він використовує 103 токени. Раптом ваші витрати на API зростають на 40%.
Це стається, коли ви сприймаєте токенізацію як непомітні внутрішні механізми. Кожна велика мовна модель використовує один із чотирьох алгоритмів субослів. Ваш вибір визначає розмір словника, ефективність роботи з мовами та ваш щомісячний рахунок.
Токенізація контролює три критично важливі речі:
- Вартість інференсу. LLM API стягують плату за токени. Малий словник може розбити одне слово на 8 токенів. Великий словник впорається з цим за 3. У масштабах це призводить до реальних витрат грошей.
- Покриття словником. Погані словники створюють довші послідовності. Це призводить до повільнішої генерації та вищих витрат.
- Поведінка моделі. Якщо токенізатор розбиває "cowboy" на ["cow", "boy"], модель навчається інакше, ніж якби він розбив його на ["c", "owb", "oy"].
Ось як працюють чотири основні типи:
BPE (Byte Pair Encoding)
- Як це працює: Починається з символів. Він підраховує часті сусідні пари та об'єднує їх у нові токени. Процес повторюється, доки не буде досягнуто цільового розміру.
- Переваги: Швидкий та детермінований.
- Користувачі: GPT-4o, Llama 3, Mistral.
WordPiece
- Як це працює: Схожий на BPE, але використовує ймовірність замість простої частоти. Він обирає об'єднання, які максимізують ймовірність навчальних даних.
- Переваги: Створює більш лінгвістично значущі токени.
- Користувачі: BERT, Google models.
SentencePiece
- Як це працює: Він сприймає вхідні дані як сирі байти Unicode. Йому не потрібен етап попередньої токенізації, наприклад, розділення за пробілами.
- Переваги: Найкращий для багатомовної підтримки, оскільки він є мовно-незалежним.
- Користувачі: Llama 2, Llama 3, Gemma.
Unigram
- Як це працює: Починається з величезного словника і скорочує його за допомогою імовірнісної моделі. Він обирає найкращий шлях сегментації.
- Переваги: Більш стабільне відображення токенів на значення.
- Користувачі: T5, XLNet.
Ключові висновки для розробників:
- Стежте за мовною сумішшю. Моделі BPE, які покладаються на пробіли, мають труднощі з такими мовами, як японська або хінді. Використовуйте SentencePiece для глобальних продуктів.
- Фіксуйте версії. Перехід з cl100k_base на o200k_base змінює кількість ваших токенів. Завжди відстежуйте, яке кодування ви використовуєте під час оцінювання.
- Проводьте бенчмарки правильно. Не порівнюйте кількість токенів між різними сімействами моделей. Завжди проводьте тестування, використовуючи кількість символів або байтів, щоб забезпечити точність.
Розуміння цих інструментів допомагає випускати економічно вигідні продукти, а не дивувати фінансові відділи.
Додаткова спільнота для навчання: https://t.me/GyaanSetuAi