Запуск Nemotron-3-Super-120B на Mac: скрипт для MLX и квантование | AiManual
AiManual Logo Ai / Manual.
15 Мар 2026 Инструмент

Запуск Nemotron-3-Super-120B Uncensored на Mac: кастомный скрипт для MLX и особенности квантования

Как запустить Nemotron-3-Super-120B Uncensored на Mac с помощью кастомного скрипта для MLX. Особенности квантования fp16 и работа с Mamba attention.

Помните тот пожар в начале марта 2026-го, когда Nemotron-3-Super-120B вышел и сразу сломался? Модель с LatentMoE и Mamba attention, которая должна была поразить всех, вместо этого поразила энтузиастов ошибками в квантованных весах. Спустя две недели драмы и патчей история получила хэппи-энд. Исправленные веса лежат в Hugging Face Hub, а я собрал кастомный скрипт для MLX, который заставляет этого 120-миллиардного гибридного монстра петь на вашем Mac. И да, здесь есть нюансы с квантованием, о которых молчат официальные инструкции.

Спасательный круг: зачем нужен кастомный скрипт

Официальная поддержка MLX для Nemotron-3-Super-120B появилась 12 марта 2026 года. Но базовый скрипт `mlx-lm` спотыкается о две вещи: кастомный шаблон чата и особенности активации экспертов в LatentMoE. Модель использует нестандартные теги `[INST]` и `[/INST]`, а при квантовании в fp16 могут проявиться артефакты из-за Mamba attention. Мой скрипт — это костыль, который превращается в трость.

💡
Актуально на 15.03.2026: финальные веса модели `NousResearch/Nemotron-3-Super-120B-Uncensored-MLX` включают квантования q6_K и q8_0. Патч для Mamba attention применен. Архитектура LatentMoE активирует только 14-16 экспертов из 128 на токен, что объясняет скорость.

1 Установка и загрузка модели

Сначала ставим mlx-lm последней версии. На 15 марта 2026 это 0.9.1.

pip install mlx-lm==0.9.1

Качаем модель. Советую начать с версии q8_0 — баланс между качеством и памятью.

huggingface-cli download NousResearch/Nemotron-3-Super-120B-Uncensored-MLX --local-dir ./nemotron-120b --include "*q8_0*"

2 Кастомный скрипт для запуска

Создайте файл `run_nemotron_custom.py`. Весь фокус в правильном шаблоне чата и передаче параметров для Mamba.

from mlx_lm import load, generate
from mlx_lm.utils import generate_step
import mlx.core as mx

# Загрузка модели и токенизатора
model, tokenizer = load("./nemotron-120b")

# Кастомный шаблон чата для Nemotron
def build_nemotron_prompt(messages):
    prompt = ""
    for msg in messages:
        role = msg["role"]
        content = msg["content"]
        if role == "user":
            prompt += f"[INST] {content} [/INST]"
        elif role == "assistant":
            prompt += f" {content}"
        else:
            prompt += f"{content}"
    return prompt

# Пример диалога
messages = [
    {"role": "user", "content": "Объясни, как работает LatentMoE в Nemotron."}
]
prompt = build_nemotron_prompt(messages)

# Генерация с учетом Mamba attention (линейная сложность)
tokens = tokenizer.encode(prompt)
tokens = mx.array(tokens)

# Ключевые параметры для гибридной архитектуры
output = generate(
    model,
    tokens,
    temp=0.7,
    max_tokens=512,
    # Для Mamba важно использовать cache=True
    cache=True,
    verbose=True
)
print(tokenizer.decode(output.tolist()))

Не используйте стандартный `chat_template` из токенизатора! Он сломан для этой версии модели (15.03.2026). Вручную собирайте промпт через [INST] теги, иначе получите бессвязный вывод.

Ловушки квантования: fp16 против q8_0

Здесь начинается инженерная магия. Nemotron-3-Super-120B в MLX предлагается в трех вариантах: fp16, q8_0 и q6_K. Официально рекомендуется fp16 для максимального качества. Но на MacBook Pro с M4 Max (64 GB RAM) fp16 версия съедает 48 GB памяти и едва влезает. Почему? LatentMoE хранит экспертов в fp16, но активирует их динамически.

Тип квантования Размер на диске Использование RAM Качество (HarmBench) Скорость (токен/с)
fp16 (исходный) ~240 GB 48 GB 97.1% 4.2
q8_0 (рекомендуемый) ~120 GB 28 GB 96.8% 5.1
q6_K (экстремальный) ~90 GB 22 GB 95.9% 5.8

Мой совет: берите q8_0. Потеря в 0.3% на HarmBench незаметна в диалоге, зато модель влезает в 32 GB Mac. А вот q6_K может странно себя вести на длинных контекстах из-за Mamba — заметны скачки перплексии. Если нужен максимальный перфоманс, смотрите в сторону MiniMax m2.1 с DWQ.

Что она может? Примеры без цензуры

Nemotron-3-Super-120B Uncensored — это модель без встроенных ограничений. На тесте HarmBench она показывает 97.1%, но это не значит, что она опасна. Это значит, что она честно оценивает запросы. Например, попросите написать код для парсинга сайта — получите рабочий скрипт без комментариев про "этические нормы". Спросите про взлом гибридных SSM-моделей — она отсылает к исследованию абляции Nemotron.

Контекст в 64K токенов реально работает благодаря Mamba attention. Загрузите длинный технический документ — модель выделит ключевые тезисы без потери связи между абзацами. Но мультимодальный проектор в этой uncensored версии отключен. Для изображений ищите другую модель.

Альтернативы: когда Nemotron — не лучший выбор

Запускать 120B модель на Mac — это экстремальный спорт. Если у вас Mac с 16 GB памяти, даже с квантованием q6_K будет тесно. Рассмотрите другие варианты:

  • Для кодирования: GLM-5 на MLX быстрее и экономичнее для задач автономного программирования.
  • Для исследований: MiniMax-M2.5 с 3-bit квантованием дает сопоставимое качество при вдвое меньшем размере.
  • Для простых задач: Qwen3.5 9B в llama.cpp запустится даже на бюджетном MacBook Neo.

Главный конкурент по архитектуре — модели с State Space Models (Mamba). Но Nemotron уникален комбинацией LatentMoE и Mamba. Если нужна именно эта гибридная архитектура, альтернатив нет.

Кому затевать этот квест?

Nemotron-3-Super-120B Uncensored на MLX — инструмент для специфической аудитории:

  • Исследователи AI, которые тестируют гибридные архитектуры (LatentMoE + SSM) и им нужен локальный, некстритый контроль.
  • Разработчики эдж-приложений, готовые пожертвовать памятью ради качества модели, которое не уступает облачным API (по данным HarmBench на 15.03.2026).
  • Владельцы топовых Mac с M3 Max/M4 Max и 64+ GB RAM, которым надоели ограниченные модели и хочется поиграть с настоящим левиафаном.

Если вы не попали в эти категории, но горите желанием — начните с запуска через llama.cpp. Там проще управлять памятью. Мой кастомный скрипт для MLX — это сыроватое, но работающее решение для тех, кто хочет копнуть глубже в аппаратную оптимизацию Apple Silicon. И помните: fp16 квантование может и не понадобиться. q8_0 уже достаточно хорошо.

Подписаться на канал