ШІ та машинне навчання
Що таке токен в AI і скільки їх в одному слові?
Токен (token) — це найменший фрагмент тексту, з яким працює мовна модель: слово, частина слова або розділовий знак. Модель не бачить літер і слів напряму — вона читає і створює саме послідовність токенів.
Текст на токени ділить токенізатор. Коротке англійське слово зазвичай займає один токен, а довге чи рідкісне ділиться на кілька частин. Для української та російської мов токенів зазвичай потрібно більше, ніж для англійського тексту того самого змісту.
Токени — це ще й одиниця оплати. Вартість запитів до API мовної моделі рахують за тисячу токенів, окремо за вхідні та вихідні. Тому довгі промпти і великі документи прямо впливають на ціну і швидкість відповіді.
Де застосовується
Токени — одиниця обліку в роботі з моделями. За ними рахують вартість запиту, окремо для вхідних і вихідних, і ними ж задають ліміт довжини відповіді. Тому оцінка бюджету будь-якого AI-рішення починається з підрахунку, скільки токенів іде на типову операцію.
Розуміння токенів пояснює і дивну поведінку моделі. Українські та російські слова діляться на більше токенів, ніж англійські, тож той самий текст коштує дорожче. А задачі на кшталт «порахуй літери в слові» модель розв’язує погано саме тому, що бачить не літери, а фрагменти тексту.
Приклад
Для орієнтиру: приблизно 1000 токенів — це 700–750 англійських слів, тобто трохи більше за сторінку звичайного тексту.
import tiktoken
encoder = tiktoken.get_encoding('cl100k_base')
text = 'Привіт! Розкажи про курси програмування.'
tokens = encoder.encode(text)
print(len(tokens)) # скільки токенів піде в запит
print(tokens[:10]) # ідентифікатори фрагментів
Часті запитання
Скільки токенів в одному слові?
Для англійської — у середньому близько 0,75 слова на токен. Для української та російської співвідношення гірше: слова часто діляться на дві-три частини через закінчення і кирилицю. Висновок простий: той самий текст англійською обходиться дешевше.
Чому вхідні й вихідні токени оплачують окремо?
Бо створення відповіді потребує більше обчислень, ніж читання запиту: кожен новий токен модель передбачає окремо. Тому вихідні токени зазвичай у кілька разів дорожчі за вхідні, і довга відповідь коштує більше, ніж довге питання.
Як зменшити витрату токенів?
Прибирати зайвий контекст: не надсилати весь документ, якщо потрібен один розділ, скорочувати історію розмови, просити коротку відповідь і задавати ліміт довжини. Для повторюваних запитів допомагає кешування незмінної частини промпту.
Чому модель не може порахувати літери в слові?
Вона не бачить літер: текст потрапляє до неї вже поділеним на токени, і слово може бути одним цілим фрагментом. Тому підрахунок символів, перестановка літер і подібні задачі виходять ненадійно — їх краще виконувати звичайним кодом.
Навчання програмуванню в OWU
Опануйте професію в IT на практичних курсах із менторами та реальними проєктами.
Обрати курс