tg-me.com/dsproglib/6625
Last Update:
Большие языковые модели (LLM) не читают текст так, как мы — они видят токены. Это не совсем слова и не просто символы. Зачем вообще нужен токенизация и почему слова — не лучший вариант? Рассказываем.
Слова — неудобны: их много, они часто пишутся с ошибками, в разных языках — разные формы.
Если модель не видела слово раньше, она теряется.
Слова вроде running
, runs
, runner
— все о разном, хотя корень один. Слово как единица — слишком «грубая».
До LLM токенизацией занимались FastText и char embeddings:
— FastText разбивал слова на подстроки (например, unhappiness
→ un
, happi
, ness
) и пытался понять смысл по кусочкам.
— Character embeddings брали каждый символ как токен. Работает для опечаток, но плохо понимает смысл (dock
≈ duck
? Нет же).
Современные LLM (GPT, Claude и др.) используют Byte-Pair Encoding (BPE):
— Начинаем с символов, потом часто встречающиеся пары объединяем.
— Пример: lowering
→ low
, er
, ing
— Получаем разумные токены, экономим память и длину последовательностей.
— Byte-level токенизация: работает напрямую с байтами (даже с эмодзи и редкими символами).
— Морфемная токенизация: разбивает слова по смысловым единицам (misunderstanding
→ mis
, understand
, ing
). Хорошо для языков со сложной грамматикой, но требует знаний языка.
На горизонте — Large Concept Models (LCM):
Они строят представление сразу на уровне фраз или предложений, а не отдельных токенов:
— Больше смысла, меньше ошибок
— Лучшая многозадачность и кросс-языковое понимание
— Меньше параметров = ниже стоимость
📌 Если вам интересны детали токенизации, статья обязательно к прочтению: https://clc.to/6bmuZA
Библиотека дата-сайентиста #буст