Training

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-сервер