179 миллиардов параметров в 92 гигабайта. Как они это сделали?
GLM-4.7-REAP-50-W4A16 — это не просто очередная большая языковая модель. Это почти магический трюк: модель с 179 миллиардами параметров, которая умещается в 92 ГБ оперативной памяти. Для сравнения: оригинальная GLM-4.7 весит около 350 ГБ в формате FP16. Как они ужали её вчетверо? Два слова: экспорт-прунинг и INT4 квантование.
Чем эта модель отличается от обычной GLM-4.7?
| Параметр | GLM-4.7 (оригинал) | GLM-4.7-REAP-50-W4A16 |
|---|---|---|
| Параметры | ~179B | ~179B (после прунинга) |
| Эксперты | 64 | 32 (50% удалено) |
| Точность весов | FP16 (16 бит) | INT4 (4 бита) |
| Размер на диске | ~350 ГБ | ~92 ГБ |
| Минимальная RAM | >256 ГБ | ~100 ГБ |
Если вы пытались запустить огромные LLM на старом серверном железе, вы знаете: 350 ГБ — это уровень дорогого сервера. 92 ГБ — уже уровень топовой игровой видеокарты или AMD Strix Halo.
А что с качеством? Не превратили ли модель в овощ?
Вот самый важный вопрос. По заявлению разработчиков, модель сохраняет 97% оригинального качества на бенчмарках. На практике это значит: вы не заметите разницы в 95% случаев. Особенно если используете модель для RAG, анализа документов или генерации текста.
Но есть нюанс: эксперт-прунинг работает только с MoE-архитектурами. Если у вас обычная плотная модель — придётся использовать другие методы, вроде тех, что описаны в статье про квантизацию GGUF.
Внимание: INT4 квантование — это не то же самое, что Q4_K_M в GGUF. INT4 использует ровно 4 бита на вес без групповой квантизации. Это может давать небольшую потерю точности на сложных задачах.
Как запустить эту модель на своём железе?
1 Скачиваем модель с HuggingFace
Модель доступна на HuggingFace под названием THUDM/glm-4.7-reap-50-w4a16. Не пытайтесь скачивать через веб-интерфейс — 92 ГБ через браузер это пытка.
# Устанавливаем huggingface-hub если нет
pip install huggingface-hub
# Скачиваем модель (требуется ~100 ГБ свободного места)
python -c "from huggingface_hub import snapshot_download; snapshot_download(repo_id='THUDM/glm-4.7-reap-50-w4a16', local_dir='./glm-4.7-reap', local_dir_use_symlinks=False)"
Если у вас медленный интернет или мало места, можно скачивать выборочно:
# Только конфигурация и токенайзер
huggingface-cli download THUDM/glm-4.7-reap-50-w4a16 --local-dir ./glm-4.7-reap --include "*.json" "*.txt" "*.py" "tokenizer.*"
# Потом веса по частям
huggingface-cli download THUDM/glm-4.7-reap-50-w4a16 --local-dir ./glm-4.7-reap --include "*.safetensors"
2 Запускаем через vLLM
vLLM — самый эффективный способ запуска больших моделей на GPU. Он поддерживает INT4 квантованные модели через AWQ (Activation-aware Weight Quantization).
# Устанавливаем vLLM с поддержкой AWQ
pip install vLLM[awq]
# Запускаем сервер
python -m vllm.entrypoints.openai.api_server \
--model ./glm-4.7-reap \
--quantization awq \
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.95 \
--max-model-len 8192
Что здесь важно:
--tensor-parallel-size 2— распределяем модель между двумя GPU. Если у вас одна карта — уберите этот параметр.--gpu-memory-utilization 0.95— используем почти всю доступную память. Если система нестабильна, уменьшите до 0.9.--max-model-len 8192— максимальная длина контекста. Можно увеличить до 32768, но потребуется больше памяти.
3 Альтернатива: запуск через llama.cpp
Если у вас только CPU или вы хотите максимальную совместимость, конвертируем модель в GGUF. Но тут есть загвоздка: оригинальная модель уже в INT4, а GGUF Tool Suite может не поддерживать прямое преобразование.
# Пример конвертации через transformers
from transformers import AutoModelForCausalLM
import torch
# Загружаем модель
model = AutoModelForCausalLM.from_pretrained(
"./glm-4.7-reap",
torch_dtype=torch.float16,
device_map="auto"
)
# Сохраняем в формате, совместимом с llama.cpp
model.save_pretrained("./glm-4.7-reap-float16")
Потом используем convert.py из llama.cpp для создания GGUF файла. Но честно? Если у вас есть GPU — оставайтесь на vLLM. Он работает быстрее.
Сравнение с альтернативами: что выбрать вместо?
| Модель | Размер | Качество | Скорость | Кому подходит |
|---|---|---|---|---|
| GLM-4.7-REAP-50-W4A16 | 92 ГБ | 97% от оригинала | Высокая (INT4 на GPU) | У кого есть 1-2 мощные GPU |
| GLM-4.5-Air (Q3_K_M) | ~45 ГБ | Хорошее | Средняя | Для CPU или слабых GPU |
| Solar-Open-100B (Q4_K_M) | ~55 ГБ | Отличное | Средняя | Тем, кому нужна английская модель |
| Nanbeige 30B | ~20 ГБ | Достаточное | Высокая | Для быстрого прототипирования |
Практический пример: запускаем RAG-систему
Допустим, у вас есть 1000 PDF-документов и вы хотите построить систему вопрос-ответ. GLM-4.7-REAP справится лучше большинства моделей из-за большого контекстного окна.
from vllm import LLM, SamplingParams
# Инициализируем модель
llm = LLM(
model="./glm-4.7-reap",
quantization="awq",
tensor_parallel_size=2,
gpu_memory_utilization=0.9
)
# Готовим промпт с контекстом
prompt = """Используя следующий контекст, ответь на вопрос.
Контекст: {context}
Вопрос: {question}
Ответ: """
# Заполняем контекстом (до 8000 токенов)
context = "... ваш RAG-контекст ..."
question = "Какие основные преимущества технологии?"
full_prompt = prompt.format(context=context, question=question)
# Генерируем ответ
sampling_params = SamplingParams(temperature=0.1, max_tokens=500)
outputs = llm.generate([full_prompt], sampling_params)
print(outputs[0].outputs[0].text)
Совет: Для RAG используйте температуру 0.1-0.3. Это уменьшает «творчество» модели и заставляет её придерживаться контекста.
Кому подходит эта модель? А кому нет?
Берите GLM-4.7-REAP если:
- У вас есть 2x RTX 4090 или одна карта с 48+ ГБ памяти (A6000, RTX 6000 Ada)
- Нужна максимально умная китайская модель для бизнес-задач
- Работаете с длинными контекстами (10K+ токенов)
- Уже используете vLLM и не хотится переучиваться
Не берите если:
- У вас только CPU или слабая видеокарта — смотрите в сторону запуска LLM на старом железе
- Нужна исключительно английская модель — Solar или Llama подойдут лучше
- Работаете с реальным временем — 179B параметров даже в INT4 тормозят
- Нет 100 ГБ свободного места на диске
Что будет дальше? Прогноз на 2025
Экспорт-прунинг и INT4 квантование — это только начало. Уже сейчас тестируют NVFP4 от Nvidia — 4-битные floating point веса, которые должны быть точнее INT4. К концу года мы увидим модели размером с GPT-4, которые будут запускаться на одной потребительской видеокарте.
Мой прогноз: через год 200B-модели станут стандартом для локального запуска. А сегодняшние 7B-13B модели переместятся в категорию «лёгких» для мобильных устройств. Если у вас есть железо с 100+ ГБ памяти — GLM-4.7-REAP даст вам фору в полгода.
Остался последний вопрос: зачем вообще запускать такие монстры локально? Ответ прост: контроль. Никаких API-лимитов, никаких цен за токен, никаких отключений сервиса. Только вы, ваши данные и 179 миллиардов параметров, которые делают что вы сказали.