Вопрос «влезет ли дообучение в мою видеокарту» обычно закрывают чужой таблицей из интернета. Проблема в том, что такие таблицы почти никогда не говорят, при какой длине контекста и при каком размере батча они получены, — а именно от этого расход и зависит сильнее всего.
Ниже — не таблица, а способ посчитать. Считать придётся вам, потому что цифра зависит от вашей конфигурации, а не от размера модели.
#Короткий ответ
Видеопамять под дообучение складывается из четырёх слагаемых, и только первое зависит от числа параметров. Для LoRA и QLoRA три из четырёх слагаемых малы, поэтому решает, как правило, первое — хранение замороженной базы — плюс активации, которые растут с длиной последовательности.
Практический ориентир: QLoRA снимает требование к памяти примерно вчетверо по сравнению с 16-битной базой, и именно это делает домашнее дообучение возможным. Разница методов разобрана в статье про LoRA и QLoRA.
#Как считать: четыре слагаемых
1. Замороженная база. Число параметров, умноженное на число байт на параметр. В 16 битах — два байта, в 4 битах — примерно полбайта плюс небольшой накладной расход на константы квантования. Модель на 3 миллиарда параметров: около 6 ГБ в 16 битах, около 1,7–2 ГБ в 4 битах.
2. Обучаемые адаптеры и их оптимизатор. Адаптеры — доли процента от базы. Состояния Adam — ещё несколько байт на каждый обучаемый параметр, а их мало. Суммарно это обычно сотни мегабайт, и в расчёте этим слагаемым можно пренебречь, пока ранг не задран.
3. Активации. Здесь и живёт вся неопределённость. Расход растёт примерно линейно по длине последовательности и по размеру батча. Чекпойнтинг активаций (gradient_checkpointing) уменьшает его в разы ценой повторного пересчёта — на домашнем железе его включают почти всегда.
4. Накладные расходы. Рабочие буферы библиотек, фрагментация, контекст CUDA. Закладывайте запас — планировать «впритык» бессмысленно, обучение упадёт на середине.
Формула, которой достаточно для прикидки:
VRAM ≈ (параметры × байт_на_параметр) + активации(длина × батч) + запас
#Расчётная таблица
Значения ниже получены по формуле выше при батче 1, чекпойнтинге активаций включённом и умеренной длине последовательности. Это оценка, а не измерение: удвойте длину контекста — и третье слагаемое вырастет соответственно.
| База | 16 бит, LoRA | 4 бита, QLoRA | Комментарий |
|---|---|---|---|
| 0,5–1B | ~2–3 ГБ | ~1,5–2 ГБ | помещается почти везде |
| 1,5–3B | ~5–8 ГБ | ~2,5–4 ГБ | нижняя граница домашнего обучения |
| 7–8B | ~16–20 ГБ | ~6–9 ГБ | LoRA требует карты от 24 ГБ |
| 12–14B | ~28–34 ГБ | ~10–14 ГБ | 16 ГБ уже впритык |
| 30B+ | вне домашнего сценария | ~24 ГБ и выше | аренда |
Первая колонка объясняет, почему QLoRA стала значением по умолчанию: без неё домашние карты закрывают только нижние две строки.
#Наши собственные ориентиры
Полезно сравнить расчёт с реальной постановкой. В пайплайне «второй копии» этого проекта записаны два конкретных потолка:
- Карта на 4 ГБ (архитектура Pascal, без bf16). Реалистично дообучается база на 0,5–1,5 миллиарда параметров в 4 битах. Это заявлено в самом скрипте обучения как ограничение, а не как осторожная оценка, и при нехватке памяти инструкция предлагает уменьшить базу и длину последовательности.
- Бесплатный облачный ускоритель на 16 ГБ. Комфортно помещается база на 1,5–3 миллиарда, а Colab-ноутбук проекта построен вокруг рассуждающей базы на 4 миллиарда с длиной последовательности 2048 и рангом 16.
Оговорка, без которой эти цифры вводят в заблуждение: полного прогона с замеренным результатом мы не публиковали. В самом ноутбуке написано, что обучение — опциональное усиление к системному промпту, и что начать можно вообще без него. Так что относитесь к этим числам как к границам конфигурации, а не как к отчёту об эксперименте.
#Что ещё влияет, кроме объёма памяти
Поддержка типов данных. На архитектурах без аппаратной поддержки bf16 обучение идёт в fp16 с масштабированием градиентов — это работает, но чувствительнее к настройкам. Новые карты умеют bf16, и это заметно упрощает жизнь.
Скорость памяти и вычислений. Влезло — не значит быстро. Слабая карта может считать шаг обучения так долго, что цикл «обучил — проверил — доработал» растянется на дни. Иногда честнее один раз арендовать.
Оперативная память и диск. База скачивается целиком, промежуточные чекпойнты пишутся на диск. Десятки гигабайт свободного места — не роскошь, а требование.
Процессор. На обучение почти не влияет: узкое место — видеокарта. Обучать на процессоре технически возможно и практически бессмысленно по времени.
Как считать память под запуск модели (это другая, более простая задача) — в статье про то, сколько нужно VRAM для локальной LLM. Что брать, если карту вы только выбираете, — в разборе выбора видеокарты для LLM.
#Порог, за которым домашнее обучение теряет смысл
Есть три ситуации, в которых покупать железо ради дообучения не стоит:
- Вы планируете один-два прогона. Аренда почасово обойдётся дешевле карты на порядки. Арифметика — в статье про стоимость аренды видеокарты для дообучения.
- Вам нужна база больше 7–8 миллиардов. Домашняя карта, на которой это удобно, стоит как несколько лет аренды.
- Вы ещё не проверили, нужно ли вам дообучение вообще. Это самая частая и самая дорогая ошибка; рамка всего маршрута и его границы — в пилларе про свою модель и дообучение под себя.
Разумный режим для частного человека: обучать в облаке, запускать дома. Инференс требует в разы меньше памяти, чем обучение, и квантованная модель на пару гигабайт стартует на скромной карте. Инструмент, который делает домашний прогон реалистичным по скорости, разобран в гайде по Unsloth.
#Где интуиция подводит
«У меня 8 ГБ, значит, влезет модель на 8 миллиардов в 4 битах». Веса — да, около 4–5 ГБ. Но остаются активации, буферы и запас, а обучение — не запуск: оно требует заметно больше, чем те же веса при инференсе. Считайте все слагаемые.
«Уменьшу батч до единицы, и всё влезет». Батч единица — это уже отправная точка большинства домашних конфигураций. Дальше уменьшать нечего: следующий рычаг — длина последовательности, потом размер базы.
«Куплю вторую карту и сложу память». Для обучения это работает не автоматически: нужна поддержка распределённого режима в вашем стеке, и накладные расходы съедают часть выигрыша. Для одной модели, не влезающей в одну карту, это отдельная инженерная задача, а не покупка.
#Частые вопросы
#Можно ли дообучить модель на 8 ГБ видеопамяти?
Да, в QLoRA и на базе примерно до 3 миллиардов параметров, с батчем 1, включённым чекпойнтингом активаций и умеренной длиной последовательности. Модель на 7–8 миллиардов в 8 ГБ обучать не стоит: даже если запустится, вы будете балансировать на грани нехватки памяти весь прогон.
#Обучение на процессоре — вообще вариант?
Формально да, практически нет: разница по времени такова, что цикл проверки гипотез становится невозможным. Если видеокарты нет, дешевле и быстрее взять бесплатный облачный ускоритель на несколько часов, чем ждать сутки на процессоре.
#Сколько времени займёт обучение?
Честный ответ — не знаем, и никто не знает без вашей конфигурации. Время зависит от карты, размера базы, числа примеров, длины последовательности и числа эпох; разброс между слабой домашней картой и облачным ускорителем измеряется не процентами, а разами. Замерьте на десяти процентах датасета и умножьте.
#Что важнее: объём памяти или скорость карты?
Объём определяет, запустится ли обучение вообще, скорость — сколько итераций вы успеете сделать. Сначала объём: не влезло — не обучили. Но если вы планируете несколько циклов доработки датасета, медленная карта превратит проект в бесконечный.
#Хватит ли бесплатного облачного блокнота?
Для компактной базы и датасета в несколько сотен примеров обычно да. Ограничения там не по памяти, а по времени сессии: длинный прогон могут прервать. Поэтому сохраняйте промежуточные чекпойнты и держите датасет небольшим на первых итерациях.
#Вывод
Требования к железу считаются по формуле, а не берутся из таблицы: параметры × байт на параметр, плюс активации, плюс запас. Всё остальное — производные от этой арифметики.
Если у вас карта до 8 ГБ — ваш потолок это компактная база до трёх миллиардов в QLoRA, и этого достаточно для переноса стиля. Если нужна база крупнее или несколько прогонов — арендуйте, а домашнюю карту оставьте под запуск готовой модели: там требования в разы скромнее.