Запуск моделей
Дообучение LLM: сколько GPU нужно для LoRA и полного обучения
Сколько памяти и GPU нужно для дообучения LLM методами LoRA, QLoRA и полного обучения: таблица для моделей 8B, 32B и 70B, подбор железа и софт.
Содержание
Дообучение LLM методом QLoRA для модели 70B помещается примерно в 48 ГБ, то есть в одну карту на 96 ГБ с запасом. LoRA той же модели с базой в BF16 требует больше 140 ГБ, это уже две карты и больше. Полное обучение 70B со смешанной точностью и оптимизатором Adam требует больше 1 ТБ памяти GPU: это уровень сервера на восемь ускорителей или кластера. Ниже разбираем, когда дообучение вообще нужно, и считаем память для моделей 8B, 32B и 70B.
Когда нужно дообучение LLM, а когда хватит RAG и промпта
Дообучение меняет поведение модели: формат ответов, стиль, умение решать узкую задачу. Для знаний, которые часто меняются, оно подходит хуже. Поэтому проверять варианты стоит по порядку.
- Промпт. Подробная инструкция и несколько примеров прямо в запросе. Если модель справляется, дообучать не нужно.
- RAG. Если модели не хватает фактов из ваших документов, подключите поиск по базе знаний. Документ обновили, и ответ изменился, а дообученную модель пришлось бы обучать заново. Какое железо нужно под такой сервис, мы разобрали в статье о корпоративном RAG.
- Дообучение. Когда промпт и RAG не дают нужного качества или стабильности.
Задачи, где дообучение оправдано:
- стабильный формат ответа: JSON, шаблон документа, строгая структура;
- стиль и терминология компании, отраслевой язык;
- узкая классификация и извлечение данных из документов;
- перенос навыка большой модели в маленькую, чтобы обслуживать её на более скромном железе;
- длинная инструкция «зашивается» в модель, и запросы становятся короче.
Три метода: полное обучение, LoRA и QLoRA
Полное обучение (full fine-tuning). Обновляются все веса модели. Со смешанной точностью и Adam нужно около 16–18 байт на параметр: веса, градиенты и состояние оптимизатора. Сверху идут активации, их объём зависит от длины примеров и размера пачки. Это максимум возможностей и максимум железа.
LoRA. Базовые веса заморожены и хранятся в BF16, 2 байта на параметр. Обучаются только небольшие матрицы-адаптеры, и градиенты с состоянием оптимизатора нужны только им. Поэтому память почти равна размеру базы плюс активации. Готовый адаптер весит десятки или сотни мегабайт и подключается к базовой модели при запуске, а vLLM умеет обслуживать несколько адаптеров на одной базе.
QLoRA. То же, что LoRA, но база хранится в 4 битах, 0,5 байта на параметр. База занимает вчетверо меньше места, зато шаг обучения медленнее: веса приходится распаковывать на лету. Качество обычно близко к LoRA, но проверять его стоит на своей задаче. О том, что теряется при сжатии весов, читайте в статье о квантовании LLM.
Сколько GPU нужно: полное обучение, дообучение LoRA и QLoRA
Ответ на вопрос, сколько GPU нужно для обучения модели, начинается с метода. Память по формулам из раздела выше:
| Модель | Полное обучение, 16–18 байт на параметр | LoRA, база в BF16 | QLoRA, база в 4 битах |
|---|---|---|---|
| 8B | 128–144 ГБ + активации | ~16 ГБ + активации | ~4 ГБ + активации |
| 32B | 512–576 ГБ + активации | ~64 ГБ + активации | ~16 ГБ + активации |
| 70B | 1 120–1 260 ГБ + активации | ~140 ГБ + активации | ~35 ГБ + активации, на практике около 48 ГБ |
Какое железо из каталога под это подходит:
| Модель | Полное обучение | LoRA | QLoRA |
|---|---|---|---|
| 8B | 2 × H200 NVL или 2 × RTX PRO 6000 с распределением состояния по картам | 1 × RTX 5090 или RTX PRO 6000 | любая карта от 16 ГБ |
| 32B | сервер на 8 GPU: DGX H200 или DGX B200 | 1 × RTX PRO 6000 или H200 NVL | 1 × RTX 5090 или RTX PRO 6000 |
| 70B | DGX B200 на пределе, с запасом два сервера и больше | 2 × H200 NVL, 2–4 × RTX PRO 6000 или сервер на 8 GPU | 1 × RTX PRO 6000 или H200 NVL |
Активации растут с длиной примеров и размером пачки. Их можно сократить пересчётом (gradient checkpointing) ценой скорости, поэтому длинные примеры в 4–8 тысяч токенов требуют запаса памяти сверх таблицы. Для большинства корпоративных задач хватает LoRA или QLoRA на одной-двух картах, полное обучение нужно редко.
Какое железо выбрать
- Эксперименты и QLoRA до 70B. RTX PRO 6000: 96 ГБ с ECC на одной карте. QLoRA 70B помещается с запасом под длинные примеры, LoRA 32B тоже.
- LoRA 70B и полное обучение небольших моделей. Две-четыре H200 NVL со 141 ГБ HBM3e и NVLink-мостом на 900 ГБ/с. Мост важен: при обучении карты постоянно обмениваются градиентами, а через PCIe это заметно медленнее.
- Полное обучение моделей 32B–70B. DGX B200: восемь B200, 1 440 ГБ HBM3e, NVLink 5 и 72 ПФЛОПС в FP8 для обучения. Для моделей до 32B подойдёт и DGX H200 с 1 128 ГБ.
- Стек Huawei. Atlas 800T A2: восемь Ascend 910B, 512 ГБ HBM, до 3 ПФЛОПС в FP16 и сеть 8 × 200GE RoCE для объединения в кластер. Хватает на LoRA моделей до 70B и полное обучение моделей около 8B.
Если одной системы мало, нужен кластер с быстрой сетью и хранилищем. Что важно в таком сервере кроме GPU, мы описали в статье о сервере для обучения нейросетей.
От чего зависит время обучения
Точных часов без пробного запуска не назовёт никто, но факторы известны.
- Объём данных в токенах. Число примеров × средняя длина. Время растёт примерно пропорционально.
- Число эпох. Сколько раз модель проходит весь набор. Для дообучения обычно хватает немногих, лишние эпохи ведут к переобучению.
- Размер модели. Чем больше параметров, тем больше вычислений на каждый токен. Для полного обучения есть грубая оценка: около 6 × параметры × токены операций.
- Метод. LoRA экономит память и время на обновлении оптимизатора, но прямой и обратный проход через всю модель всё равно нужен. QLoRA медленнее LoRA из-за распаковки 4-битных весов.
- Железо. Вычислительная мощность в BF16 и FP8, связь между GPU, скорость подачи данных. Hopper и Blackwell аппаратно поддерживают FP8, что ускоряет обучение, если его поддерживает фреймворк.
Самый надёжный способ узнать время: запустить обучение на небольшой части данных и посмотреть скорость в токенах в секунду на вашем железе.
Софт для fine-tuning LLM
На GPU NVIDIA выбор широкий:
- Hugging Face PEFT и TRL. PEFT реализует LoRA и QLoRA, TRL отвечает за обучение на примерах (SFT) и по предпочтениям (DPO).
- Unsloth. Ускоренное и экономное по памяти дообучение, популярен для работы на одной карте.
- Axolotl и LLaMA-Factory. Обучение по конфигурационному файлу почти без кода, у LLaMA-Factory есть веб-интерфейс.
- DeepSpeed ZeRO и PyTorch FSDP. Распределяют веса, градиенты и состояние оптимизатора по нескольким GPU. Именно они позволяют полностью обучить модель 8B на двух картах, когда в одну она уже не помещается.
На Huawei Ascend работают MindSpore и PyTorch через torch_npu поверх CANN. Многие инструменты на PyTorch запускаются через torch_npu, но совместимость конкретных библиотек и их версий лучше проверить до покупки. Перенос собственного обучающего кода с CUDA обычно требует отдельной работы.
Коротко
- Сначала промпт и RAG. Дообучение нужно, чтобы изменить поведение модели, а не добавить в неё факты.
- QLoRA модели 70B помещается примерно в 48 ГБ: одна RTX PRO 6000 или H200 NVL.
- LoRA держит базу в BF16: для 70B это больше 140 ГБ, от двух карт.
- Полное обучение требует 16–18 байт на параметр плюс активации, для 70B больше 1 ТБ.
- Время зависит от числа токенов, эпох, размера модели и метода, точнее всего его покажет пробный запуск.
Опишите модель, объём данных и метод, который планируете: оставьте заявку, и мы предложим конфигурацию под дообучение, от одной карты до сервера на восемь GPU.
Оборудование из статьи
NVIDIA
H200 NVL
Больше всего памяти в формате PCIe: 141 ГБ HBM3e на карту.
- HBM3e
- 141ГБ
- Скорость памяти
- 4,8ТБ/с
- FP8
- 3341TFLOPS
Цена по запросу
NVIDIA Популярное
RTX PRO 6000 Blackwell
96 ГБ памяти в одной карте: модели 70B и больше без кластера.
- GDDR7 с ECC
- 96ГБ
- ИИ, FP4
- 4000TOPS
- Потребление
- 600Вт
Цена по запросу
NVIDIA
DGX B200
Blackwell для обучения и инференса: 1,44 ТБ памяти GPU.
- B200
- 8GPU
- Память GPU
- 1440ГБ
- FP4
- 144ПФЛОПС
Цена по запросу