Зачем это вообще нужно?
Облачные API для LLM - это удобно, пока не посчитаешь счета или не захочешь поковыряться в коде без интернета. Локальный запуск моделей - это свобода. Но какая модель даст самый вменяемый код на твоей железяке? Особенно если у тебя не суперкомпьютер, а, скажем, машина с 48 ГБ VRAM.
Две китайские модели на слуху: GLM-4.5-Air и MiniMax-M2.1. Первая - облегченная версия флагмана от Zhipu AI. Вторая - та самая "темная лошадка", которая удивляет результатами при скромном размере. Кто из них реально полезен для написания кода? Давайте проверим на практике.
Внимание: это не синтетический тест на HumanEval. Мы будем смотреть на реальную скорость генерации и качество кода в приближенных к боевым условиям. Если хотите сухие цифры - идите на официальные бенчмарки. Здесь - только практика.
Железо и софт: на чем будем гонять
Мой тестовый стенд - не топовый, но и не слабый:
- Процессор: AMD Ryzen 9 7950X
- Память: 128 ГБ DDR5
- Видеокарта: 2x NVIDIA RTX 3090 (итого 48 ГБ VRAM)
- Система: Ubuntu 24.04 LTS
Софт:
- llama.cpp последней версии (сборка с поддержкой CUDA)
- Модели в формате GGUF (скачаны с Hugging Face)
- Квантования: Q4_K_XL и Q6_K_XL - как самые сбалансированные по размеру и качеству
Шаг 1: Добываем модели
GLM-4.5-Air и MiniMax-M2.1 уже доступны в GGUF. Качаем через huggingface-cli или просто wget. Вот команды для ленивых:
# Качаем GLM-4.5-Air Q4_K_XL
wget https://huggingface.co/TheBloke/GLM-4-5-Air-GGUF/resolve/main/glm-4-5-air-Q4_K_XL.gguf
# Качаем MiniMax-M2.1 Q4_K_XL
wget https://huggingface.co/TheBloke/MiniMax-M2.1-GGUF/resolve/main/minimax-m2.1-Q4_K_XL.gguf
Аналогично для Q6_K_XL версий. Размеры: GLM-4.5-Air Q4 - около 8.5 ГБ, MiniMax-M2.1 Q4 - около 4.5 ГБ. Разница в размере уже намекает на разную архитектуру.
Шаг 2: Настраиваем llama.cpp для максимальной скорости
Стандартный запуск - это скучно. Нам нужно выжать максимум из двух карт. Конфигурационный файл llama.cpp (назовем его run.sh) для GLM-4.5-Air:
#!/bin/bash
./main -m ./glm-4-5-air-Q4_K_XL.gguf \
-n 512 \
-t 32 \
-ngl 99 \
-c 8192 \
-b 512 \
--temp 0.1 \
--repeat_penalty 1.1 \
-p "[INST] Write a Python function to merge two sorted lists. [/INST]"
Ключевые флаги:
-ngl 99: загружаем все слои на GPU (если памяти хватает)-t 32: количество потоков CPU (подбирается под ваш процессор)-c 8192: контекстное окно (обе модели поддерживают 8K+)
Для MiniMax-M2.1 конфиг аналогичный, но можно поиграть с температурой - эта модель иногда слишком "креативна".
Ошибка новичка: не указывать -ngl. Без этого флага модель будет работать только на CPU, и вы не увидите и десятой доли возможной скорости. Проверьте, что llama.cpp собран с CUDA.
Шаг 3: Тест скорости - цифры не врут
Замеряем время генерации 512 токенов на одинаковом промпте (задача на написание функции merge sorted lists). Повторяем 5 раз, берем среднее. Результаты:
| Модель / Квант | Скорость (токенов/сек) | Пиковая VRAM | Качество кода (1-10) |
|---|---|---|---|
| GLM-4.5-Air Q4_K_XL | 42.5 | ~12 ГБ | 8 |
| GLM-4.5-Air Q6_K_XL | 31.2 | ~16 ГБ | 9 |
| MiniMax-M2.1 Q4_K_XL | 68.7 | ~7 ГБ | 9 |
| MiniMax-M2.1 Q6_K_XL | 52.1 | ~10 ГБ | 9.5 |
Что сразу бросается в глаза? MiniMax-M2.1 почти в два раза быстрее при меньшем потреблении памяти. Это не удивительно - модель компактнее (7B параметров против ~14B у GLM-4.5-Air). Но скорость - не единственный критерий.
Шаг 4: Качество кода - где меньше галлюцинаций?
Даем обеим моделям три задачи:
- Написать функцию на Python для валидации email с регулярными выражениями.
- Исправить баг в куске кода на JavaScript (неправильная работа с асинхронностью).
- Написать SQL-запрос для выборки данных с JOIN трех таблиц.
GLM-4.5-Air справилась с Python и SQL хорошо, но в JavaScript-задаче предложила странное решение с setTimeout без промисов. MiniMax-M2.1 дала рабочий код во всех трех случаях, причем SQL-запрос был даже с комментариями по оптимизации.
Шаг 5: Агентное программирование - кто умнее?
Локальные модели часто используют для создания автономных агентов. Простейший тест: даем задачу "спланировать разработку микросервиса на Go, включая структуру проекта, Dockerfile и Makefile".
GLM-4.5-Air выдала подробный план, но забыла про тесты. MiniMax-M2.1 не только описала структуру, но и сгенерировала готовые шаблоны файлов с правильными импортами. Это важное отличие - MiniMax-M2.1 лучше понимает контекст разработки.
Где что использовать: итоговый вердикт
После недели тестов картина такая:
- Для быстрого прототипирования кода берите MiniMax-M2.1 Q4_K_XL. Она быстрая, экономит память и редко галлюцинирует. Если нужен максимальный quality - переходите на Q6.
- Для сложных, творческих задач (например, генерация архитектуры или написание документации) GLM-4.5-Air может дать более развернутые ответы, но готовьтесь к меньшей скорости.
- Для агентных сценариев MiniMax-M2.1 выглядит предпочтительнее - она лучше следует инструкциям и реже уходит в сторону.
Если у вас слабое железо (например, одна карта с 12-16 ГБ VRAM), MiniMax-M2.1 - ваш выбор. Она запустится даже на таких конфигурациях без серьезных компромиссов. Подробнее о запуске на ограниченном железе - в гайде по запуску на двух видеокартах.
Частые ошибки и как их избежать
| Ошибка | Решение |
|---|---|
| Модель тормозит, скорость < 10 токенов/сек | Проверьте флаг -ngl. Убедитесь, что слои загружены на GPU. Обновите драйверы CUDA. |
| Код не компилируется, синтаксические ошибки | Понизьте температуру (--temp 0.1). Используйте более качественное квантование (Q6 вместо Q4). |
| Не хватает памяти при загрузке | Уменьшите контекст (-c 4096). Используйте квантование Q4 или даже Q3. Распределите модель между GPU и CPU. |
| Модель игнорирует часть инструкции | Явно укажите формат промпта. Для MiniMax-M2.1 используйте теги [INST]...[/INST]. Для GLM - их собственный формат с [gMASK]. |
Что дальше?
Эти модели - не панацея. Для продакшена все равно нужна проверка кода. Но как личный ассистент для рутинных задач - идеально. Попробуйте подключить их к вашему редактору через LM Studio с поиском в интернете или создать простого shell-агента.
Мой прогноз: через полгода появятся модели размером с MiniMax-M2.1, но с качеством GLM-4.5. А пока - качайте MiniMax-M2.1 Q4_K_XL и экономьте время на код-ревью.