Все 6 дата-центров работают

Оплата в криптовалюте · Без проверки личности · Root-доступ через менее 5 минут

Практика · руководство · 10 мин на чтение

Файнтюнинг модели 70B на одной карте.

QLoRA превращает задачу обучения, для которой нужна целая стойка, в задачу, для которой достаточно одного GPU на 48 GB. Вот что помещается, сколько это стоит в месяц и где эта техника перестаёт работать.

Коротко

QLoRA на 70B
~61 GB — помещается на одной карте 48 GB при коротких последовательностях, и свободно — на карте 80 GB
Полный файнтюнинг 70B
~1,232 GB — кластер из нескольких узлов, который мы не сдаём в аренду
Соотношение
Примерно в 20× раз меньше памяти — за технику, которая на большинстве задач даёт бо́льшую часть качества
Сколько это стоит у нас
От $286 в месяц — карта ваша на весь месяц, а не только на время прогона

Что реально помещается

LoRA замораживает модель и обучает небольшую пару низкоранговых матриц рядом с каждой матрицей весов. QLoRA идёт дальше и хранит замороженные веса в 4-битном формате. В результате то, что нужно держать в памяти, меняется полностью.

Замороженные веса4 бита на параметр35 GB для модели 70B. Считываются на каждом шаге, но никогда не обновляются, поэтому градиент им не нужен.
АдаптерыОколо 1–2% параметровГигабайт-другой в BF16. Это единственные веса, которые меняются, и единственное, что остаётся у вас в итоге.
Состояние оптимизатораAdam, только для адаптеровДва момента на каждый обучаемый параметр. Это слагаемое доминирует при полном файнтюнинге и почти исчезает здесь.
АктивацииПеременная частьМасштабируется вместе с размером батча и длиной последовательности. Gradient checkpointing даёт примерно 30% прироста вычислений в обмен на значительное снижение памяти — обычный рычаг, когда прогон не помещается.

Почему с полным файнтюнингом всё иначе

Полный файнтюнинг в BF16 требует около 16 байт на параметр: 2 на сам вес, 2 на его градиент и 8 на два момента Adam в FP32, плюс мастер-копия. Это фиксированный множитель, и он безжалостен.

Память для обучения: QLoRA против полного файнтюнинга
МодельQLoRAПолный файнтюнингСоотношениеЧто это значит
Llama 3.1 8B8B параметров 13 GB 141 GB 11× Одна карта на 24 GB Полный: узел на 8 GPU
Gemma 3 27B27B параметров 27 GB 475 GB 17× Одна карта на 48 GB Полный: узел на 8 GPU
Qwen 3 32B32B параметров 31 GB 563 GB 18× Одна карта на 48 GB Полный: узел на 8 GPU
Llama 3.3 70B70B параметров 61 GB 1,232 GB 20× Одна карта на 80 GB Полный: больше одного узла

Это оценки порядка величины с небольшим запасом на активации — их достаточно, чтобы выбрать машину, но не достаточно, чтобы обещать результат конкретного запуска. Длина последовательности и размер батча заметно двигают столбец QLoRA; столбец полного файнтюнинга почти не меняется, потому что в нём доминируют фиксированные 16 байт на параметр.

По моделям

Самый дешёвый узел в нашем каталоге, способный обучить каждую модель с помощью QLoRA, а рядом — машина, которая понадобится для инференса результата.

Самый дешёвый узел для обучения QLoRA и для инференса результата
МодельПамять для обученияСамый дешёвый узел для обученияСамый дешёвый узел для инференса
Llama 3.1 8B 13 GB NVIDIA L424 GB на карту · $125/мес. NVIDIA L4$125/мес.
Mistral Small 24B 25 GB NVIDIA RTX A600048 GB на карту · $286/мес. NVIDIA L4$125/мес.
Gemma 3 27B 27 GB NVIDIA RTX A600048 GB на карту · $286/мес. NVIDIA L4$125/мес.
Qwen 3 32B 31 GB NVIDIA RTX A600048 GB на карту · $286/мес. NVIDIA L4$125/мес.
Llama 3.3 70B 61 GB NVIDIA A100 PCIe80 GB на карту · $1,091/мес. 2 × NVIDIA L4$285/мес.

Обучению нужна память; инференсу нужна память и пропускная способность. Часто правильная карта для обучения — дешёвая, с большим объёмом памяти, а правильная карта для инференса — дорогая и быстрая. Поскольку обе доступны здесь помесячно, запускать их на разных машинах часто дешевле, чем идти на компромисс с одной.

