Энтузиаст запустил 75B-модель Nemotron на двух RTX 3090 с полным контекстом 262K токенов
Пользователь Reddit смог запустить 75-миллиардную модель NVIDIA Nemotron-Labs-3-Puzzle на двух видеокартах RTX 3090 с полным контекстным окном 262K токенов. Ключ успеха — W4A16-квантизация (4-битные эксперты, 16-битная активация), правильная настройка аллокатора памяти CUDA и использование PIECEWISE-графов. Достигнута скорость ~94 токена/сек для одного запроса и 255 токенов/сек суммарно для четырёх параллельных.
Демонстрирует практическую возможность запуска больших MoE-моделей на потребительском железе, что снижает барьер входа для экспериментов с SOTA-моделями и расширяет границы локального AI-деплоя.
Сообщество показывает, что возможно
Пользователь Reddit под ником ballzdeep поделился успешным запуском 75-миллиардной модели NVIDIA Nemotron-Labs-3-Puzzle-75B на двух потребительских видеокартах RTX 3090 — железе, которое формально не предназначено для таких масштабов.
Технические детали
Основа успеха — квантизованная версия W4A16, где эксперты MoE сжаты до 4 бит, общие слои и Mamba до INT8, а критичные компоненты (внимание, эмбеддинги) остаются в BF16. Итоговый размер модели — 41,48 ГБ, что умещается в 48 ГБ суммарной VRAM двух карт.
Ключевой прорыв — параметр PYTORCH_CUDA_ALLOC_CONF с порогом сборки мусора 0.6 и ограничением на размер блоков памяти. Это высвободило ~1 ГБ зарезервированной, но фрагментированной памяти, которую стандартный режим expandable_segments не мог вернуть.
Для ускорения декодирования использованы PIECEWISE CUDA-графы вместо полных — они захватывают только подграфы MoE/MLP (десятки мегабайт), оставляя слои Mamba и внимания в eager-режиме. Это дало скачок с 28 до 88+ токенов/сек для одиночного запроса.
Результаты
- N=1 (один запрос): 93,8 токена/сек при декодировании, ~3660 токенов/сек при префилле на промптах 4-8K
- N=4 (четыре параллельных запроса): суммарно 255 токенов/сек (по ~69 на поток), время до первого токена (TTFT) медиана 0,61 сек
- Полный контекст 262K токенов доступен, KV-кэш в INT8 занимает пул на 278K
- Тест Needle-in-Haystack на 52K пройден успешно
Карты работают без NVLink, через PCIe Gen4 ×8 с патчем BAR1-P2P от aikitoria для ускорения tensor-parallel all-reduce (даёт +8% для N=1, +6% для N=4).
Что это значит
Эксперимент показывает, что даже флагманские MoE-модели с сотнями миллиардов параметров можно запускать на локальном железе ценой умного сжатия и тонкой настройки фреймворка. Важно понимать: это не production-решение, а proof-of-concept для энтузиастов, но граница между «серверным» и «домашним» AI размывается.
Ключевые выводы
- W4A16-квантизация позволяет уместить 75B-модель в 48 ГБ потребительской VRAM
- Правильная настройка аллокатора памяти CUDA критична: стандартные режимы оставляют ~1 ГБ недоступной фрагментированной памяти
- PIECEWISE CUDA-графы дают 3× прирост скорости декодирования, захватывая только MoE/MLP и оставляя Mamba/внимание в eager
- Полный контекст 262K токенов достижим на двух 3090 благодаря INT8 KV-кэшу
- Tensor parallelism без NVLink работает через PCIe с патчем BAR1-P2P, давая +6-8% скорости
Автор: Юлия Тарасова · Источник: reddit.com
Это именно тот контент, ради которого стоит следить за AI-сабреддитами: живой эксперимент с подробным разбором, а не очередной «я запустил Llama по туториалу». Автор показал, как превратить пару потребительских карт в платформу для 75B-модели с полным контекстом четверть миллиона токенов — задача, которая ещё год назад казалась уделом облачных A100.
Особенно ценно, что он раскрыл хитрости: кастомный порог сборки мусора в CUDA-аллокаторе, PIECEWISE-графы вместо полных (иначе 24 ГБ не хватит), BAR1-P2P патч для ускорения без NVLink. Это не просто «работает у меня», а воспроизводимый рецепт для тех, кто хочет выжать максимум из домашнего железа. Конечно, для production это не годится — latency и throughput всё равно далеки от серверных сетапов, — но как proof-of-concept и площадка для прототипирования вполне рабочий вариант.
Комментарии