Файнтюнинг модели 70B на одной карте.
QLoRA превращает задачу обучения, для которой нужна целая стойка, в задачу, для которой достаточно одного GPU на 48 GB. Вот что помещается, сколько это стоит в месяц и где эта техника перестаёт работать.
Коротко
- QLoRA на 70B
- ~61 GB — помещается на одной карте 48 GB при коротких последовательностях, и свободно — на карте 80 GB
- Полный файнтюнинг 70B
- ~1,232 GB — кластер из нескольких узлов, который мы не сдаём в аренду
- Соотношение
- Примерно в 20× раз меньше памяти — за технику, которая на большинстве задач даёт бо́льшую часть качества
- Сколько это стоит у нас
- От $286 в месяц — карта ваша на весь месяц, а не только на время прогона
Что реально помещается
LoRA замораживает модель и обучает небольшую пару низкоранговых матриц рядом с каждой матрицей весов. QLoRA идёт дальше и хранит замороженные веса в 4-битном формате. В результате то, что нужно держать в памяти, меняется полностью.
Почему с полным файнтюнингом всё иначе
Полный файнтюнинг в BF16 требует около 16 байт на параметр: 2 на сам вес, 2 на его градиент и 8 на два момента Adam в FP32, плюс мастер-копия. Это фиксированный множитель, и он безжалостен.
| Модель | QLoRA | Полный файнтюнинг | Соотношение | Что это значит |
|---|---|---|---|---|
| Llama 3.1 8B | 13 GB | 141 GB | 11× | Одна карта на 24 GB |
| Gemma 3 27B | 27 GB | 475 GB | 17× | Одна карта на 48 GB |
| Qwen 3 32B | 31 GB | 563 GB | 18× | Одна карта на 48 GB |
| Llama 3.3 70B | 61 GB | 1,232 GB | 20× | Одна карта на 80 GB |
Это оценки порядка величины с небольшим запасом на активации — их достаточно, чтобы выбрать машину, но не достаточно, чтобы обещать результат конкретного запуска. Длина последовательности и размер батча заметно двигают столбец QLoRA; столбец полного файнтюнинга почти не меняется, потому что в нём доминируют фиксированные 16 байт на параметр.
По моделям
Самый дешёвый узел в нашем каталоге, способный обучить каждую модель с помощью QLoRA, а рядом — машина, которая понадобится для инференса результата.
| Модель | Память для обучения | Самый дешёвый узел для обучения | Самый дешёвый узел для инференса |
|---|---|---|---|
| Llama 3.1 8B | 13 GB | NVIDIA L4 | NVIDIA L4 |
| Mistral Small 24B | 25 GB | NVIDIA RTX A6000 | NVIDIA L4 |
| Gemma 3 27B | 27 GB | NVIDIA RTX A6000 | NVIDIA L4 |
| Qwen 3 32B | 31 GB | NVIDIA RTX A6000 | NVIDIA L4 |
| Llama 3.3 70B | 61 GB | NVIDIA A100 PCIe | 2 × NVIDIA L4 |
Обучению нужна память; инференсу нужна память и пропускная способность. Часто правильная карта для обучения — дешёвая, с большим объёмом памяти, а правильная карта для инференса — дорогая и быстрая. Поскольку обе доступны здесь помесячно, запускать их на разных машинах часто дешевле, чем идти на компромисс с одной.
Запуск
Axolotl предустановлен как один из образов в конфигураторе. Это полный прогон на одной карте, с чистой машины.
$ mkdir -p /scratch/ft && cd /scratch/ft
$ cat > qlora.yml <<'YAML'
base_model: meta-llama/Llama-3.3-70B-Instruct
load_in_4bit: true
adapter: qlora
lora_r: 16
lora_alpha: 32
lora_dropout: 0.05
lora_target_linear: true
sequence_len: 2048
sample_packing: true
gradient_checkpointing: true
micro_batch_size: 1
gradient_accumulation_steps: 16
num_epochs: 2
learning_rate: 0.0001
optimizer: paged_adamw_8bit
bf16: true
datasets:
- path: /scratch/ft/data.jsonl
type: chat_template
output_dir: /scratch/ft/out
YAML
$ docker run --rm --gpus all --ipc=host --shm-size=16g \
-v /scratch/ft:/workspace -v /scratch/models:/root/.cache/huggingface \
-e HF_TOKEN="$HF_TOKEN" \
axolotlai/axolotl:main-latest \
axolotl train /workspace/qlora.yml
$ nvidia-smi dmon -s um
# If memory sits just under the card's total, you are one long batch
# away from an out-of-memory error four hours into the run.
# Lower sequence_len or micro_batch_size now, not then.
Настройки, которые имеют значение
Сколько стоит месяц
Причина, по которой помесячная аренда важнее для обучения, чем для инференса: проект файнтюнинга — это не один прогон. Это первый прогон, который падает из-за бага в данных, второй, который переобучается, третий, который срабатывает, а затем ещё пять — с разными рангами.
| Машина | Память карты | В месяц | Подходит |
|---|---|---|---|
| NVIDIA L4 | 24 GB | $125/мес | QLoRA до 8B |
| NVIDIA RTX 5090 | 32 GB | $335/мес | QLoRA до 32B |
| NVIDIA A100 PCIe | 40 GB | $392/мес | QLoRA до 32B |
| NVIDIA RTX A6000 | 48 GB | $286/мес | QLoRA до 32B |
| NVIDIA A100 PCIe | 80 GB | $1,091/мес | QLoRA до 70B |
Сравните это с почасовой оплатой в рамках проекта, а не одного прогона: руководство по точке окупаемости разбирает эту арифметику. Машина, которая существует три недели, пока вы итерируете, — это именно тот случай, когда почасовая тарификация обходится дороже, чем срок аренды.
Где LoRA перестаёт работать
Это очень хорошая техника с реальной границей применимости, и прежде чем что-то арендовать, стоит понять, по какую сторону этой границы вы находитесь.
Обучение по-настоящему новой предметной области. LoRA хорошо адаптирует поведение, но плохо добавляет знания. Модель, которая никогда не видела вашу область, не выучит её по низкоранговому адаптеру.
Изменение словаря или токенизатора. Новым токенам нужны обученные эмбеддинги, а это выходит за пределы того, что затрагивает адаптер.
Продолжение предобучения на миллиардах токенов. Это полный файнтюнинг, и для него нужна машина из правого столбца таблицы выше — а это больше одного узла, больше, чем мы сдаём в аренду.
Выжать последние два пункта бенчмарка. На этой грани полный файнтюнинг всё ещё выигрывает. Если именно за эту грань вам и платят, LoRA — не тот инструмент.
Для всего остального — тона, формата, схемы, области, которую базовая модель уже наполовину знает — QLoRA на одной карте даёт бо́льшую часть качества за долю стоимости машины. Это и есть компромисс, и для моделей, которые люди чаще всего дообучают на практике, он хорош.
Выберите карту и держите её весь проект.
Каждая конфигурация — помесячная, с root-доступом и без почасовой тарификации — именно это и нужно для итеративной работы над файнтюнингом.
Другие руководства
- Оплата · 8 мин
Оплата сервера криптовалютой
Что на самом деле происходит между нажатием «оплатить» и получением root, какую монету выбрать и четыре ошибки, которые теряют деньги при первом платеже.
Читать руководство - Расчёт · 9 мин
Сколько VRAM реально нужно модели
Арифметика вопроса «поместится ли модель»: веса, KV-кэш и два места, где эмпирическое правило ошибается сразу втрое.
Читать руководство - Расчёт · 7 мин
NVLink или PCIe: что нужно вашей задаче
Когда связь между картами определяет пропускную способность, когда она ничего не меняет и как понять, какой у вас случай, прежде чем платить за не тот узел.
Читать руководство