Запуск

Axolotl предустановлен как один из образов в конфигураторе. Это полный прогон на одной карте, с чистой машины.

Запуск QLoRA на одной карте
$ 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.

Настройки, которые имеют значение

lora_r16 to 64Ранг — главный регулятор баланса между качеством и памятью. 16 — разумное значение по умолчанию; превышение 64 редко себя окупает, если только вы не обучаете модель по-настоящему новым знаниям, а не формату или стилю.
lora_target_lineartrueАдаптирует каждый линейный слой, а не только внимание. Стоит немного и стабильно превосходит вариант по умолчанию, затрагивающий только внимание.
sequence_lenСамый мощный рычаг экономии памятиАктивации масштабируются вместе с ним. Уменьшение вдвое примерно вдвое сокращает переменную часть памяти. Выставляйте значение по реальной длине ваших данных, а не по максимуму модели.
gradient_checkpointingtrue, почти всегдаПримерно на 30% медленнее, но именно это позволяет модели 70B вообще уместиться на одной карте. Отключайте это только тогда, когда у вас есть запас памяти.
micro_batch_size & накоплениеРазменять одно на другоеЭффективный батч — это их произведение. Держите микробатч равным 1 и увеличивайте накопление градиента, когда памяти не хватает, — тот же градиент, меньший пиковый расход памяти, чуть медленнее.
оптимизаторpaged_adamw_8bitВосьмибитные состояния оптимизатора с подкачкой в CPU как предохранительный клапан. Он сглаживает всплески, которые иначе оборвали бы прогон на четвёртом часу.

Сколько стоит месяц

Причина, по которой помесячная аренда важнее для обучения, чем для инференса: проект файнтюнинга — это не один прогон. Это первый прогон, который падает из-за бага в данных, второй, который переобучается, третий, который срабатывает, а затем ещё пять — с разными рангами.

Стоимость проекта файнтюнинга по машинам
МашинаПамять картыВ месяцПодходит
NVIDIA L4300 GB/s 24 GB $125/мес QLoRA до 8B
NVIDIA RTX 50901,792 GB/s 32 GB $335/мес QLoRA до 32B
NVIDIA A100 PCIe1,555 GB/s 40 GB $392/мес QLoRA до 32B
NVIDIA RTX A6000768 GB/s 48 GB $286/мес QLoRA до 32B
NVIDIA A100 PCIe1,935 GB/s 80 GB $1,091/мес QLoRA до 70B

Сравните это с почасовой оплатой в рамках проекта, а не одного прогона: руководство по точке окупаемости разбирает эту арифметику. Машина, которая существует три недели, пока вы итерируете, — это именно тот случай, когда почасовая тарификация обходится дороже, чем срок аренды.

Где LoRA перестаёт работать

Это очень хорошая техника с реальной границей применимости, и прежде чем что-то арендовать, стоит понять, по какую сторону этой границы вы находитесь.

Обучение по-настоящему новой предметной области. LoRA хорошо адаптирует поведение, но плохо добавляет знания. Модель, которая никогда не видела вашу область, не выучит её по низкоранговому адаптеру.

Изменение словаря или токенизатора. Новым токенам нужны обученные эмбеддинги, а это выходит за пределы того, что затрагивает адаптер.

Продолжение предобучения на миллиардах токенов. Это полный файнтюнинг, и для него нужна машина из правого столбца таблицы выше — а это больше одного узла, больше, чем мы сдаём в аренду.

Выжать последние два пункта бенчмарка. На этой грани полный файнтюнинг всё ещё выигрывает. Если именно за эту грань вам и платят, LoRA — не тот инструмент.

Для всего остального — тона, формата, схемы, области, которую базовая модель уже наполовину знает — QLoRA на одной карте даёт бо́льшую часть качества за долю стоимости машины. Это и есть компромисс, и для моделей, которые люди чаще всего дообучают на практике, он хорош.

Выберите карту и держите её весь проект.

Каждая конфигурация — помесячная, с root-доступом и без почасовой тарификации — именно это и нужно для итеративной работы над файнтюнингом.

Войти

Консоль, инвойсы и внеполосный доступ.

Ещё нет аккаунта?

Отдельной регистрации нет. Ваш аккаунт создаётся, когда вы оформляете первый заказ — email и пароль вы указываете на шаге оплаты, и консоль открыта уже к моменту готовности машины.

Настроить сервер

Language