Pre-training (предобучение) — это этап, на котором модель обучают с нуля на большом корпусе данных: веса инициализируются случайно, и модель ещё не имеет предварительных знаний. В официальных источниках по Transformers такой этап обычно self-supervised и предшествует fine-tuning: модель учится предсказывать следующий токен или восстанавливать замаскированные токены, чтобы позже её можно было адаптировать под конкретную задачу.
Практически это дорогой базовый этап создания pretrained model, а не лёгкая донастройка. Если у вас нет очень большого корпуса и значимых вычислительных ресурсов, чаще имеет смысл рассматривать не предобучение с нуля, а последующую адаптацию уже готовой модели.
Английский термин: pre-training. Также встречается: pretraining, предобучение. В контексте рассмотренных официальных гайдов по Transformers этот термин фактически означает обучение модели с нуля со случайной инициализацией весов.
Редакционная оговорка. Эта статья опирается на официальные источники Hugging Face и работу BERT, поэтому описывает pre-training прежде всего для NLP и Transformer-моделей. Для vision, audio и multimodal предобучения нужны отдельные специализированные источники; эта граница важна на дату проверки 2026-08-16.
Простыми словами
Грубо говоря, предобучение можно представить как очень долгую «начитанность» модели. Ей не дают готовые правильные ответы на прикладную задачу, а заставляют много раз угадывать пропуски в тексте или следующее слово по огромному массиву данных.
После этого у модели появляется базовое статистическое понимание структуры языка: какие слова часто встречаются вместе, как устроены фразы, что обычно следует дальше. Уже потом эту заготовку можно подстроить под конкретную задачу — например, под классификацию, поиск ответа или генерацию текста.
Как это работает
Технически pre-training начинается с модели со случайными весами. Дальше выбирают большую коллекцию данных и цель self-supervised обучения. В официальном глоссарии Hugging Face для pretrained model приведены два базовых сценария: causal language modeling, где модель предсказывает следующий токен, и masked language modeling, где она восстанавливает замаскированные токены.
[Случайная инициализация весов]
↓
[Большой корпус данных]
↓
[Self-supervised objective]
• causal LM → предсказать следующий токен
• masked LM → восстановить mask
↓
[Цикл обучения]
↓
[Оценка на отложенном split]
• loss
• perplexity
↓
[Проверка inference]
• например, fill-mask
- Инициализация. Весам модели не передают готовые знания; обучение начинается со случайных значений.
- Подготовка данных. Нужен большой корпус. В гайдах Hugging Face по обучению с нуля отдельно подчёркивается, что это обычно требует очень больших объёмов данных и долгого времени.
- Выбор objective. Для causal LM модель учится предсказывать следующий токен. Для masked LM — восстанавливать скрытые токены по контексту.
- Обучение. Запускается training loop или стандартный цикл через
Trainer, который в документации описан как общий механизм для обучения и оценки как при training from scratch, так и при fine-tuning. - Проверка качества. В официальных примерах используют оценку через
evaluate(), собираютlossи считаютperplexity. - Проверка на реальном inference. Для masked language modeling в официальном гайде после обучения модель дополнительно проверяют через
fill-mask.
Классический пример из академической литературы — BERT. В этой работе предобучение строится на masked language modeling и next sentence prediction, а затем уже идёт fine-tuning на downstream-задачи. Для MLM в BERT описана схема 80/10/10: часть выбранных токенов заменяют на [MASK], часть — на случайный токен, часть оставляют без изменений.
Где применяется
- Обучение causal language model с нуля. В курсе Hugging Face показан сценарий, где сначала подготавливают данные для pre-training, а затем обучают языковую модель с нуля и оценивают её по loss и perplexity.
- BERT-подобные masked language models. В официальном гайде по MLM модель обучают на задаче восстановления замаскированных токенов, затем оценивают и проверяют через
fill-mask. - Подготовка базы для последующего fine-tuning. Именно так pre-training используется в BERT: сначала модель получает общие языковые представления, затем адаптируется под downstream-задачи.
- Основа для transfer learning. Предобученная модель нужна затем, чтобы переносить уже выученные представления на более узкую прикладную задачу, а не начинать обучение каждый раз с нуля.
Практический пример
Ниже — не полный production-рецепт, а практический сценарий, который напрямую следует из официального гайда Hugging Face по masked language modeling.
- Берёте неразмеченный текстовый корпус.
- Делите данные на обучающую и отложенную части, в гайде это показано как train/test split.
- Запускаете обучение masked language model через
Trainer. - После обучения вызываете оценку через
evaluate(), получаетеlossи на его основе считаетеperplexity. - Затем проверяете не только метрику, но и реальное поведение модели через
fill-mask: даёте фразу с пропуском и смотрите, какие токены модель предлагает.
Корпус данных ↓ train/test split ↓ masked language modeling objective ↓ Trainer ↓ evaluate() → loss → perplexity ↓ fill-mask inference check
Практический смысл такой проверки: падение loss и разумная perplexity полезны, но в официальном процессе всё равно смотрят, как модель ведёт себя на inference. Это снижает риск принять «хорошую цифру» за готовность к реальному использованию.
Чем отличается от…
| Термин | Что означает | Ключевое отличие от pre-training |
|---|---|---|
| Pre-training | Обучение модели с нуля на большом корпусе, обычно self-supervised | Создаёт базовую pretrained model |
| Fine-tuning | Дальнейшая адаптация уже обученной модели под конкретную задачу | Обычно не начинается со случайных весов и опирается на результат pre-training |
| Transfer learning | Более широкий подход к переносу уже выученных представлений между задачами | Pre-training — часто первый этап transfer learning, но не весь процесс целиком |
Если коротко: pre-training создаёт общий фундамент, fine-tuning настраивает его под задачу, а transfer learning описывает весь подход к повторному использованию уже полученных знаний.
Ограничения и заблуждения
- Заблуждение: «предобучение = любая дообучка модели». В рассмотренных официальных источниках pre-training описан как обучение с нуля со случайной инициализацией весов, а не как любой дополнительный запуск обучения.
- Ограничение: это дорого по данным и времени. Курс Hugging Face прямо подчёркивает, что обучение с нуля обычно требует очень больших корпусов и длительного времени.
- Заблуждение: «одной метрики достаточно». В официальных гайдах модель не только оценивают по
lossиperplexity, но и проверяют через inference-сценарий вродеfill-mask. - Ограничение: не все objectives одинаковы. Causal language modeling и masked language modeling — это разные цели обучения, и они проверяются на разных типах поведения модели.
- Ограничение статьи. Здесь не разобраны современные варианты предобучения за пределами NLP/Transformers, потому что в исходном пакете для них нет достаточных первичных источников.
Связанные термины и инструменты
Чтобы увидеть следующий этап после предобучения, полезно разобрать Transfer learning (перенос обучения). Если вам нужно не учить модель с нуля, а мягко адаптировать уже готовую, посмотрите Prompt tuning (мягкий промпт). А когда pre-training упирается в вычислительные ресурсы, на первый план выходит Distributed training (распределённое обучение).
Источники
- How do Transformers work? · Hugging Face
- Glossary · Hugging Face
- Training a causal language model from scratch · Hugging Face
- Masked language modeling · Hugging Face
- Trainer · Hugging Face
- BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
Вопросы и ответы
Предобучение и fine-tuning — это одно и то же?
Нет. В рассмотренных источниках pre-training — это обучение с нуля на большом корпусе, а fine-tuning — последующая адаптация уже предобученной модели под конкретную задачу.
Всегда ли pre-training self-supervised?
В официальном глоссарии Hugging Face pretrained model описана именно через self-supervised методы, а в источниках этой статьи приведены causal language modeling и masked language modeling. Для других модальностей возможны отдельные схемы, но они здесь не покрыты.
Как понять, что предобучение идёт нормально?
В официальных гайдах используют отложенный split, считают loss и perplexity, а затем дополнительно смотрят на поведение модели в inference, например через fill-mask.
Можно ли считать любой запуск Trainer предобучением?
Нет. Документация Trainer описывает его как общий цикл обучения и оценки, который подходит и для training from scratch, и для fine-tuning. Сам по себе инструмент не определяет тип обучения.
Практический вердикт: когда вам действительно нужен pre-training?
Когда вы создаёте базовую модель под свой большой корпус и готовы к серьёзным затратам данных и времени. Если ваша цель — быстро адаптировать уже существующую модель, по этим источникам логичнее сначала смотреть в сторону fine-tuning или более лёгких методов адаптации.