Предобучение: предсказание следующего токена на всём интернете

С чего начинается любая LLM — с предобучения. Разберём, как модель учится на сыром тексте без единой ручной метки.

Предобучение (pre-training) — обучение модели предсказывать следующий токен на огромном корпусе текстов; разметка не нужна, ведь «правильный ответ» — это просто следующее слово в тексте.

Self-supervised: разметка уже в тексте

Обычное машинное обучение требует размеченных данных: картинка → «кошка». Для LLM это было бы нереально — никто не разметит триллионы слов. Гениальность подхода в том, что текст размечает сам себя. Берём любое предложение, прячем продолжение и просим модель его угадать. Правильный ответ известен — это следующее слово в исходном тексте. Такой приём называют self-supervised (самообучение с учителем без ручной разметки).

Как выглядит один шаг обучения

  1. Взять кусок текста из корпуса.
  2. Для каждой позиции попросить модель предсказать следующий токен (видя только левый контекст — спасибо причинной маске).
  3. Сравнить предсказание с настоящим следующим токеном.
  4. Чуть подправить веса, чтобы в следующий раз вероятность правильного токена была выше.

Повторить это триллионы раз. Каждое крошечное исправление почти ничего не значит, но в сумме они выстраивают в модели богатое представление языка и мира.

Откуда сигнал и почему «бесплатно»

Поскольку правильный ответ всегда под рукой (следующий токен текста), модель получает обучающий сигнал из любого текста — статей, книг, форумов, кода. Не нужны разметчики. Это и позволило масштабировать обучение до размеров интернета. Качество данных при этом критично: текст чистят, дедуплицируют, фильтруют мусор — «мусор на входе, мусор на выходе» работает и здесь.

Что модель выучивает попутно

Чтобы хорошо угадывать продолжение в самых разных текстах, модели приходится неявно освоить многое:

Текст-подсказкаЧто приходится знать
«Столица Франции — …»факт о мире
«Кошки любят … (молоко/спать)»здравый смысл
«def add(a, b): return …»синтаксис кода
«2 + 2 = …»простую арифметику (шаблонно)

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

Результат предобучения

На выходе — базовая модель (base model). Она прекрасно продолжает текст и хранит уйму знаний, но ещё не умеет вести диалог и следовать инструкциям. Это сырьё, из которого дальнейшие этапы (SFT, RLHF) лепят полезного ассистента. Но именно предобучение — самый дорогой и фундаментальный этап: здесь модель и набирает свои основные знания.

Итог

  • Предобучение — предсказание следующего токена на гигантском корпусе без ручной разметки.
  • Это self-supervised: правильный ответ — это просто следующее слово в тексте.
  • Чтобы хорошо предсказывать, модель попутно усваивает факты, грамматику, код, здравый смысл.
  • Итог — базовая модель: знающая, но ещё не умеющая вести диалог.
Проверьте себя
1. Почему предобучение называют self-supervised?
AПравильный ответ (следующий токен) уже содержится в самом тексте — ручная разметка не нужна
BМодель обучается без данных
CЛюди вручную размечают каждый токен
DМодель сама придумывает тексты
2. Что получается на выходе предобучения?
AГотовый чат-ассистент
BБазовая модель: знающая и умеющая продолжать текст, но ещё не ведущая диалог
CТолько токенизатор
DРазмеченный датасет
3. Почему предобучение удалось масштабировать до размеров интернета?
AПотому что интернет маленький
BПотому что разметчики работают быстро
CПотому что текст не нужно размечать вручную — сигнал берётся из любого текста
DПотому что модели крошечные