«Сколько GPU мне нужно?» — самый частый вопрос при планировании обучения языковых моделей. Ответ зависит от размера модели, типа обучения (full vs LoRA), precision (FP16 vs FP8 vs INT8), batch size и доступной памяти на GPU. В этой статье даём практические рекомендации для моделей 7B, 13B и 70B параметров.

Базовая формула оценки памяти

Для full fine-tuning модели в FP16 требуется примерно:

Память = (размер модели × 4) + (размер модели × 2 для градиентов) + (размер модели × 4 для оптимизатора AdamW) = размер модели × 10

Примеры:

Это без учёта batch size, активаций и KV-кэша. Реальное потребление — на 20–50% выше.

Для LoRA / QLoRA

При LoRA-адаптации замораживаются веса модели, обучаются только adapter-матрицы. Потребление памяти:

Память ≈ размер модели × 2 (веса в FP16 или INT4) + небольшой overhead для adapter'ов

Сводная таблица

МодельТипGPU H100 80GBGPU H200 141GBNVLink
7BLoRA / QLoRA11нет
7BFull fine-tuning1–21желательно
7BPretraining42–4обязательно
13BLoRA / QLoRA11нет
13BFull fine-tuning21–2обязательно
13BPretraining4–84обязательно
70BQLoRA INT41–21желательно
70BLoRA FP162–42обязательно
70BFull fine-tuning84–8обязательно
70BPretraining16+8–16обязательно

Какие конфигурации подходят

На основе наших серверов:

ЗадачаСерверЦена от, ₽/мес
7B–13B LoRA2× H100 80GB (XFUSION)585 000
13B full, 70B LoRA4× H100 80GB (ESC8000A)1 360 800
70B full8× H100 80GB (ESC8000A)2 373 300
70B full (меньше GPU)4× H200 141GB (ESC8000A)1 627 200
70B pretraining8× H200 141GB (ESC8000A)2 906 100

Практические советы

Используйте FSDP или DeepSpeed

Fully Sharded Data Parallel (FSDP) и DeepSpeed ZeRO разделяют веса, градиенты и состояние оптимизатора между GPU. Это позволяет обучать модели, которые не помещаются в память одной карты. FSDP встроен в PyTorch 2.x.

Gradient checkpointing

Пересчёт активаций вместо их хранения. Экономит 50–70% памяти ценой 20–30% замедления. Почти всегда стоит включать.

Mixed precision (FP8 на H100)

H100 поддерживает FP8 — формат с 8-битными числами. Обучение в FP8 ускоряет вычисления и снижает потребление памяти в 2 раза по сравнению с FP16. Поддерживается в PyTorch 2.2+ и NVIDIA Transformer Engine.

Batch size и gradient accumulation

Если не хватает памяти для большого batch size, используйте gradient accumulation: делайте несколько micro-batches и накапливайте градиенты перед шагом оптимизатора. Эффективный batch = micro-batch × accumulation steps.

Опишите вашу модель и задачу — подберём оптимальную конфигурацию. Тел: +7 499 350-51-54, email: sales@tenzor.cloud