# GLM-5

GLM-5, выпущенная в феврале 2026 года компанией Zhipu AI (Z.AI), — это **смешанная экспертная модель (Mixture-of-Experts) с 744 миллиардами параметров** языковая модель, активирующая только 40 миллиардов параметров на токен. Она достигает лучшего в классе открытого исходного кода результата в задачах рассуждения, программирования и агентности — набирая 77,8% в SWE-bench Verified и конкурируя с передовыми моделями, такими как Claude Opus 4.5 и GPT-5.2. Модель доступна под **Лицензия MIT** на HuggingFace.

## Ключевые особенности

* **744B всего / 40B активно** — 256-экспертный MoE с высокоэффективной маршрутизацией
* **Лидерские показатели в программировании** — 77,8% в SWE-bench Verified, 73,3% в SWE-bench Multilingual
* **Глубокое рассуждение** — 92,7% на AIME 2026, 96,9% на HMMT ноябрь 2025, встроенный режим мышления
* **Агентные возможности** — родной вызов инструментов, исполнение функций и планирование задач на длительный горизонт
* **Окно контекста 200K+** — обрабатывает массивные кодовые базы и длинные документы
* **Лицензия MIT** — полностью открытые веса, коммерческое использование разрешено

## Требования

Самостоятельный хостинг GLM-5 — серьёзное предприятие — контрольная точка FP8 требует **\~860 ГБ видеопамяти**.

| Компонент | Минимум (FP8) | Рекомендуется |
| --------- | ------------- | ------------- |
| GPU       | 8× H100 80GB  | 8× H200 141GB |
| VRAM      | 640GB         | 1,128GB       |
| ОЗУ       | 256GB         | 512GB         |
| Диск      | 1,5 ТБ NVMe   | 2 ТБ NVMe     |
| CUDA      | 12.0+         | 12.4+         |

**Рекомендация Clore.ai**: Для большинства пользователей, **доступ к GLM-5 через API** (Z.AI, OpenRouter). Самостоятельный хостинг имеет смысл только если вы можете арендовать 8× H100/H200 (\~$24–48/день на Clore.ai).

## Доступ по API (рекомендуется для большинства пользователей)

Наиболее практичный способ использовать GLM-5 с машины Clore.ai или из любой точки:

### Через платформу Z.AI

```python
from openai import OpenAI

client = OpenAI(
    api_key="your-zai-api-key",
    base_url="https://api.z.ai/v1"
)

response = client.chat.completions.create(
    model="glm-5",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Write a Python async web scraper using aiohttp and BeautifulSoup"}
    ],
    temperature=1.0,
    max_tokens=4096
)
print(response.choices[0].message.content)
```

### Через OpenRouter

```python
from openai import OpenAI

client = OpenAI(
    api_key="your-openrouter-key",
    base_url="https://openrouter.ai/api/v1"
)

response = client.chat.completions.create(
    model="zai-org/glm-5",
    messages=[
        {"role": "user", "content": "Explain the MoE architecture used in GLM-5"}
    ],
    max_tokens=2048
)
print(response.choices[0].message.content)
```

## Настройка vLLM (самостоятельный хостинг)

Для тех, у кого есть доступ к мощным многопроцессорным машинам на Clore.ai:

```bash
# Установите vLLM (требуется nightly для поддержки GLM-5)
pip install -U vllm --pre --extra-index-url https://wheels.vllm.ai/nightly

# Установите последние transformers (требуется)
pip install git+https://github.com/huggingface/transformers.git
```

### Развернуть FP8 на 8× H200 GPU

```bash
vllm serve zai-org/GLM-5-FP8 \
  --tensor-parallel-size 8 \
  --speculative-config.method mtp \
  --speculative-config.num_speculative_tokens 1 \
  --tool-call-parser glm47 \
  --reasoning-parser glm45 \
  --enable-auto-tool-choice \
  --served-model-name glm-5-fp8 \
  --gpu-memory-utilization 0.85
```

### Запрос к серверу

```python
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")

# С режимом мышления (по умолчанию)
response = client.chat.completions.create(
    model="glm-5-fp8",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Solve: find all primes p where p^2 + 2 is also prime"}
    ],
    temperature=1.0,
    max_tokens=4096
)
print(response.choices[0].message.content)

# Без режима мышления (быстрее, короче ответы)
response = client.chat.completions.create(
    model="glm-5-fp8",
    messages=[
        {"role": "user", "content": "Write a quicksort in Rust"}
    ],
    temperature=1.0,
    max_tokens=4096,
    extra_body={
        "chat_template_kwargs": {"enable_thinking": False}
    }
)
print(response.choices[0].message.content)
```

