Сколько стоит зафайнтюнить Llama 3 на своих данных: расчёт на 4 GPU

Полный расчёт стоимости fine-tuning Llama 3 8B и 70B на RTX 4090, A100 и H100. LoRA, QLoRA, full fine-tune — время, VRAM, цена за полный цикл.

Fine-tuning — это не абстрактное «обучение нейросети». Это конкретная задача с конкретной стоимостью: столько-то часов GPU, столько-то рублей за полный цикл. В этой статье мы разбираем реальную экономику дообучения Llama 3 и Qwen на своих данных — от выбора метода до итоговой суммы в рублях.

Зачем вообще дообучать LLM на своих данных? Три основных сценария:

  • Кастомизация под домен. Юридические документы, медицинские протоколы, техническая документация — модель начинает «говорить на языке» вашей отрасли.
  • Стиль и тон ответов. Формат, длина, структура — fine-tuning позволяет настроить модель под стиль вашего продукта.
  • Приватные данные. Данные не уходят за пределы вашего GPU-инстанса — вы контролируете весь пайплайн.

Три способа дообучения: LoRA, QLoRA и full fine-tune

Прежде чем считать деньги, нужно понять разницу между методами. Выбор метода определяет, сколько VRAM нужно и какую GPU арендовать.

Параметр QLoRA LoRA Full fine-tune
VRAM Минимум Среднее Максимум
Качество 90–95% от full 95–98% от full Эталон
Скорость обучения Средняя (квантизация замедляет) Быстрая Медленная
Стоимость Самая низкая Средняя Самая высокая
Количество обучаемых параметров 0.1–1% 0.1–1% 100%

QLoRA — оптимальный выбор для большинства задач. Базовая модель загружается в 4-bit квантизации, а обучаемые LoRA-адаптеры работают в bf16/fp16. Это позволяет дообучить 8B модель на GPU с 12 ГБ VRAM.

LoRA — те же низкоранговые адаптеры, но базовая модель остаётся в fp16/bf16. Качество чуть выше, VRAM — значительно больше.

Full fine-tune — обновление всех весов модели. Требует огромного объёма VRAM и оправдан только при больших датасетах (50k+ примеров) или специфических задачах.

Что понадобится для fine-tuning

Датасет

Минимальный размер — 500 примеров, оптимальный — 5,000–50,000. Форматы:

  • Alpacainstruction / input / output
  • ShareGPT — многооборотные диалоги conversations: [{from: human, value: ...}, {from: gpt, value: ...}]
  • Completion — простые пары text для дообучения

Качество данных важнее количества. 1,000 чистых примеров дадут лучший результат, чем 50,000 шумных.

Железо

Требования зависят от модели и метода — подробная таблица ниже. Ключевое: для QLoRA 8B модели достаточно одного RTX 4090, для 70B — минимум два A100 80GB.

Софт

  • Axolotl — наш рекомендуемый фреймворк. YAML-конфиги, поддержка LoRA/QLoRA/full, DeepSpeed, FSDP.
  • Unsloth — ускоренный fine-tuning с оптимизированными ядрами, до 2× быстрее.
  • TRL — библиотека от HuggingFace для RLHF, DPO, SFT.
  • PEFT — библиотека для parameter-efficient методов (LoRA, QLoRA, IA3).
  • DeepSpeed — фреймворк для распределённого обучения, ZeRO для экономии VRAM.

Требования по VRAM

Главная таблица. Используйте её для выбора GPU:

Llama 3

Модель QLoRA LoRA Full fine-tune
Llama 3.1 8B 12 ГБ 24 ГБ 80+ ГБ
Llama 3.3 70B 48 ГБ 160 ГБ 560+ ГБ

Qwen 2.5

Модель QLoRA LoRA Full fine-tune
Qwen 2.5 7B 10 ГБ 22 ГБ 70+ ГБ
Qwen 2.5 32B 24 ГБ 80 ГБ 280+ ГБ
Qwen 2.5 72B 48 ГБ 160 ГБ 560+ ГБ

