Мощный блог

Как обучают LLM: токенизация, предобучение, SFT и alignment

29 августа 2026 · Собесы

Темы 46–50: BPE и byte-level токенизация, законы масштабирования, обучение следовать инструкциям, RLHF, DPO и GRPO, стратегии декодирования.

46. Токенизация

Важность на собеседовании: 9/10 █████████░

🔥🔥🔥 Критично, и здесь тонет много кандидатов. Интервьюеры специально проверяют эту тему, потому что её недооценивают. Спрашивают BPE, разницу с WordPiece, зачем byte-level, что такое OOV, и особенности русского языка.

Разбивка по подтемам:

Подтема Балл
Зачем подсловная токенизация (проблема OOV) 9/10
Как работает BPE 9/10
Зачем byte-level 8/10
BPE vs WordPiece vs Unigram 7/10
Размер словаря как гиперпараметр 7/10
Русский язык: дробление и адаптация 8/10
Почему LLM не умеет считать буквы 7/10

Зачем. Модель работает с числами. Нужно разбить текст на кусочки («токены») и сопоставить каждому число.

Три уровня:

  • По словам. Понятно, но словарь огромный, а любое незнакомое слово — это <UNK>, полная потеря информации (проблема OOV).
  • По символам. Словарь крошечный, OOV нет, но последовательности становятся очень длинными — а внимание квадратично по длине.
  • По подсловам — компромисс и стандарт. Частые слова остаются целыми, редкие бьются на осмысленные куски: «непереводимый» → «не», «перевод», «имый».

BPE (Byte Pair Encoding). Начинаем с отдельных символов, потом много раз повторяем: найти самую частую пару соседних токенов и склеить её в новый токен. Останавливаемся при достижении нужного размера словаря. Простой и быстрый.

Byte-level BPE (GPT, LLaMA, RoBERTa). То же самое, но начинаем не с символов, а с байтов. Почему это важно: базовый словарь всегда ровно 256 элементов, и любой текст на любом языке, с любыми эмодзи и битыми символами, разбирается без <UNK> в принципе. Это главный ответ на вопрос «зачем byte-level».

WordPiece (BERT). Как BPE, но пара для склейки выбирается не по частоте, а по тому, насколько склейка увеличит правдоподобие корпуса. Формально — по отношению частоты пары к произведению частот её частей.

Unigram (в SentencePiece). Идёт наоборот: начинает с большого словаря и постепенно удаляет наименее полезные токены.

SentencePiece — не алгоритм, а библиотека/обёртка. Её особенность: работает с сырым текстом, не требуя предварительной разбивки по пробелам (пробел кодируется как обычный символ ▁). Поэтому подходит для японского, китайского, тайского и для мультиязычных моделей.

Главный гиперпараметр — размер словаря. Больше словарь → текст занимает меньше токенов (дешевле и быстрее, внимание считается на более короткой последовательности), но больше параметров в матрице эмбеддингов. Типично 32k–256k.

Про русский язык (важно для РФ-собеса). Многие модели обучались преимущественно на английском, и русский текст у них разбивается очень дробно — одно слово может занять 3–5 токенов против 1–2 у английского эквивалента. Практические последствия: тот же текст стоит дороже, эффективная длина контекста меньше, качество ниже. Отсюда практика адаптации: расширяют словарь русскими токенами и дообучают модель. Именно этим отличаются модели, специально адаптированные под русский.

Как расширить словарь: добавить новые токены в токенизатор, расширить матрицу эмбеддингов, инициализировать новые векторы усреднением эмбеддингов тех подтокенов, на которые слово билось раньше (не случайно!), и дообучить.

Вопрос: Почему LLM плохо считает буквы в слове и путается в арифметике? — Она не видит букв и цифр — она видит токены. Слово может быть одним токеном, и «сколько в нём букв р» для модели не элементарная операция, а то, что надо как-то вывести. С числами то же: «1234» может разбиться на «12» и «34», и поразрядная арифметика ломается. Отсюда практика: считать через вызов инструмента (калькулятора), а не полагаться на модель.

