Перейти к содержанию
Новое AiManual теперь в MAX Подписаться
Публикация AiManual

Gemma 4 на RTX 5090: Почему agentic-сценарии не работают и при чём тут 4-битная квантизация

Практический тест Gemma 4 (31B) на RTX 5090 с NVFP4-квантованием: модель полностью проваливает создание игры Snake в agentic-цикле. Разбираем три причины отказа

Коротко

Что будет в материале

  1. 01

    Провал agentic-теста: Gemma 4 не пишет Snake на RTX 5090

  2. 02

    NVFP4: как 4-битная квантизация влияет на agentic-способности

  3. 03

    Архитектурные ограничения Gemma 4 для агентных сценариев

  4. 04

    Роль инструментов: opencode и hermes как фактор отказа

Прямой ответ: Gemma 4 (31B) на RTX 5090 с NVFP4-квантованием проваливает agentic-задачи из-за комбинации трёх факторов. Потеря точности при 4-битном сжатии разрушает связность рассуждений в многошаговых цепочках. Архитектура модели не оптимизирована под использование инструментов. Интеграция с фреймворками opencode и hermes даёт сбои при парсинге ответов квантизованной модели. Claude Sonnet через API решает те же задачи без проблем, что подтверждает: проблема не в сложности задания, а в конкретной связке железа, квантизации и софта.

Этот разбор построен на практическом тесте: задача - создание игры Snake с использованием инструментов, результат - полный отказ. Разберём каждый слой проблемы и дадим конкретные рекомендации по конфигурациям, которые работают.

Провал agentic-теста: Gemma 4 не пишет Snake на RTX 5090

Agentic-сценарий подразумевает, что модель не просто генерирует текст, а взаимодействует с инструментами: читает файлы, пишет код, запускает тесты, анализирует ошибки и итеративно исправляет их. Создание игры Snake - канонический тест такой способности. Модель должна спланировать структуру, сгенерировать код, проверить его работоспособность и внести правки.

Gemma 4 на RTX 5090 с NVFP4-квантованием этот тест завалила полностью. Модель не смогла выдать связный код даже после нескольких попыток с разными настройками промпта. Claude Sonnet через API справился с первой итерации - выдал рабочий Python-файл с pygame, который запустился без ошибок.

Условия эксперимента: железо, модель, квантизация

Конфигурация тестового стенда:

  • GPU: NVIDIA RTX 5090, 32 ГБ VRAM, драйвер 555.42.02
  • Модель: Gemma 4 (31B параметров), загружена через llama.cpp с бэкендом CUDA
  • Квантизация: NVFP4 - 4-битный формат с плавающей точкой, совместная разработка NVIDIA и Red Hat
  • Фреймворки: opencode v0.3.8 для оркестрации agentic-цикла, hermes v0.2.1 для парсинга вызовов инструментов
  • Параметры инференса: температура 0.1, top_p 0.95, контекстное окно 8192 токена, batch size 512

Модель полностью помещалась в VRAM RTX 5090. Скорость генерации достигала 45-50 токенов/с - отличный показатель для 31B-модели. Проблема была не в производительности, а в качестве вывода.

Результат: что пошло не так при генерации Snake

Модель демонстрировала три характерных паттерна сбоя:

1. Несвязный код. Gemma 4 генерировала синтаксически корректный Python, но логика программы рассыпалась: функции вызывались до объявления, переменные использовались без инициализации, игровой цикл не замыкался. Типичный фрагмент вывода:

def move_snake():
    head = snake[0]
    new_head = (head[0] + direction[0], head[1] + direction[1])
    snake.insert(0, new_head)
    snake.pop()
    return snake  # snake не определён в этой области видимости

2. Игнорирование инструкций инструментов. opencode ожидает от модели вызовы функций в формате JSON: {«function»: «write_file», «args»: {…}}. Gemma 4 в 7 из 10 случаев выдавала обычный текст с описанием того, что она «сейчас создаст файл», вместо структурированного вызова. Hermes не мог распарсить такие ответы, и цикл прерывался.

3. Потеря контекста. На третьем-четвёртом шаге agentic-цикла модель начинала повторять предыдущие ответы или добавляла код, не связанный с задачей - например, вставляла фрагменты HTML-разметки в Python-файл.

Claude Sonnet через API выполнил задание чисто: сгенерировал структурированный вызов write_file с полным кодом Snake, затем вызов run_tests для проверки, и после успешного запуска выдал финальный отчёт. Ни одного сбоя парсинга, ни одной логической ошибки.

