Архитектура «вычислений за ноль параметров»
NVIDIA Nemotron Labs выпустила Dory 1.0 4B — компактную модель с уникальной особенностью: её средние слои образуют общий блок, который можно применять к каждому токену 1, 2, 3 или 4 раза. Это позволяет использовать один и тот же чекпоинт (весы модели) для работы с четырьмя разными бюджетами вычислений. Ключевое преимущество: дополнительные циклы (loops) увеличивают вычислительную сложность, но не добавляют новых параметров. Модель не требует переобучения для переключения между режимами «быстро/неточно» и «медленно/точно».
Технические детали запуска
Для работы с Dory требуется специфическая ветка llama.cpp, так как официальная поддержка модели находится в стадии черновика (draft PR). NVIDIA зафиксировала конкретный коммит в репозитории brianchmielNV/llama.cpp (хэш 98a74c97), который необходимо использовать для корректной загрузки архитектуры. Модель доступна в формате GGUF размером 3.67 ГБ (квантование Q5_K_M) с хэшем SHA-256 96080be4....
Процесс запуска включает:
- Клонирование и сборку
llama-serverиз зафиксированной ветки. - Загрузку файла
NVIDIA-Nemotron-Labs-Dory1.0-4B-Q5_K_M.ggufс Hugging Face. - Валидацию хэша файла для исключения ошибок загрузки.
Влияние циклов (Loops) на производительность
В ходе тестирования оценивалось, как увеличение количества проходов по общим слоям влияет на скорость декодирования, потребление памяти и точность ответов. Модель использует режим кэширования KV-памяти, который меняется в зависимости от количества циклов. Ниже приведены ключевые метрики, которые измеряются в процессе работы с моделью:
| Параметр | Значение / Описание |
|---|---|
| Размер модели (GGUF Q5_K_M) | 3.67 GB |
| Количество циклов (Loops) | 1, 2, 3 или 4 (выбирается пользователем) |
| Бэкенд сборки | CUDA (для GPU) или Metal (для Apple Silicon) |
| Тестовый набор | GSM8K (математические задачи) |
| Измеряемые метрики | Скорость декодирования, время на решение задачи, длина ответа, точность |
Почему это важно для разработчиков
Dory 4B демонстрирует новый подход к оптимизации инференса. Разработчики могут динамически выбирать уровень вычислительных затрат в зависимости от доступных ресурсов и требуемой точности. Например, для простых запросов можно использовать 1 цикл (максимальная скорость), а для сложных логических задач — 4 цикла (максимальная точность), не меняя при этом саму модель. Это особенно актуально для edge-устройств и серверов с ограниченным бюджетом вычислений, где важно максимизировать качество ответа на каждый ватт энергии или доллар затрат на GPU.
Источник: MarkTechPost ↗