Примечание. Значения VRAM приблизительные и зависят от batch size, sequence length и rank адаптера. Указаны для типовых настроек: batch_size=4, seq_len=2048, rank=16.

Выбор GPU

Какую GPU арендовать? Зависит от модели и бюджета:

GPU VRAM Подходит для Цена
RTX 4090 24 ГБ QLoRA до 13B, LoRA 8B /час
RTX 5090 32 ГБ QLoRA до 32B, LoRA 13B /час
A100 80GB 80 ГБ QLoRA 70B, LoRA до 32B, full 8B /час
H100 80GB 80 ГБ Все задачи, максимальная скорость /час
H200 141 ГБ 70B LoRA на одном GPU /час

Посмотреть все доступные GPU и цены →

Практический расчёт: Llama 3.1 8B QLoRA на 10,000 примеров

Самый распространённый сценарий — дообучение 8B модели методом QLoRA. Вот сколько это стоит на разных GPU:

GPU Время обучения Цена за час Итого
RTX 4090 ~4 часа
RTX 5090 ~2.5 часа
A100 80GB ~3 часа
H100 80GB ~1.5 часа

Лучший по цене/производительности — RTX 4090: минимальная стоимость при приемлемом времени. Лучший по абсолютной скорости — H100: в 2.5× быстрее RTX 4090 за счёт FP8 и большей пропускной способности памяти.

Арендовать RTX 4090 →

Практический расчёт: Llama 3.3 70B QLoRA на 10,000 примеров

Модель 70B требует минимум 48 ГБ VRAM, поэтому RTX 4090 (24 ГБ) не подходит. Нужны серверные GPU или multi-GPU конфигурация:

GPU Время обучения Цена за час Итого
RTX 4090 (24 ГБ) Не хватает VRAM
A100 80GB ~12 часов 2 × ₽
H100 80GB ~5 часов 2 × ₽
H200 ~6 часов

Для 70B модели multi-GPU обучение требует DeepSpeed ZeRO-3 или FSDP — Axolotl поддерживает оба из коробки.

Арендовать H100 для быстрого обучения →

Что влияет на стоимость кроме GPU

Аренда GPU — основная, но не единственная статья расходов:

  • Storage. Датасет, чекпоинты модели и финальные веса занимают место. Для 8B модели — 30–50 ГБ, для 70B — 150–300 ГБ. Стоимость хранения обычно незначительна по сравнению с GPU.
  • Эксперименты. Первый запуск редко бывает финальным. Планируйте 2–3× от базового времени на эксперименты: подбор learning rate, rank, формата данных.
  • Debug-итерации. Отлаживайте на дешёвой GPU (RTX 4090), а финальный запуск делайте на быстрой (H100). Это экономит 30–50% бюджета.
  • Network. Скачивание модели с HuggingFace и загрузка датасета — обычно быстро и дёшево, но учитывайте при планировании.

Правило. Умножайте базовый расчёт на 2.5× для бюджетирования. Если таблица говорит ₽X, закладывайте ₽2.5X.

Пошаговый пример запуска

Покажем на практике: QLoRA fine-tune Llama 3.1 8B на RTX 4090 через Axolotl.

1. Запустите инстанс

Перейдите в шаблон Axolotl и запустите инстанс с RTX 4090. Рекомендуемый диск — 200 ГБ.

2. Подготовьте датасет

Загрузите датасет в формате alpaca:

[
  {
    "instruction": "Переведи на юридический язык",
    "input": "Клиент хочет вернуть товар через 20 дней",
    "output": "В соответствии со ст. 25 Закона о защите прав потребителей, потребитель вправе обменять непродовольственный товар надлежащего качества в течение 14 дней..."
  }
]

3. Создайте конфиг Axolotl

base_model: meta-llama/Llama-3.1-8B-Instruct
model_type: LlamaForCausalLM
tokenizer_type: AutoTokenizer

load_in_4bit: true
adapter: qlora
lora_r: 16
lora_alpha: 32
lora_dropout: 0.05
lora_target_linear: true

