Training

чекпоинт

Сохранённое состояние модели и оптимизатора в определённый момент обучения.

Что такое чекпоинт

Чекпоинт (checkpoint) — снимок полного состояния обучения в определённый момент: веса модели, состояния оптимизатора, значение шага, состояние планировщика lr. Позволяет возобновить обучение после прерывания или откатиться к лучшей версии модели.

Только веса (без состояния оптимизатора) — это просто checkpoint веса (model checkpoint), достаточный для инференса.

Когда чекпоинты критичны

  • Spot-инстансы — инстанс может прерваться в любой момент
  • Длительное обучение — недели на кластере; потеря прогресса = серьёзный ущерб
  • Hyperparameter search — нужно сохранять лучшие конфигурации
  • Early stopping — сохранить лучший чекпоинт по val_loss

Hugging Face Trainer

from transformers import TrainingArguments

args = TrainingArguments(
    output_dir="./checkpoints",
    save_steps=500,              # сохранять каждые 500 шагов
    save_total_limit=3,          # хранить только 3 последних
    load_best_model_at_end=True, # загрузить лучший в конце
    metric_for_best_model="eval_loss",  # критерий выбора лучшего
)

Восстановление обучения

# Продолжить с последнего чекпоинта
trainer.train(resume_from_checkpoint="./checkpoints/checkpoint-1000")

# Или автоматически — последний чекпоинт
trainer.train(resume_from_checkpoint=True)

Размер чекпоинта

Модель Только веса Full checkpoint (+ оптимизатор)
7B BF16 ~14 ГБ ~42 ГБ
7B LoRA ~50 МБ ~50 МБ
70B BF16 ~140 ГБ ~420 ГБ

LoRA-чекпоинты содержат только адаптеры — они компактны.

Связанные термины

  • spot-инстанс — где чекпоинты особенно важны
  • LoRA — компактные адаптерные чекпоинты
  • overfitting — early stopping использует чекпоинты
  • VRAM — не задействована при сохранении на диск

Готовы запустить GPU-задачу?

Запустить GPU-сервер