47. Предобучение и законы масштабирования

Важность на собеседовании: 7/10 ███████░░░

🔥🔥 Часто. Своими руками LLM с нуля почти никто не обучает, поэтому спрашивают на понимание, а не на детали. Чинчилла-соотношение «20 токенов на параметр» полезно знать. Данные и их чистка — вопрос более практичный и его любят.

Как обучают. Берут гигантский корпус текста и учат предсказывать следующий токен. Функция потерь — кросс-энтропия. Никакой разметки не нужно, и в этом весь фокус: обучающих данных столько, сколько текста в интернете.

Законы масштабирования (scaling laws). Качество предсказуемо улучшается с ростом трёх величин: числа параметров, объёма данных и вычислительного бюджета. Зависимость степенная — то есть каждое следующее улучшение стоит кратно дороже.

Chinchilla (2022) — главный практический вывод. Раньше модели делали большими, но недокормленными данными. Оказалось, что при фиксированном бюджете вычислений оптимально растить размер модели и объём данных вместе, примерно 20 токенов данных на 1 параметр. Модель на 70B по этой логике должна увидеть около 1.4 триллиона токенов.

Что изменилось к 2026. Chinchilla описывает оптимум по стоимости обучения. Но модель обучают один раз, а инференс работает годами — поэтому на практике сознательно «перекармливают» модели данными сильно выше соотношения 20:1, чтобы получить модель поменьше при том же качестве: она дешевле в эксплуатации. Соотношения в тысячи токенов на параметр стали нормой для маленьких моделей.

Данные — где реально сидит качество:

  • Дедупликация. Дубликаты заставляют модель запоминать вместо обобщения. Различают точную (полностью одинаковые документы) и near-дедупликацию (почти одинаковые, ищут через MinHash/SimHash).
  • Загрязнение бенчмарков (benchmark contamination). Если тестовые задачи попали в обучающий корпус, модель их просто помнит, и все замеры качества врут. Одна из главных проблем современных оценок.
  • Фильтрация качества — классификаторы «похоже на хороший текст», отсев спама, отсев токсичности.
  • Баланс тем. Интернет — неравномерное отражение мира: чего-то много, чего-то почти нет.

Вопрос: У вас есть бюджет и выбор — модель побольше или данных побольше. Как решить? — Если ограничение в бюджете обучения, ориентир Chinchilla: растить оба примерно поровну. Если модель потом будет много работать в проде, выгоднее взять модель поменьше и передержать её на данных — вы один раз переплатите за обучение и будете годами экономить на инференсе.

48. SFT — обучение следовать инструкциям

Важность на собеседовании: 8/10 ████████░░

🔥🔥 Часто. Спрашивают в связке «этапы обучения LLM». Обязательно уметь назвать три стадии и объяснить, зачем каждая.

Три стадии обучения современной LLM — заучить:

  1. Pretraining — делаем модель умной. Учится языку, фактам, коду на сыром тексте.
  2. SFT (Supervised Fine-Tuning) — делаем полезной. Учится следовать инструкциям.
  3. Alignment (DPO/RLHF) — делаем безопасной и приятной. Подгоняем под человеческие предпочтения.

Три стадии обучения LLM

Зачем нужен SFT. После предобучения модель умеет только продолжать текст. Спросите её «Столица Франции?» — она может выдать «Столица Германии? Столица Италии?», потому что в интернете такие строки часто идут списком. Она не поняла, что от неё хотят ответа. SFT учит формату «инструкция → ответ».

Данные для SFT — пары «запрос — хороший ответ» или диалоги. Ключевое: качество важнее количества. Несколько тысяч отлично написанных примеров работают лучше сотен тысяч посредственных.

Побочные эффекты SFT, о которых спрашивают:

  • Модель становится «слишком услужливой» — готова выполнить и вредную инструкцию. Поэтому нужен третий этап.
  • SFT может усиливать галлюцинации. В обучающих примерах все ответы уверенные и полные, ответа «я не знаю» там почти нет. Модель выучивает: надо отвечать уверенно всегда. Отсюда выдуманные факты вместо признания незнания.
  • Катастрофическое забывание — дообучаясь на узкой задаче, модель теряет прежние умения. Лечится подмешиванием общих данных и малым learning rate.