dataset_prepared_path: /workspace/data/prepared
datasets:
  - path: /workspace/data/train.jsonl
    type: alpaca

sequence_len: 2048
sample_packing: true
pad_to_sequence_len: true

micro_batch_size: 4
gradient_accumulation_steps: 4
num_epochs: 3

optimizer: adamw_torch
lr_scheduler: cosine
learning_rate: 2e-4
warmup_ratio: 0.05

bf16: auto
tf32: true

output_dir: /workspace/output/llama-3.1-8b-qlora

save_strategy: steps
save_steps: 100
save_total_limit: 3

eval_strategy: steps
eval_steps: 100
eval_sample_packing: false

logging_steps: 10

4. Запустите обучение

accelerate launch -m axolotl.cli.train config.yml

Обучение на RTX 4090 с 10,000 примеров займёт ~4 часа. Следите за loss в логах — он должен плавно снижаться.

5. Протестируйте результат

accelerate launch -m axolotl.cli.inference config.yml \
  --lora_model_dir /workspace/output/llama-3.1-8b-qlora

Запустить готовый шаблон fine-tuning →

Типичные ошибки и как не потерять деньги

Из опыта запусков на нашей платформе — ошибки, которые стоят денег:

1. OOM при evaluation. Обучение проходит, а на eval — Out of Memory. Причина: при evaluation отключается gradient checkpointing, и модель потребляет больше VRAM. Решение: уменьшите micro_batch_size для eval или используйте eval_sample_packing: false.

2. Забытый save_steps. Обучение 4 часа, а чекпоинты не сохранялись — потеря всей работы при disconnects. Всегда ставьте save_steps: 100 и save_total_limit: 3.

3. Debug на дорогой GPU. Отлаживаете конфиг на H100 при ₽/час, хотя для debug достаточно RTX 4090 при ₽/час. Сначала один epoch на дешёвой GPU — потом полный запуск на быстрой.

4. Слишком высокий learning rate. LR > 5e-4 для QLoRA часто приводит к расхождению. Начинайте с 2e-4 и двигайтесь оттуда.

5. Неправильный формат датасета. Axolotl молча обрежет или пропустит некорректные примеры. Проверяйте: accelerate launch -m axolotl.cli.preprocess config.yml перед обучением.

Когда fine-tune не нужен

Fine-tuning — не универсальный ответ. Иногда проще и дешевле:

Задача Альтернатива Когда выбирать
Добавить знания о продукте RAG (Retrieval-Augmented Generation) Данные часто обновляются, нужны ссылки на источники
Изменить формат ответа System prompt + few-shot < 10 примеров достаточно, нет нужды в обучении
Классификация текстов Few-shot prompting Мало классов, простая логика
Перевод / суммаризация Промпт-инженеринг Модель уже справляется, нужна лишь точная инструкция
Генерация кода Fine-tune на кодовой базе Да, fine-tune оправдан — стиль, паттерны, внутренние API
Специализированный домен Fine-tune Да — медицина, юриспруденция, узкие отрасли

Чек-лист. Попробуйте сначала: (1) system prompt, (2) few-shot примеры в контексте, (3) RAG. Если не хватает качества — fine-tune.

Итоговая таблица: сценарий → GPU → стоимость

Сценарий GPU Ориентировочная стоимость
QLoRA 8B на 10k примеров RTX 4090
QLoRA 8B, максимальная скорость H100 80GB
QLoRA 70B на 10k примеров A100 80GB
QLoRA 70B, максимальная скорость H100 80GB
LoRA 8B на 10k примеров A100 80GB
Full fine-tune 8B A100 80GB

Цены рассчитаны по тарифам CloudCompute.ru на момент публикации. Актуальные цены — на странице GPU.


Дообучение LLM на своих данных — это не rocket science и не миллионные бюджеты. QLoRA для 8B модели стоит несколько сотен рублей за полный цикл. Главное — правильно выбрать метод, GPU и не тратить время на debug на дорогом железе.

Посмотреть все GPU и цены → · Запустить Axolotl → · Подробнее про LoRA · Подробнее про QLoRA