NVFP4: как 4-битная квантизация влияет на agentic-способности

NVFP4 - новый формат 4-битного квантования с плавающей точкой, разработанный NVIDIA и Red Hat специально для RTX 50-й серии. В отличие от целочисленного INT4, формат с плавающей точкой сохраняет больший динамический диапазон, что теоретически снижает потери точности. На практике для agentic-задач этого недостаточно.

Ранее мы разбирали влияние квантования с учётом активаций на Gemma 3 4B: переход на 4 бита поднимал точность на GPQA с 23.2% до 27.8%, но увеличивал время инференса на 29%. Agentic-сценарии создают нагрузку другого рода - здесь критична не точность ответа на один вопрос, а стабильность на дистанции в 10-20 последовательных шагов.

Что такое NVFP4 и зачем она нужна на RTX 5090

NVFP4 использует 4 бита на вес: 1 бит под знак, 2 бита под мантиссу, 1 бит под экспоненту. Это даёт 16 возможных значений на параметр вместо 65536 у FP16. Сжатие в 4 раза позволяет загрузить 31B-модель в 32 ГБ VRAM RTX 5090 с запасом под KV-кэш и батчинг. Без квантизации та же модель потребовала бы около 62 ГБ в FP16 - за пределами возможностей карты.

Преимущества NVFP4 на RTX 5090:

  • Пропускная способность: до 50 токенов/с на 31B-модели против 12-15 токенов/с на FP16 с оффлоадингом в системную память
  • Энергоэффективность: TDP карты держится в пределах 350 Вт при полной загрузке тензорных ядер
  • Совместимость: драйверы NVIDIA обеспечивают прозрачную конвертацию без ручной калибровки

Цена - деградация качества, которая неравномерна по типам задач.

Цена сжатия: как 4 бита ломают связность рассуждений

Квантизация вносит шум в веса модели. Каждый параметр округляется до ближайшего из 16 значений - ошибка квантования составляет в среднем 3-5% от величины веса. В одношаговой задаче (вопрос-ответ) эта ошибка распределяется по миллиардам параметров и частично компенсируется избыточностью сети. В agentic-сценарии ошибка накапливается.

Механизм накопления ошибки в цепочке из 10 шагов:

  • Шаг 1: модель генерирует вызов инструмента с ошибкой квантования - допустим, вместо write_file парсится write_code
  • Шаг 2: фреймворк возвращает ошибку, модель получает её в контекст
  • Шаг 3: модель пытается исправиться, но шум в весах искажает already-noisy контекст - ответ становится менее точным
  • Шаги 4-10: ошибка растёт экспоненциально, модель теряет связность

Это объясняет наблюдаемые симптомы: повторения, потеря логики, неверные вызовы функций. Сравнение с разбором потери контекста у Qwen 3.6 27B показывает схожую картину - длинные диалоги и agentic-циклы вскрывают фундаментальные ограничения квантизованных моделей.

Архитектурные ограничения Gemma 4 для агентных сценариев

Даже без квантизации Gemma 4 не проектировалась как agentic-модель. Google оптимизировал линейку Gemma под эффективность инференса и качество одношаговых ответов - это видно по архитектурным решениям и стратегии обучения.

Ключевые ограничения:

  • Контекстное окно 8192 токена - для agentic-цикла с историей вызовов инструментов этого мало. Claude Sonnet работает со 100K+ токенов
  • Механизм внимания без алиби-позиционирования - модель хуже обобщает на длинные последовательности, выходящие за пределы обучающей выборки
  • Отсутствие специализированного обучения на function calling - в датасете Gemma 4 преобладают диалоги и инструкции, а не структурированные вызовы инструментов

Ранее мы тестировали Gemma 4 26B A4B на продуктивность для backend-задач: модель показала ~60 токенов/с и адекватную работу с OpenCode для серверного кода. UI/UX-сценарии уже проваливались. Agentic-задачи требуют ещё более высокого уровня связности - и здесь архитектурные ограничения становятся критичными.

Сравнение с Claude Sonnet: почему API-модель справляется лучше

Claude Sonnet обучен с применением Reinforcement Learning from Human Feedback (RLHF) и Constitutional AI - методов, которые включают оценку многошаговых взаимодействий с инструментами. Модель получает вознаграждение за корректные цепочки вызовов, а не только за финальный ответ.

Разница в подходах:

Характеристика Gemma 4 (31B) Claude Sonnet
Контекстное окно 8K токенов 100K+ токенов
Обучение на function calling Базовое Специализированное, RLHF
Формат вывода инструментов Текстовое описание Структурированный JSON
Стабильность на 10+ шагах Низкая Высокая
Инференс Локальный, 45-50 токенов/с Облачный API, ~30 токенов/с