Вопрос: Что такое in-context learning и почему это не файнтюн? — Это способность модели подстроиться под задачу прямо из промпта: даёте инструкцию (zero-shot) или несколько примеров (few-shot), и модель начинает решать задачу. Веса при этом не меняются вообще — вся адаптация происходит внутри одного прохода, через контекст. Поэтому это не обучение в привычном смысле, а скорее «модель нашла в промпте нужный паттерн».

49. Alignment: RLHF, DPO, GRPO

Важность на собеседовании: 9/10 █████████░

🔥🔥🔥 Критично для 2026. Прямо названо маркерным вопросом: «почему DPO вытеснил PPO в большинстве лабораторий». Копают глубоко для senior. Разжёвано подробно.

Разбивка по подтемам:

Подтема Балл
Почему DPO вытеснил PPO 10/10
Пайплайн RLHF по шагам 9/10
Reward hacking и зачем KL-штраф 9/10
Что такое reward model 8/10
GRPO и RLVR 7/10
Принцип HHH и конфликт целей 7/10

Задача. У нас есть модель, которая следует инструкциям. Теперь надо, чтобы её ответы нравились людям: были полезными, честными и безопасными. Формализовать «хороший ответ» функцией потерь нельзя — но можно спросить людей, какой из двух ответов лучше.

Принцип HHH: Helpful (полезно), Honest (честно), Harmless (безвредно). Эти три цели конфликтуют — максимально полезный ответ на опасный вопрос небезопасен. Умение это проговорить ценится.

RLHF (классика, InstructGPT/ChatGPT):

  1. Берём SFT-модель.
  2. Генерируем несколько ответов на один запрос.
  3. Люди ранжируют: какой лучше. Получаем пары «chosen / rejected».
  4. На этих парах обучаем reward model — отдельную модель, которая на вход берёт (запрос, ответ), а на выход выдаёт одно число «насколько хорошо».
  5. Обучаем основную модель алгоритмом PPO максимизировать это число, с ограничением KL — штрафом за уход далеко от исходной модели.

Зачем KL-ограничение. Без него наступает reward hacking: модель находит способ получить высокую оценку, не давая хорошего ответа. Классика — стать очень многословной, потому что reward model полюбила длину. Или заваливать ответ вежливыми оборотами. KL держит модель рядом с разумным исходником.

DPO (Direct Preference Optimization) — почему он победил. Оказалось, что задачу RLHF можно математически переписать так, что отдельная reward model и весь RL становятся не нужны. DPO обучается прямо на парах chosen/rejected обычной функцией потерь, похожей на классификацию: повышай вероятность выигравшего ответа, понижай вероятность проигравшего, и не уходи далеко от исходной модели.

Что это даёт: не нужно обучать и держать вторую модель, нет нестабильного RL-цикла, меньше памяти, проще воспроизвести. Качество при этом сопоставимо. Отсюда и вытеснение PPO.
Слабое место DPO: он оценивает ответ целиком, одной оценкой, тогда как PPO мог различать вклад отдельных шагов. И он критично зависит от качества пар — мусорные пары обучат мусорным предпочтениям.

GRPO (Group Relative Policy Optimization) — что нового в 2025–2026. Возврат к RL, но без критика: на один запрос генерируется группа ответов, и «преимущество» каждого считается относительно среднего по группе. Отдельная value-модель не нужна — экономия памяти и вычислений при качестве не хуже PPO. Именно GRPO стоит за скачком reasoning-моделей.

RLVR (RL with Verifiable Rewards) — там, где ответ можно проверить программно (математика, код, SQL), reward не нужен от человека: запускаем тесты и получаем объективный сигнал. Это отдельная сильная ветка 2026 года.

Как это выглядит стеком в 2026: SFT → предпочтения (DPO и родственники: SimPO, KTO) → RL с проверяемыми наградами (GRPO, DAPO) для задач на рассуждение.

