Логотип CloudRUX
    Datacenter 1
    Datacenter 2
    Datacenter 3
    Стратегия

    Подбор GPU и VRAM для дообучения LLM: LoRA, QLoRA и полное обучение

    Инженерная команда CloudRUX
    8 мин

    Прежде чем дообучать языковую модель на своих данных, важно понять, на каком 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 выбрать?

    GPUVRAMЦена от (в час, без НДС)Типичное применение для дообучения
    L424 GB$0.74Эксперименты с QLoRA на небольших моделях
    RTX 409024 GB$1.11QLoRA для 7B-13B, быстрые эксперименты
    A4048 GB$0.74LoRA для 7B, QLoRA для 32B, экономичные длительные запуски
    L40S48 GB$1.36LoRA для 7B-13B, QLoRA для 32B
    RTX PRO 600096 GB$3.11LoRA для 32B, QLoRA для 70B
    A10080 GB$2.24LoRA для 13B, QLoRA для 70B, зрелая программная поддержка
    H10080 GB$4.99Длительное обучение, где важна скорость
    H200141 GB$6.61LoRA на крупных моделях, полное обучение небольших моделей
    B200180 GB$9.99Самые тяжёлые задачи обучения, новейшее поколение

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

    Подготовка данных: невидимая половина обучения

    Часы работы GPU стоят дорого, поэтому завершите как можно больше подготовки данных до запуска GPU-сервера.

    • Определитесь с форматом: пары «инструкция — ответ», формат чата или обычный текст; он должен соответствовать шаблону, который ожидает ваша библиотека обучения.
    • Очистите данные: удалите дублирующиеся, повреждённые или слишком короткие примеры. Меньший объём чистых данных часто даёт лучший результат, чем большой объём «грязных».
    • Проверьте длину последовательностей: выберите разумную максимальную длину, в которую укладывается большинство примеров. Излишне длинные последовательности увеличивают память под активации и время обучения.
    • Выделите валидационную выборку: оставьте часть данных вне обучения, чтобы понять, действительно ли модель становится лучше.
    • Удалите персональные данные: уберите или анонимизируйте имена, номера телефонов, идентификационные номера и подобные сведения в обучающих данных.

    Чекпойнты и S3

    На GPU-серверах CloudRUX временный диск удаляется при остановке сервера. Чтобы не потерять результаты многочасового обучения, регулярно сохраняйте чекпойнты и адаптеры LoRA на постоянный том или в объектное хранилище S3.

    Практичная схема выглядит так: скрипт обучения сохраняет чекпойнт через заданное число шагов, чекпойнты копируются в S3-совместимый бакет, а по завершении обучения вы оставляете только лучший адаптер и отчёт об оценке. Адаптеры LoRA обычно намного меньше базовой модели, поэтому их хранение обходится недорого.

    Такой подход добавляет и гибкости: можно начать обучение на одной карте и при необходимости продолжить его с чекпойнта на другой.

    Как держать расходы под контролем

    1. Начните с небольшой модели: проверьте конвейер данных и гиперпараметры на модели 7B-8B с недорогой картой.
    2. Начните с QLoRA: если результаты достаточно хороши, более мощные карты вам не понадобятся.
    3. Проведите короткий замер: измерьте скорость в токенах в секунду и рассчитайте общее время и стоимость.
    4. Выключайте простаивающие серверы: если ваши данные хранятся на постоянном хранилище, остановка сервера безопасна.
    5. Используйте готовые шаблоны: шаблоны 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-облака, чтобы подобрать карту под размер модели и метод обучения, или свяжитесь с нами, чтобы вместе обсудить план обучения и получить коммерческое предложение.

    Подберём решение для вашего бизнеса

    Бутиковые инженерные услуги для малого и среднего бизнеса. Начните с бесплатной оценки.

    Получить бесплатную консультацию