## Альтернатива SGLang

SGLang также поддерживает GLM-5 и может предложить лучшую производительность на некотором оборудовании:

```bash
# Использование Docker (GPU Hopper)
docker pull lmsysorg/sglang:glm5-hopper

# Запуск сервера
python3 -m sglang.launch_server \
  --model-path zai-org/GLM-5-FP8 \
  --tp-size 8 \
  --tool-call-parser glm47 \
  --reasoning-parser glm45 \
  --speculative-algorithm EAGLE \
  --speculative-num-steps 3 \
  --speculative-eagle-topk 1 \
  --speculative-num-draft-tokens 4 \
  --mem-fraction-static 0.85 \
  --served-model-name glm-5-fp8
```

## Быстрый старт с Docker

```bash
# Docker-образ vLLM с поддержкой GLM-5
docker run --gpus all -p 8000:8000 \
  --ipc=host \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  vllm/vllm-openai:glm5 zai-org/GLM-5-FP8 \
  --tensor-parallel-size 8 \
  --tool-call-parser glm47 \
  --reasoning-parser glm45 \
  --enable-auto-tool-choice \
  --served-model-name glm5 \
  --trust-remote-code
```

## Пример вызова инструментов

GLM-5 имеет встроенную поддержку вызова инструментов — идеально подходит для создания агентных приложений:

```python
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Получить текущую погоду для города",
        "parameters": {
            "type": "object",
            "required": ["city"],
            "properties": {
                "city": {"type": "string", "description": "Название города"}
            }
        }
    }
}]

response = client.chat.completions.create(
    model="glm-5-fp8",
    messages=[{"role": "user", "content": "What's the weather in Tokyo?"}],
    tools=tools,
    tool_choice="auto"
)
print(response.choices[0].message.tool_calls)
```

## Советы для пользователей Clore.ai

* **API в первую очередь, самохостинг во вторую**: GLM-5 требует 8× H200 (\~$24–48/день на Clore.ai). Для эпизодического использования API Z.AI или OpenRouter гораздо более рентабелен. Самохостинг только если вам нужна постоянная пропускная способность или конфиденциальность данных.
* **Рассмотрите GLM-4.7 вместо неё**: Если 8× H200 — это слишком много, предшественник GLM-4.7 (355B, 32B активно) работает на 4× H200 или 4× H100 (\~$12–24/день) и по-прежнему обеспечивает отличную производительность.
* **Используйте веса FP8**: Всегда используйте `zai-org/GLM-5-FP8` — такое же качество, как BF16, но почти вдвое меньший объём памяти. Версия BF16 требует 16× GPU.
* **Мониторьте использование VRAM**: `watch nvidia-smi` — длинные запросы с контекстом могут вызвать всплески памяти. Установите `--gpu-memory-utilization 0.85` чтобы оставить запас.
* **Компромисс режима мышления**: Режим мышления даёт лучшие результаты для сложных задач, но использует больше токенов и времени. Отключите его для простых запросов с помощью `enable_thinking: false`.

## Устранение неполадок

| Проблема                               | Решение                                                                                              |
| -------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| `OutOfMemoryError` при запуске         | Убедитесь, что у вас есть 8× H200 (по 141 ГБ каждая). FP8 требует примерно 860 ГБ общей видеопамяти. |
| Медленные загрузки (\~800 ГБ)          | Используйте `huggingface-cli download zai-org/GLM-5-FP8` с `--local-dir` чтобы возобновить.          |
| Несовпадение версии vLLM               | GLM-5 требует vLLM nightly. Установите через `pip install -U vllm --pre`.                            |
| Вызовы инструментов не работают        | Добавьте `--tool-call-parser glm47 --enable-auto-tool-choice` для команды serve.                     |
| Ошибки DeepGEMM                        | Установите DeepGEMM для FP8: используйте `скрипт install_deepgemm.sh` из репозитория vLLM.           |
| Режим мышления возвращает пустой вывод | Установите `temperature=1.0` — режим мышления требует ненулевой температуры.                         |

## Дополнительное чтение

* [GLM-5 на HuggingFace](https://huggingface.co/zai-org/GLM-5)
* [Контрольная точка GLM-5 FP8](https://huggingface.co/zai-org/GLM-5-FP8)
* [Платформа Z.AI](https://chat.z.ai)
* [Документация Z.AI API](https://docs.z.ai/guides/llm/glm-5)
* [Рецепт vLLM для GLM-5](https://docs.vllm.ai/projects/recipes/en/latest/GLM/GLM5.html)
* [Технический блог GLM-5](https://z.ai/blog/glm-5)
* [Инфраструктура Slime RL](https://github.com/THUDM/slime)
