Руководство по рабочим нагрузкам GPU
Сколько VRAM графического процессора вам действительно нужно?
Практический бюджет памяти для инференса, тонкой настройки, генерации изображений и видеорабочих нагрузок — от 24 GB до 192 GB.
Автор: AnchorGPU · Обновлено · 6 мин чтенияVRAM — это бюджет, а не метка модели
Память GPU расходуется несколькими независимыми категориями: веса модели, кэш KV для вывода, временные активации, рабочие области фреймворка, кэш аллокатора и — при обучении — градиенты и состояние оптимизатора. То, что модель помещается в одной конфигурации, не гарантирует, что она поместится при более длинном контексте, большем размере пакета, другой точности или большем числе одновременных запросов.
Планируйте исходя из точной ревизии модели и конфигурации среды выполнения. Обозначения вроде 7B, 13B или 70B описывают масштаб параметров, а не общий объем оперативной памяти, поэтому их никогда не следует универсально сопоставлять с GPU.
Сначала оцените исходные веса
В качестве явно гипотетического примера предположим, что модель имеет ровно 13 миллиардов параметров и хранит каждый параметр в 16-битном формате. Объём хранения только весов составляет 13,000,000,000 × 2 байт = 26,000,000,000 байт, или около 24.2 GiB. Это число исключает все прочие выделения памяти, поэтому оно является нижней границей, а не рекомендацией по GPU.
Квантизация может уменьшить объём хранения весов, но реальный объём также включает масштабы, метаданные, буферы деквантизации, дублированные тензоры и рабочие области времени выполнения. Используйте формат, создаваемый фактическим загрузчиком, а не делите количество параметров на номинальную битовую ширину и не считайте результат окончательным.
Инференс добавляет KV-кэш и рабочую память
Авторегрессивный вывод сохраняет тензоры ключей и значений для активных последовательностей. Потребность в KV-кэше зависит от архитектуры модели, точности кэша, количества параллельных последовательностей и числа активных токенов в этих последовательностях. Увеличение максимального контекста или параллелизма может исчерпать память даже при успешной загрузке весов.
Временные активации, рабочие области внимания, скомпилированные ядра, коммуникационные буферы и аллокатор фреймворка потребляют дополнительную память. vLLM сообщает доступную емкость KV-кэша GPU и расчетный параллелизм для настроенной длины последовательности; рассматривайте эти стартовые цифры как данные для планирования, а затем воспроизведите репрезентативные запросы перед запуском производственной нагрузки.
Обучение имеет другую структуру памяти
Тонкая настройка добавляет градиенты, состояние оптимизатора, сохранённые активации, а иногда и дополнительные полноточные копии. Их точный размер зависит от оптимизатора, политики точности, набора обучаемых параметров и стратегии шардирования, поэтому единый множитель для инференса вводит в заблуждение.
DistributedDataParallel реплицирует состояние обучения, необходимое каждому рабочему процессу; он не превращает несколько GPU в единый непрерывный пул памяти. Fully Sharded Data Parallel может распределять параметры, градиенты и состояния оптимизатора между рабочими процессами, а контрольные точки активации сокращают память сохранённых активаций за счёт повторного вычисления выбранной работы при обратном проходе. Оба метода обменивают простоту или вычисления на память.
Измерьте конфигурацию, которую будете запускать
Проверьте загрузку модели и полный репрезентативный запрос инференса или шаг обучения, включая обновление оптимизатора, с точными настройками фреймворка, точности, контекста, размера пакета и параллелизма. Зафиксируйте пиковую выделенную и зарезервированную память, затем повторите с реалистичной конкурентностью или накоплением градиента. Оставляйте операционный запас вместо стремления использовать последний доступный байт.
Выбирайте GPU с большим объёмом памяти, когда измеренный пик нельзя безопасно уменьшить. Добавляйте GPU только тогда, когда программное обеспечение явно распределяет модель или рабочую нагрузку, а характеристики предоставленного межсоединения известны. Повторяйте измерение после любого изменения модели, среды выполнения, квантования, контекста или размера пакета.
Источники и редакционный метод
Официальная документация подтверждает технические пояснения. Рекомендации по оборудованию — это наша интерпретация, зависящая от рабочей нагрузки, а не измеренная гарантия производительности.
vLLM — параллелизм и масштабирование ↗PyTorch — FullyShardedDataParallel ↗PyTorch — контрольные точки активации ↗