Вопрос: В чём главная разница RLHF и DPO в одном предложении? — RLHF обучает отдельную модель-оценщика и потом подкрепляющим обучением максимизирует её оценку; DPO выкидывает и оценщика, и RL, оптимизируя модель напрямую на парах «лучше/хуже» одной функцией потерь.

50. Стратегии декодирования

Важность на собеседовании: 9/10 █████████░

🔥🔥🔥 Критично. Температура, top-p, top-k — обязательный минимум, спрашивают всегда. Ждут понимания порядка применения и того, зачем нужен каждый параметр.

Разбивка по подтемам:

Подтема Балл
Температура: что делает физически 10/10
Top-p vs top-k и почему top-p лучше 9/10
Порядок применения параметров 8/10
Почему greedy зацикливается 8/10
Beam search и когда он вреден 7/10
repetition_penalty vs no_repeat_ngram 6/10

Что происходит на каждом шаге. Модель выдаёт вероятности для всех токенов словаря (условно 50 000 вариантов). Задача стратегии — выбрать один.

Greedy (жадный). Всегда берём самый вероятный. Быстро, детерминированно, но текст получается скучный и модель легко зацикливается («очень очень очень»). Причина: локально лучший токен не обязательно ведёт к хорошему тексту в целом.

Sampling (сэмплирование). Берём случайно, согласно вероятностям. Разнообразно, но иногда вылезает совсем неуместный токен и ломает текст.

Temperature (T). Делим логиты на T перед softmax.

  • T < 1 — распределение становится острее, вероятные токены ещё вероятнее. Модель осторожная и предсказуемая.
  • T > 1 — распределение сглаживается, у редких токенов появляется шанс. Модель креативная и рискованная.
  • T → 0 — превращается в greedy.
    Практика: 0 или 0.1 для фактических задач, извлечения данных и кода; 0.7–1.0 для творческих.

Top-k. Оставляем k самых вероятных токенов, остальные отбрасываем, нормализуем и сэмплируем. Минус: k фиксировано. Иногда модель уверена и хватило бы 2 токенов, иногда распределение плоское и 40 было бы мало.

Top-p (nucleus). Берём минимальный набор токенов, чья суммарная вероятность ≥ p (например, 0.9). Адаптивно: когда модель уверена — берётся мало кандидатов, когда сомневается — много. Поэтому top-p обычно предпочтительнее top-k.

Порядок применения (спрашивают): сначала температура к логитам → потом фильтрация top-k / top-p → потом сэмплирование из отфильтрованного.

Beam search. Ведём несколько гипотез параллельно и выбираем последовательность с лучшей суммарной вероятностью. Хорош там, где есть «правильный» ответ: перевод, суммаризация. Для открытой генерации и диалога плох — текст выходит безлико-усреднённым.

Борьба с повторами:

  • repetition_penalty — штраф за уже встречавшиеся токены (мягко).
  • no_repeat_ngram_size — жёсткий запрет повторять n-граммы. Опасен: запретив 3-граммы, вы запретите и легитимные повторы вроде имён.

Прочее: max_new_tokens (лимит только на новые токены) против max_length (лимит на промпт + ответ — частая путаница); генерация останавливается по токену EOS или по лимиту.

Вопрос: Задача — извлекать JSON из документов. Какие параметры генерации? — Температура 0 (нужна воспроизводимость и точность, не креатив), top-p не важен при T=0, разумный max_new_tokens, и главное — включить structured output / constrained decoding, чтобы формат гарантировался схемой, а не надеждой на промпт.


Часть 10 из 17 конспекта для подготовки к собеседованиям на NLP/LLM-разработчика. Остальные части — в разделе «Собесы».

0,0
0 оценок
5★
0
4★
0
3★
0
2★
0
1★
0

Оставить отзыв

Нажмите на звезду для оценки от 1 до 5
Необязательно. Используется только для связи
0/2000

Комментарии

Все С ответами Проверенные Только 4-5★