Прежде чем дообучать языковую модель на своих данных, важно понять, на каком GPU она поместится. Рассказываем, что расходует VRAM, чем отличаются LoRA, QLoRA и полное обучение, сколько памяти примерно нужно моделям разного размера и как держать расходы под контролем.
Открытые языковые модели позволяют создать ассистента, классификатор или генератор текста под задачи вашей компании — достаточно дообучить модель на собственных данных. Но прежде чем начинать, нужно ответить на практический вопрос: на какой GPU поместится такое обучение?
Ошибка обходится дорого вдвойне. Если выбрать карту со слишком малым объёмом памяти, обучение остановится с ошибкой «out of memory», и часы работы будут потеряны. Если взять карту мощнее, чем нужно, вы будете платить за неиспользуемые ресурсы.
В этой статье мы разберём, что расходует VRAM, чем LoRA, QLoRA и полное обучение отличаются с точки зрения памяти и какие GPU примерно подходят для моделей разного размера.
Что расходует VRAM во время обучения?
Во время обучения в памяти GPU хранятся далеко не только веса модели. Общая потребность в памяти складывается из нескольких составляющих:
- Веса модели: 2 байта на параметр при 16-битной точности (FP16 или BF16). При 4-битной квантизации — примерно 0.5–0.6 байта на параметр.
- Градиенты: для каждого обучаемого параметра хранится один градиент. При полном обучении это означает дополнительный объём памяти, равный объёму весов.
- Состояния оптимизатора: популярные оптимизаторы, такие как Adam и AdamW, хранят по два дополнительных значения на параметр. Обычно они хранятся в 32-битном формате, поэтому могут оказаться самой крупной статьёй расхода памяти.
- Активации: промежуточные значения, вычисляемые при прямом проходе. Они растут вместе с размером батча и длиной последовательности. Gradient checkpointing сокращает их ценой некоторого замедления обучения.
- Накладные расходы фреймворка и CUDA: дополнительное место, которое занимают библиотеки и фрагментация памяти, — обычно несколько GB.
Распространённое эмпирическое правило: полное обучение со смешанной точностью и оптимизатором Adam требует примерно 16 байт на параметр или больше, не считая активаций. Поэтому даже полное обучение модели на 7 миллиардов параметров требует более 110 GB ещё до учёта активаций.
Сравнение LoRA, QLoRA и полного обучения
Полное дообучение (full fine-tuning)
Обновляются все параметры модели. Это самый гибкий метод, но и самый затратный по памяти и времени. Для крупных моделей почти всегда нужны несколько GPU и техники шардирования памяти, такие как FSDP или DeepSpeed ZeRO.
LoRA
LoRA (Low-Rank Adaptation) замораживает веса базовой модели и обучает только небольшие матрицы-адаптеры. Число обучаемых параметров обычно составляет очень малую долю от общего. Это радикально снижает объём памяти для градиентов и состояний оптимизатора. Базовая модель остаётся в 16-битном формате, поэтому веса по-прежнему занимают около 2 байт на параметр.
QLoRA
QLoRA сочетает подход LoRA с базовой моделью, квантизованной до 4 бит. Базовые веса сокращаются примерно в четыре раза, а адаптеры обучаются с более высокой точностью. Во многих задачах результат близок к LoRA, но при этом обучение идёт на гораздо более скромных картах. Обратная сторона — обучение обычно немного медленнее из-за накладных расходов на квантизацию.
Примерная потребность в VRAM в зависимости от размера модели
В таблице ниже приведены приблизительные значения для первичного планирования. Реальное потребление памяти может существенно отличаться в зависимости от длины последовательности, размера батча, ранга LoRA, использования gradient checkpointing и версий библиотек. Перед принятием решения всегда проводите короткий пробный запуск.
| Размер модели | QLoRA (4-битная база) | LoRA (16-битная база) | Полное обучение (16 бит, Adam) |
|---|---|---|---|
| 7B / 8B | Около 8-16 GB; L4 24 GB, RTX 4090 24 GB | Около 18-30 GB; A40 48 GB, L40S 48 GB | Около 120 GB и более; несколько GPU (например, несколько A100 / H100 80 GB) или H200 141 GB |
| 13B / 14B | Около 12-24 GB; RTX 4090 24 GB (впритык), A40 48 GB | Около 32-48 GB; A40 / L40S 48 GB (впритык), A100 80 GB | Около 220 GB и более; несколько GPU |
| 32B / 34B | Около 24-40 GB; A40 48 GB, L40S 48 GB | Около 70-100 GB; RTX PRO 6000 96 GB, H200 141 GB | Около 520 GB и более; несколько GPU |
| 70B | Около 45-70 GB; A100 / H100 80 GB, RTX PRO 6000 96 GB | Около 150-180 GB; B200 180 GB (впритык) или несколько GPU | Около 1.1 TB и более; крупный кластер из множества GPU |
Вывод очевиден: если вы хотите работать на одной GPU, самые практичные варианты — QLoRA для моделей до 70B и LoRA для малых и средних моделей. Полное обучение, за исключением небольших моделей, требует серьёзной конфигурации из нескольких GPU, а в большинстве бизнес-сценариев методов на основе LoRA вполне достаточно.
Если вам нужна конфигурация из нескольких GPU, укажите это при запросе коммерческого предложения: точные мощности и цена подтверждаются в нём. Все варианты карт представлены на нашей странице GPU-облака.
Какую GPU выбрать?
| GPU | VRAM | Цена от (в час, без НДС) | Типичное применение для дообучения |
|---|---|---|---|
| L4 | 24 GB | $0.74 | Эксперименты с QLoRA на небольших моделях |
| RTX 4090 | 24 GB | $1.11 | QLoRA для 7B-13B, быстрые эксперименты |
| A40 | 48 GB | $0.74 | LoRA для 7B, QLoRA для 32B, экономичные длительные запуски |
| L40S | 48 GB | $1.36 | LoRA для 7B-13B, QLoRA для 32B |
| RTX PRO 6000 | 96 GB | $3.11 | LoRA для 32B, QLoRA для 70B |
| A100 | 80 GB | $2.24 | LoRA для 13B, QLoRA для 70B, зрелая программная поддержка |
| H100 | 80 GB | $4.99 | Длительное обучение, где важна скорость |
| H200 | 141 GB | $6.61 | LoRA на крупных моделях, полное обучение небольших моделей |
| B200 | 180 GB | $9.99 | Самые тяжёлые задачи обучения, новейшее поколение |
Когда памяти достаточно, выбор сводится к соотношению скорости и почасовой цены. При обучении трансформеров H100 работает значительно быстрее A100; поскольку задача завершается раньше, в итоге она может обойтись дешевле, несмотря на более высокую почасовую ставку. Лучший способ это проверить — запустить одинаковый небольшой тест на обеих картах и сравнить число обработанных токенов в секунду.
Подготовка данных: невидимая половина обучения
Часы работы GPU стоят дорого, поэтому завершите как можно больше подготовки данных до запуска GPU-сервера.
- Определитесь с форматом: пары «инструкция — ответ», формат чата или обычный текст; он должен соответствовать шаблону, который ожидает ваша библиотека обучения.
- Очистите данные: удалите дублирующиеся, повреждённые или слишком короткие примеры. Меньший объём чистых данных часто даёт лучший результат, чем большой объём «грязных».
- Проверьте длину последовательностей: выберите разумную максимальную длину, в которую укладывается большинство примеров. Излишне длинные последовательности увеличивают память под активации и время обучения.
- Выделите валидационную выборку: оставьте часть данных вне обучения, чтобы понять, действительно ли модель становится лучше.
- Удалите персональные данные: уберите или анонимизируйте имена, номера телефонов, идентификационные номера и подобные сведения в обучающих данных.
Чекпойнты и S3
На GPU-серверах CloudRUX временный диск удаляется при остановке сервера. Чтобы не потерять результаты многочасового обучения, регулярно сохраняйте чекпойнты и адаптеры LoRA на постоянный том или в объектное хранилище S3.
Практичная схема выглядит так: скрипт обучения сохраняет чекпойнт через заданное число шагов, чекпойнты копируются в S3-совместимый бакет, а по завершении обучения вы оставляете только лучший адаптер и отчёт об оценке. Адаптеры LoRA обычно намного меньше базовой модели, поэтому их хранение обходится недорого.
Такой подход добавляет и гибкости: можно начать обучение на одной карте и при необходимости продолжить его с чекпойнта на другой.
Как держать расходы под контролем
- Начните с небольшой модели: проверьте конвейер данных и гиперпараметры на модели 7B-8B с недорогой картой.
- Начните с QLoRA: если результаты достаточно хороши, более мощные карты вам не понадобятся.
- Проведите короткий замер: измерьте скорость в токенах в секунду и рассчитайте общее время и стоимость.
- Выключайте простаивающие серверы: если ваши данные хранятся на постоянном хранилище, остановка сервера безопасна.
- Используйте готовые шаблоны: шаблоны PyTorch и CUDA сокращают оплачиваемые часы, уходящие на драйверы и библиотеки. Собственный образ контейнера позволяет полностью зафиксировать окружение.
Например, если QLoRA-обучение модели 8B на A40 занимает 20 часов: 20 x 0.74 = $14.80 + НДС. Та же задача с LoRA на A100 обычно обойдётся дороже из-за более высокой почасовой цены, но поскольку она завершится быстрее, разница может оказаться меньше, чем вы ожидаете.
Расположение данных и KVKK
GPU-серверы CloudRUX работают в дата-центрах нашего партнёра за рубежом. Если обучающие данные содержат персональные данные, это может считаться трансграничной передачей по KVKK — турецкому закону о защите персональных данных. Поэтому мы рекомендуем готовить обучающие данные без персональных данных или анонимизировать их. Если без персональных данных не обойтись, мы поможем с процедурами стандартного договора.
Часто задаваемые вопросы
Модель, обученная с LoRA, так же хороша, как полностью обученная?
Для многих бизнес-задач — например, письма в определённом стиле, классификации или освоения отраслевой терминологии — методы на основе LoRA могут приблизиться к полному обучению. Результат зависит от ваших данных и задачи, поэтому лучше начать с небольшого теста.
Можно ли обучить модель 13B на карте с 24 GB?
С QLoRA, gradient checkpointing и разумной длиной последовательности это часто возможно, но впритык. Для более длинных последовательностей или больших батчей карта на 48 GB даёт более комфортный запас.
Значения VRAM в таблице точные?
Нет, это приблизительные значения для первичного планирования. Реальное потребление зависит от длины последовательности, размера батча, ранга LoRA и версий библиотек.
Где сохранить модель после обучения?
Временный диск удаляется при остановке сервера, поэтому сохраняйте модель и адаптеры на постоянный том или в объектное хранилище S3.
Дообучение на GPU-серверах CloudRUX
Сервис GPU CloudRUX работает в режиме раннего доступа: карты от L4 до B200, готовые шаблоны PyTorch/CUDA, доступ по SSH и через Jupyter, электронные счета-фактуры в Турции и поддержка инженеров на русском и турецком языках. Загляните на нашу страницу GPU-облака, чтобы подобрать карту под размер модели и метод обучения, или свяжитесь с нами, чтобы вместе обсудить план обучения и получить коммерческое предложение.



