pretraining
Начальное обучение модели на огромном корпусе данных для формирования универсальных представлений.
Что такое pretraining
Pretraining — первый и наиболее ресурсоёмкий этап создания LLM: обучение на триллионах токенов текста с задачей предсказания следующего слова (autoregressive language modeling). В результате модель усваивает знания о языке, фактах, логике и общих паттернах, не специфичных ни для какой конкретной задачи.
Pretraining Llama 3 70B занял несколько месяцев на тысячах H100. Для большинства ML-проектов pretraining с нуля — недостижимо: используются уже предобученные base-модели (Llama, Mistral, Qwen, Gemma) с последующим fine-tuning.
Цель pretraining
Стандартная задача — causal language modeling: предсказать токен T[i] по всем предыдущим T[0..i-1]. Минимизируется кросс-энтропийный лосс на огромном корпусе. Никакой разметки не нужно — только текст.
# Упрощённый принцип (PyTorch)
logits = model(input_ids) # (batch, seq_len, vocab_size)
loss = F.cross_entropy(
logits[:, :-1].reshape(-1, vocab_size),
input_ids[:, 1:].reshape(-1) # следующий токен = метка
)
Continued pretraining
Continued pretraining — продолжение pretraining base-модели на специализированном корпусе (медицина, юриспруденция, код). Занимает дни на нескольких GPU (vs месяцы для full pretraining) и значительно улучшает доменную экспертизу.
# Continued pretraining через TRL
torchrun --nproc_per_node=4 train.py \
--model_name meta-llama/Llama-3.1-8B \
--train_file domain_corpus.jsonl \
--learning_rate 1e-5 \
--max_steps 5000
Ресурсы
| Масштаб | GPU | Время | VRAM |
|---|---|---|---|
| 7B с нуля | 64× H100 | 2–3 недели | 80 ГБ × 64 |
| 7B continued PT (10B токенов) | 8× A100 | 2–3 дня | 80 ГБ × 8 |
| 70B с нуля | 512× H100 | 2–3 месяца | 80 ГБ × 512 |
Связанные термины
- fine-tuning — следующий этап после pretraining
- SFT — обучение с учителем на примерах ввода-вывода
- токен — единица обучения при pretraining
- perplexity — метрика качества language model
Готовы запустить GPU-задачу?
Запустить GPU-сервер