Claude Sonnet выигрывает не за счёт размера или скорости, а за счёт целенаправленной оптимизации под agentic-паттерны. Gemma 4 может догнать конкурентов в следующем поколении - сравнение Gemma-4-26B-a4B с Qwen3.6-MoE показывает, что Google движется в этом направлении, но специализированной agentic-версии пока нет.

Роль инструментов: opencode и hermes как фактор отказа

Третий слой проблемы - интеграция. Opencode и hermes проектировались под модели с чётким следованием формату вызова инструментов. Gemma 4 в квантизованном варианте выдаёт ответы, которые не соответствуют ожидаемому контракту.

Как работают agentic-фреймворки с локальными моделями

Стандартный цикл взаимодействия:

  1. Фреймворк формирует промпт с описанием доступных инструментов и формата вызова
  2. Модель генерирует ответ - ожидается JSON с именем функции и аргументами
  3. Парсер (hermes) извлекает JSON из ответа модели
  4. Фреймворк выполняет вызов и возвращает результат модели
  5. Цикл повторяется до достижения цели

Узкие места в случае Gemma 4 + NVFP4:

  • Шаг 2: модель генерирует текст «Я создам файл snake.py с кодом игры», а не JSON {«function»: «write_file», …}
  • Шаг 3: hermes не находит JSON в ответе и возвращает ошибку парсинга
  • Шаг 4: фреймворк передаёт ошибку обратно, но модель не понимает, как её исправить - проблема усугубляется

Альтернативные инструменты, такие как vLLM с guided generation, принудительно ограничивают вывод модели допустимыми токенами. Это снижает вероятность ошибки формата, но не решает проблему логической связности кода. Тест Poolside Laguna S 2.1 показал, что модели, изначально спроектированные под agentic-циклы, выдают ноль JSON-ошибок даже при агрессивной квантизации - архитектура и обучение важнее инструментов.

Практические выводы: стоит ли запускать agentic-сценарии на RTX 5090 с Gemma 4

Связка RTX 5090 + Gemma 4 + NVFP4 работоспособна для задач, не требующих многошаговых рассуждений и вызовов инструментов: чат-боты, суммаризация, генерация отдельных функций по спецификации, код-ревью в один проход. Для agentic-сценариев эта конфигурация непригодна.

Три возможных пути решения:

  1. Сменить квантизацию. Переход на INT8 или FP8 повышает стабильность, но 31B-модель перестаёт помещаться в VRAM RTX 5090 - потребуется оффлоадинг в системную память, что снизит скорость до 8-12 токенов/с
  2. Сменить модель. Mistral 8x22B или Llama 3 70B с INT8-квантизацией показывают лучшие результаты в agentic-тестах, но требуют либо двух RTX 5090, либо оффлоадинга
  3. Использовать облачный API для agentic-задач, оставив локальный инференс для простых. Claude Sonnet или GPT-4 через API решают agentic-задачи надёжно и с приемлемой стоимостью

Альтернативы для локального agentic-инференса

Конфигурации, которые работают на RTX 5090:

  • Mistral 8x22B + INT8: помещается в 32 ГБ VRAM, показывает стабильные результаты на 5-7 шагах agentic-цикла, скорость 25-30 токенов/с
  • Gemma 4 26B A4B + Q6: наша альтернативная рекомендация - 6-битная квантизация даёт приемлемый баланс качества и размера. На Apple M5 Pro эта модель показывает 60 токенов/с и справляется с backend-задачами
  • vLLM с guided generation: принудительный контроль формата вывода снижает количество ошибок парсинга на 40-60% даже для квантизованных моделей

Для тех, кто рассматривает альтернативное железо, тест Strix Halo на Ryzen AI Max+ 395 даёт интересные цифры: 14.2 токен/с на Qwen 3.6-35B-A3B под 32 параллельными запросами. Мини-ПК за $1500 справляется с инференсом лучше, чем можно ожидать, но agentic-сценарии и здесь требуют осторожного подхода к квантизации.

Главный вывод этого теста: agentic-способности - самый жёсткий стресс-тест для квантизованных моделей. Если задача требует 10+ последовательных шагов с вызовами инструментов, 4-битное сжатие создаёт неприемлемый уровень ошибок независимо от формата квантования. Выбирайте модель и квантизацию под конкретный класс задач, а не под максимальную скорость инференса.

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