Данные и токенизация
18 просмотров
BPE
Byte Pair Encoding
BPE (Byte Pair Encoding) — алгоритм токенизации, разбивающий текст на подслова путём итеративного слияния самых частых пар символов. Основа токенизаторов GPT, LLaMA и большинства современных LLM.
Что такое BPE
BPE (Byte Pair Encoding) — алгоритм сжатия, адаптированный для NLP (Sennrich et al., 2015). Строит словарь подслов (subwords) снизу вверх: начинает с символов и итеративно объединяет самые частые пары.
Алгоритм обучения
Исходный текст: "low lower lowest"
Начальный словарь: {l, o, w, e, r, s, t, _}
Шаг 1: Самая частая пара (l, o) → merge → "lo"
Шаг 2: Самая частая пара (lo, w) → merge → "low"
Шаг 3: Самая частая пара (e, r) → merge → "er"
Шаг 4: Самая частая пара (e, s) → merge → "es"
...
Результат: "low" = 1 токен, "lower" = "low" + "er", "lowest" = "low" + "es" + "t"
Размеры словарей
| Модель | Токенизатор | Словарь |
|---|---|---|
| GPT-2 | BPE | 50,257 |
| GPT-4 | BPE (cl100k) | 100,256 |
| LLaMA 3 | BPE (tiktoken) | 128,256 |
| BERT | WordPiece | 30,522 |
Byte-level BPE
Современные токенизаторы (GPT-4, LLaMA 3) работают на уровне байтов, а не символов. Это позволяет обрабатывать любой текст (включая код, emoji, любые языки) без OOV (out-of-vocabulary) токенов.
Влияние на стоимость
Токенизация напрямую влияет на стоимость API:
"Привет, мир!" → GPT-4: 5 токенов → $0.00015 (input)
"Hello, world!" → GPT-4: 4 токена → $0.00012 (input)
Русский текст обычно токенизируется в 1.5-2× больше токенов, чем английский.
Связанные термины
Используется в