Сколько стоит зафайнтюнить 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. Форматы:
- Alpaca —
instruction/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 | ₽/час |
Практический расчёт: 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 и большей пропускной способности памяти.
Практический расчёт: Llama 3.3 70B QLoRA на 10,000 примеров
Модель 70B требует минимум 48 ГБ VRAM, поэтому RTX 4090 (24 ГБ) не подходит. Нужны серверные GPU или multi-GPU конфигурация:
| GPU | Время обучения | Цена за час | Итого |
|---|---|---|---|
| RTX 4090 (24 ГБ) | Не хватает VRAM | — | — |
| 2× A100 80GB | ~12 часов | 2 × ₽ | ₽ |
| 2× H100 80GB | ~5 часов | 2 × ₽ | ₽ |
| H200 | ~6 часов | ₽ | ₽ |
Для 70B модели multi-GPU обучение требует DeepSpeed ZeRO-3 или FSDP — Axolotl поддерживает оба из коробки.
Что влияет на стоимость кроме 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
Типичные ошибки и как не потерять деньги
Из опыта запусков на нашей платформе — ошибки, которые стоят денег:
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 примеров | 2× A100 80GB | ₽ |
| QLoRA 70B, максимальная скорость | 2× 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