744 миллиарда — это не шутка. Даже в 2 бита
Когда я впервые увидел цифру 744B в названии модели, подумал: «Ну всё, приехали». Обычный энтузиаст с четырьмя RTX 3090 (как у меня) может запустить что-то около 70-100B в 4 бита. А тут — семьсот сорок четыре! Даже если сжать каждый параметр до двух бит, модель всё равно весит ~186 ГБ в памяти (веса + кэш). На 4×3090 (по 24 ГБ) — это 96 ГБ VRAM. Без оффлоуда экспертов на CPU — никуда. И вот мы здесь, на старте эксперимента.
Команда Zhipu AI выпустила GLM-5.2 с тем же 744B, что и GLM-5 первой версии, но с улучшенным пост-тренингом. Главный вопрос: можно ли его запихнуть в 96 ГБ VRAM? И если да, то как быстро он будет отвечать?
Настройка: unsloth, CPU threads и offload expert — наши лучшие друзья (или враги)
Для запуска я использовал связку llama.cpp (коммит от 15 июня 2026) с собственным билдом под CUDA 12.4. Модель заквантована в формате IQ1_M — это экстремальное 2-битное квантование, где один бит хранит основную информацию, а маргинальный (M) добавляет немного точности. Но именно тут кроется первая засада: IQ1_M — очень разреженный формат. Он экономит память, но жертвует вычислительной эффективностью.
Конфигурация: 4× RTX 3090 (96 GB VRAM), Ryzen 9 7950X (32 потока), 128 GB DDR5-6000. Модель загружена с offload expert = 32 (все эксперты на CPU, кроме одного на GPU), количество CPU threads = 16, batch = 1 (поскольку моделб MoE и batch > 1 не даст прироста).
В ранних тестах IQ2 я получал 100 токенов/с на Qwen3-30B, но здесь — 744B. Первая же инференция показала: prefill — 0.5 токенов/с, decode — 0.3 токенов/с. Это почти «медленный танец».
Бенчмарки: IQ1_M vs IQ2 — кто быстрее? (спойлер: оба медленные, но по-разному)
Я прогнал несколько тестов: MMLU (5-shot), HumanEval, GSM8K, и синтетический тест на генерацию русского текста с логикой (вроде «напиши функцию на Python, которая...»).
| Тест | GLM-5.2 744B IQ1_M (4×3090) | GLM-5-Q2 (4×3090, 2 бита) |
|---|---|---|
| MMLU (pro) | 73.1% | 75.4% |
| HumanEval (pass@1) | 34.2% | 36.8% |
| GSM8K (5-shot) | 68.9% | 70.1% |
| Скорость (decode, tokens/s) | 0.28 | 0.31 |
Разница в качестве минимальна (в пределах погрешности), но скорость — пытка. 0.28 токена в секунду — это почти 4 секунды на слово. Для сравнения: GLM-5-Q2 (обычное 2-битное квантование с группой в 32) на тех же картах даёт 0.31 токен/с — не сильно быстрее. Зато GLM-5-Q2 против GLM-4.7-Q4 показывает, что более новая модель выигрывает в логике, но проигрывает в скорости на слабом железе.
Почему IQ1_M не ускорил вывод?
В теории IQ1_M должен занимать меньше памяти => меньше данных передаётся => быстрее. На практике — нет. Вот почему:
- Разреженность и оверхед. IQ1_M хранит веса не как компактные 2-битные числа, а как разреженные матрицы с битовыми масками. Декодирование одного веса требует больше операций, чем обычный 2-битный IQ2.
- Пропускная способность памяти — не единственный лимит. У 4×3090 общая пропускная способность ~4*936 ГБ/с = 3744 ГБ/с. Но модель оффлоудит большую часть экспертов на CPU, где шина PCIe 4.0 x16 даёт 32 ГБ/с. Даже если весь вес модели помещается в VRAM (после оффлоуда остаётся ~20 ГБ), обмен данными между GPU и CPU через offload превращается в узкое место.
- MoE-архитектура. У GLM-5.2 744B — 64 эксперта, из которых 2 активны на каждом токене. При оффлоуде неактивных экспертов каждый шаг требует загрузки новых экспертов с CPU в VRAM. Даже с prefetching в unsloth это занимает миллисекунды, которые суммируются.
- Batch = 1. IQ1_M оптимизирован под пакетную обработку, но при последовательной генерации (batch=1) выигрыша нет — наоборот, дополнительные накладные расходы на декодирование убивают производительность.
Совет из опыта: не используйте IQ1_M для моделей с 100B+ параметров на consumer GPU. Лучше возьмите обычный IQ2 (или IQ2_XXS) и потерпите чуть меньшее качество, но без оверхеда.
Сравните с запуском GLM-4.5-Air на 48 ГБ RAM — там тоже были компромиссы, но скорость хотя бы вменяемая. А тут — 0.3 токен/с. Это уровень эмуляции Commodore 64, а не интерактивного чата.
Альтернативы и кто выигрывает от такой экстремальной квантизации
Если ваша цель — получить максимальное качество на ограниченном железе, то лучше сразу смотреть в сторону GLM-5.2 с IQ2 и offload только нескольких экспертов (скажем, 4-8). Или, как вариант, использовать unsloth с динамическим квантованием, которое подгружает только активные веса. Но unsloth пока не поддерживает 2-битные форматы, только 4- и 8 битные.
Параллельно я тестировал ik_llama.cpp на Qwen3 MoE — там удалось выиграть 40% скорости за счёт оптимизации загрузки экспертов. Но на GLM-5.2 этот форк не дал прироста, потому что модель не поддерживает его кэш-функции.
Кому всё это нужно? Энтузиастам, которые хотят пощупать «большую» модель локально, даже если каждый токен будет генерироваться 4 секунды. Для прототипирования, запуска пакетного анализа (где скорость не критична), или для демонстрации возможностей локального AI без интернета. Никакого продакшена.
Ещё момент: на 3×3090 я уже запускал 235B модель — это было на грани, но 744B — это уже за гранью.
В итоге: IQ1_M — это интересный эксперимент, но не более. Если вы хотите реально работать с GLM-5.2 744B — берите кластер на 8×H100 или хотя бы 8×RTX 5090 (через NVSwitch). Или дождитесь, когда unsloth начнёт поддерживать 2-битное квантование. А пока — остаётся только мечтать, глядя на 0.3 токен/с.
Лично я переключаюсь обратно на GLM-5-Q2 на 4×3090 — там хотя бы 0.8 токен/с и осмысленный диалог. Иногда лучше меньшее качество, чем адское ожидание.