Веса определяют модель и могут совместно использоваться её запросами; KV хранит результаты обработки конкретных префиксов. Одинаковые веса не означают одинаковый расход памяти при разной длине или числе одновременных последовательностей.
Почему это важно
Расчёт «модель 8B, значит нужно 16 GB» полезен только как первый нижний предел для конкретного двухбайтного представления. Он не устанавливает потребность процесса в памяти и не доказывает, что модель загрузится и обслужит заданные контексты на выбранной GPU.
Что подтверждено
Веса задают обучаемые преобразования модели: например, матрицы внимания, полносвязных слоёв и векторных представлений токенов. При обычном инференсе их используют вместе с входными токенами; размер текущего запроса не означает появление новых обученных параметров.
Граница применимости: Параметры трансформерной модели без обучения внутри запроса; конкретный набор тензоров зависит от архитектуры.
Для расчёта объёма данных считают реально хранимые значения, а не механически складывают все логические применения матриц. Если модель связывает входные векторные представления токенов и выходную проекцию одними весами, две роли могут ссылаться на один набор параметров; загрузчик при этом может создавать дополнительные представления.
Граница применимости: Связывание весов разрешено архитектурой и должно быть подтверждено артефактом; это не утверждение, что любая модель или библиотека хранит ровно одну физическую копию.
Ровно 8 000 000 000 независимо хранимых значений по два байта требуют 16 000 000 000 байт: 16 GB, примерно 14,90 GiB. Это нижняя оценка плотных данных весов; KV, временные тензоры, копии, служебные структуры и резерв памяти в неё не включены.
Граница применимости: FP16/BF16 по два байта, без разреженной или квантованной упаковки; точное N не заменяется округлённой меткой «8B» на имени модели.
Размер файла весов и размер тензоров после загрузки относятся к разным представлениям. Метаданные, упаковка и преобразование типов могут изменить расход; маленький квантованный файл не доказывает, что движок всё время держит и обрабатывает именно это представление без дополнительных буферов.
Граница применимости: Конкретный формат артефакта и путь загрузки; не предполагается обязательная распаковка любых квантованных весов целиком.
CUDA различает оперативную память хоста и память устройства, а передача данных и временные буферы имеют собственную стоимость. Единое адресное пространство само по себе не превращает память хоста в дополнительную локальную VRAM с той же стоимостью доступа.
Граница применимости: Только аппаратная модель памяти и передачи CUDA; размещение весов, поддержка их выгрузки и объём промежуточных буферов конкретной среды инференса этим источником не устанавливаются.
Один набор весов может обслуживать много последовательностей, но у разных префиксов появляется собственное K/V-состояние. Рост числа запросов или длины контекста не умножает автоматически общий набор параметров, зато меняет объём данных, нужных рядом с ним.
Граница применимости: Один загруженный экземпляр модели; независимые реплики могут иметь свои копии весов, а совместное использование префиксов — уменьшать дублирование KV.
Решение о размещении принимают по полному бюджету и измеренному пику процесса на нужных длинах и числе одновременных последовательностей. Даже если плотные веса меньше ёмкости GPU, оставшаяся память может не вместить KV, рабочие буферы и служебный запас; факт загрузки ещё не проверяет самый тяжёлый запрос.
Граница применимости: Приёмка конкретной модели и движка; сумма физических ёмкостей нескольких GPU сама по себе не доказывает доступное размещение каждого тензора.
Не путать
Число параметров отвечает на вопрос о значениях, а квантование — об их выбранном представлении. При уменьшении кодов нужно добавить метаданные метода и проверить реально загруженный тип данных.
Веса — одна из размещаемых областей, VRAM — ресурс устройства. Число значений, умноженное на размер одного значения, не включает всю нагрузку и не доказывает, что остатка VRAM хватит на запросы.
Что проверить
- Получите точное число и форму хранимых параметров вместо округлённой метки 8B.
- Сверьте совместное использование весов и фактические копии после загрузки.
- Укажите тип данных и упаковку каждого учитываемого класса тензоров.
- Запишите единицы: GB равен 10⁹ байт, GiB равен 2³⁰ байт.
- Не переносите размер файла напрямую в графу VRAM процесса.
- Добавьте KV, рабочие буферы, метаданные и запас к нижней оценке весов.
- Проверьте пик памяти и фактическое размещение при нужном контексте, пакете запросов и режиме выгрузки.
Первоисточники
Attention Is All You Need
Ashish Vaswani и соавторы · arXiv:1706.03762, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникTransformers 4.44.2: Generation
Hugging Face · документация Hugging Face Transformers v4.44.2, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникCUDA C++ Programming Guide
NVIDIA · CUDA C++ Programming Guide, CUDA 12.6, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникCloud TPU: bfloat16
Google Cloud · документация Google Cloud TPU, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникAWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration
Ji Lin и соавторы · arXiv:2306.00978, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникEfficient Memory Management for Large Language Model Serving with PagedAttention
Woosuk Kwon и соавторы · arXiv:2309.06180, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточник