Infrastructure
spot-инстанс
Прерываемый облачный инстанс по сниженной цене с возможностью отзыва провайдером.
Что такое spot-инстанс в инфраструктуре
Spot-инстанс (interruptible instance) — облачный GPU-ресурс с существенной скидкой (30–90%) в обмен на право провайдера прервать работу при нехватке ресурсов. В контексте инфраструктуры задача — проектировать сервисы, устойчивые к прерываниям.
Инфраструктурные практики для spot-инстансов
Автоматический restart: контейнер должен рестартовать и возобновить работу без ручного вмешательства:
# docker-compose.yml
services:
trainer:
restart: unless-stopped # перезапуск при остановке
volumes:
- ./checkpoints:/checkpoints # persistent volume для чекпоинтов
environment:
- TRAINING_CHECKPOINT_DIR=/checkpoints
Graceful shutdown: поймать SIGTERM и сохранить состояние:
import signal, sys
from transformers import TrainingArguments
def save_on_interrupt(sig, frame):
print("Получен SIGTERM, сохраняем чекпоинт...")
trainer.save_model()
trainer.save_state()
sys.exit(0)
signal.signal(signal.SIGTERM, save_on_interrupt)
Возобновление обучения:
# Автоматически найти последний чекпоинт и продолжить
trainer.train(resume_from_checkpoint=True)
Мониторинг доступности spot-инстансов
На Vast.ai статус прерываемого инстанса можно отслеживать через API. При прерывании рекомендуется:
- Логировать прогресс обучения в облако (W&B, MLflow)
- Хранить чекпоинты в object storage
- Настроить алерт при прерывании
Связанные термины
- spot-инстанс (GPU) — описание с точки зрения железа
- чекпоинт — необходим для возобновления после прерывания
- object storage — надёжное хранилище чекпоинтов вне инстанса
- GPU-инстанс — on-demand альтернатива
Готовы запустить GPU-задачу?
Запустить GPU-сервер