NLP: токенизация и эмбеддинги
Токенизация - фундамент всех современных моделей, и для русского это больной вопрос: наш текст в токенах в 2-3 раза длиннее английского, а значит дороже и короче по контексту. Проверяют понимание подсловной механики.
// «Токен ≠ слово» - фраза, с которой начинается правильный ответ на половину вопросов подтемы.
Подслова: как исчез OOV
Токен - единица словаря модели: слово, подслово или символ. Современный стандарт - подсловные токенизаторы: частые слова остаются цельными токенами, редкие собираются из кусков. Незнакомое слово всегда разложится - OOV (out of vocabulary) исчез как класс.
BPE (byte pair encoding) строит словарь слиянием самых частых пар; WordPiece (BERT) и unigram (SentencePiece) - та же идея с другой процедурой отбора. SentencePiece работает по сырой строке, без пробельной предтокенизации.
// Размер словаря - компромисс: больше словарь → короче последовательности, но тяжелее матрица эмбеддингов и беднее статистика редких токенов.
- BPE
- словарь слиянием частых пар; OOV исчезает
- SentencePiece
- токенизация по сырой строке, без предтокенизации
Эмбеддинги и служебные токены
Эмбеддинг токена обучается вместе с моделью; вход трансформера - эмбеддинг плюс позиционная информация.
Служебные токены - [CLS], [SEP], [PAD], BOS (beginning of sequence)/EOS (end of sequence) - разметка входа. Паддинг маскируется attention mask'ом: забудешь - модель честно усреднит мусор паддинга в представление текста.
// Токенизатор и модель - неразделимая пара из одного чекпоинта: чужой токенизатор даёт другие индексы, и предсказания превращаются в шум.
- attention mask
- маска паддинга - чтобы модель его не «читала»
Русский счёт токенов
Токенизатор, обученный преимущественно на английском, режет русские слова в крошку: длина последовательности растёт в 2-3 раза против слов, с ней - цена инференса и расход контекста.
Практические следствия: оценка «влезет ли документ в контекст» делается в токенах конкретного токенизатора; сравнивать модели по «числу токенов» с разными токенизаторами - сравнивать в разных единицах.
// Для русскоязычных продуктов мультиязычность словаря токенизатора - реальный фактор выбора модели, а не примечание.
Как отвечать: «Что такое подсловная токенизация и что она значит для русского?»
Модель оперирует не словами, а единицами словаря: частые слова - цельные токены, редкие разбираются на куски, поэтому незнакомых слов не бывает - OOV исчез. Строится это BPE-семейством: словарь наращивается слиянием частых пар. Для русского есть цена: если словарь учился в основном на английском, наши слова режутся мелко, текст в токенах в 2-3 раза длиннее, чем в словах, дороже инференс и быстрее кончается контекст. Поэтому длину всегда считаю токенизатором конкретной модели, а при выборе модели для русского продукта смотрю на мультиязычность словаря.
Механика, следствие «OOV исчез» и практическая цена для русского - три слоя, которые проверяет вопрос.
На чём валят
- −Считать «токен = слово» при оценке контекста - русский в токенах в 2-3 раза длиннее.
- −Сравнивать модели по числу токенов разных токенизаторов - единицы разные.
- −Забыть attention mask при паддинге - модель усредняет мусор.
- −Токенизатор и модель из разных чекпоинтов - предсказания-шум.
Проверьте себя
Пять вопросов из банка по этой подтеме. Всего их 10, остальные разбираются в тренажёре.
- Как размер словаря subword-токенизатора влияет на длину последовательности?A)Чем меньше словарь, тем на большее число кусков рвётся словоB)Чем меньше словарь, тем короче становится последовательностьC)Размер словаря на длину последовательности не влияетD)Длина зависит только от языка, а не от размера словаря
показать ответ и разбор
+A)Чем меньше словарь, тем на большее число кусков рвётся слово// разбор: Маленький словарь содержит короткие куски, поэтому слово разбивается на много токенов: последовательности длиннее, окно контекста расходуется быстрее, инференс дороже. Большой словарь режет реже, но раздувает матрицу эмбеддингов и оставляет редким токенам мало примеров для обучения. Размер словаря — компромисс между этими двумя издержками.
- Почему один и тот же текст на русском обычно занимает больше токенов, чем на английском?A)Кириллица кодируется двумя байтами, и токенизатор считает байтыB)Русские слова длиннее в среднем, а токенизатор режет по длинеC)В обучающем корпусе токенизатора преобладал английский, и под него подобраны кускиD)Русский язык не поддерживается subword-алгоритмами напрямую
показать ответ и разбор
+C)В обучающем корпусе токенизатора преобладал английский, и под него подобраны куски// разбор: Словарь subword-токенизатора собирается по частотам обучающего корпуса. Если корпус преимущественно английский, целыми кусками в него попадают английские морфемы, а русские слова рассыпаются на мелкие фрагменты. Практические следствия прямые: тот же смысл дороже по токенам, быстрее упирается в контекстное окно и хуже влезает в лимиты.
- Чем эмбеддинги из современных encoder-моделей (для поиска) отличаются от статических word2vec/GloVe?A)Отличаются итоговой размерностью выходного вектораB)Word2vec точнее трансформерных эмбеддингов на длинных документахC)Word2vec — один вектор на слово; трансформерные контекстуальны и контрастивныD)Современные эмбеддинги не требуют обучения — их публикуют уже готовыми к применению в задачах
показать ответ и разбор
+C)Word2vec — один вектор на слово; трансформерные контекстуальны и контрастивны// разбор: Статический вектор усредняет все смыслы слова — полисемия теряется. Sentence-эмбеддинги (SBERT, E5, BGE) кодируют весь текст с учётом контекста и тренируются контрастивными парами «запрос–релевантный документ», поэтому косинус между ними осмыслен для retrieval. Для RAG важно брать модель, обученную под asymmetric search (запрос ≠ документ по стилю).
- Что такое токен в контексте языковой модели?A)Единица текста (слово, часть слова или символ), с которой работает модельB)Один нейрон выходного слоя нейросети языковой моделиC)Специальный секретный авторизационный ключ для платного доступа к API моделиD)Полное предложение целиком как минимальная единица обработки текста
показать ответ и разбор
+A)Единица текста (слово, часть слова или символ), с которой работает модель// разбор: Токен — атомарная единица, которой оперирует LLM. Обычно это сабворд (кусок слова), а не целое слово или буква: частые слова остаются одним токеном, редкие дробятся. Поэтому длина в токенах не равна числу слов, а лимиты и стоимость API считаются именно в токенах.
- Что такое эмбеддинг в NLP?A)Специальное сжатие исходного текстового файла архиватором ради экономии места на дискеB)Правило, по которому текст разбивается на отдельные токеныC)Числовой вектор смысла текста: близким по смыслу — близкие векторыD)Название выходного слоя классификатора текстов на категории
показать ответ и разбор
+C)Числовой вектор смысла текста: близким по смыслу — близкие векторы// разбор: Эмбеддинг — плотный числовой вектор, кодирующий смысл слова или текста так, что семантически близкие объекты оказываются близки в векторном пространстве. Косинусная близость таких векторов и лежит в основе векторного поиска и RAG: похожие по смыслу запрос и документ имеют высокий косинус.
дальше
Теорию прочитали. Навык ставится повторением
В Сеньорчике эта подтема идёт в ежедневных сессиях: движок возвращает её, пока ответы не станут уверенными, и ведёт прогресс отдельно по каждой подтеме. Теория внутри тоже бесплатна, лимит только на количество вопросов в день.