GLM-4.7 Flash локально: запуск через llama.cpp server с Docker и экономией VRAM | AiManual
AiManual Logo Ai / Manual.
22 Янв 2026 Гайд

Запускаем Claude Code локально с GLM-4.7 Flash: полный гайд с Docker и автовыгрузкой VRAM

Пошаговый гайд по запуску GLM-4.7 Flash локально через llama.cpp server с Docker, автовыгрузкой VRAM и полной заменой Claude Code API. Конфигурация, параметры,

Ежемесячный счет в $300-500 за Claude API уже надоел? Пора переходить на локальное решение. GLM-4.7 Flash от Zhipu AI на 22.01.2026 показывает результаты, сравнимые с Claude 3.5 Sonnet в задачах генерации кода, но стоит ноль рублей за токен.

Проблема в том, что большинство гайдов останавливаются на ollama run. А что если нужен полноценный API-сервер с автовыгрузкой VRAM при простое? Что если модель должна быть всегда доступна, но не сжирать всю память видеокарты, когда вы не пишете код?

Сегодня разбираем промышленное решение: llama.cpp server в Docker с GLM-4.7-Flash-GGUF, умной выгрузкой из памяти и полной заменой Claude Code API.

Зачем это вообще нужно?

Три причины, почему я перешел с облачных API на локальный сервер:

  • Конфиденциальность: весь код остается на моих серверах. Никаких логов в облаке у Anthropic или других провайдеров
  • Экономия: после первоначальных вложений в железо месячные расходы — только электричество. Для команды из 5 разработчиков экономия $1000+ в месяц
  • Контроль: сам настраиваю параметры генерации, контекст, скорость. Никаких лимитов от провайдера

Важный нюанс: GLM-4.7 — не клон Claude. Это другая архитектура, другой "мыслепроцесс". Для большинства задач по генерации кода разница незаметна, но промпты могут требовать тонкой настройки. Подробнее об этом в нашей статье "GLM-4.7 с Claude-совместимым API".

Железо: что реально нужно в 2026 году

Забудьте про рекомендации "2x A100 80GB". На практике для GLM-4.7-Flash в формате Q4_K_M GGUF хватит:

Конфигурация Память GPU Скорость (токенов/с) Стоимость часа
RTX 4090 24 GB 18-28 $0 (своя)
2x RTX 3090 48 GB 45-65 $0 (своя)
A100 40GB (облако) 40 GB 85-130 $2.7-3.8

Лично я использую RTX 4090 для разработки и тестирования. Для продакшена — 2x RTX 3090. Разница в скорости заметна, но для интерактивной работы с кодом даже 20 токенов в секунду достаточно. Если нужно больше — смотрите в сторону vLLM с несколькими картами.

💡
На 22.01.2026 появились RTX 5090 с 32GB VRAM — идеальный вариант для локального запуска больших моделей. Если планируете апгрейд, смотрите в эту сторону.

Подготовка: что скачиваем и устанавливаем

1 Скачиваем модель GLM-4.7-Flash-GGUF

На 22.01.2026 самая стабильная версия — от unsloth. Квантование Q4_K_M дает оптимальный баланс качества и размера:

# Создаем директорию для моделей
mkdir -p ~/models/glm-4.7-flash
cd ~/models/glm-4.7-flash

# Скачиваем модель (примерно 8.5 GB)
wget https://huggingface.co/unsloth/GLM-4.7-Flash-GGUF/resolve/main/GLM-4.7-Flash.Q4_K_M.gguf

# Альтернативно через git lfs (если wget тормозит)
git lfs install
git clone https://huggingface.co/unsloth/GLM-4.7-Flash-GGUF

Внимание: полная модель занимает около 8.5 GB. Убедитесь, что на диске достаточно места. Для тестирования можно начать с Q2_K (4.5 GB), но качество кода будет заметно хуже.

2 Устанавливаем Docker и NVIDIA Container Toolkit

# Для Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y docker.io docker-compose

# Добавляем пользователя в группу docker
sudo usermod -aG docker $USER
newgrp docker

# Устанавливаем NVIDIA Container Toolkit
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

Проверяем, что Docker видит GPU:

docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi

Запускаем llama.cpp server в Docker

Вот конфигурация, которую я использую в продакшене. Обратите внимание на параметры — они подобраны для генерации кода:

# Создаем docker-compose.yml
cat > docker-compose.yml << 'EOF'
version: '3.8'

services:
  llama-server:
    image: ghcr.io/ggerganov/llama.cpp:server-latest
    container_name: glm-4.7-server
    restart: unless-stopped
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    volumes:
      - /home/$USER/models/glm-4.7-flash:/models
    ports:
      - "8080:8080"
    command: [
      "--model", "/models/GLM-4.7-Flash.Q4_K_M.gguf",
      "--host", "0.0.0.0",
      "--port", "8080",
      "--ctx-size", "131072",
      "--batch-size", "512",
      "--ubatch-size", "512",
      "--parallel", "1",
      "--cont-batching",
      "--mlock",
      "--n-gpu-layers", "99",
      "--temp", "0.1",
      "--top-p", "0.95",
      "--repeat-penalty", "1.1",
      "--no-display-prompt",
      "--log-format", "json",
      "--sleep-idle-seconds", "300"
    ]
EOF

Теперь запускаем:

docker-compose up -d

# Смотрим логи
docker logs -f glm-4.7-server

Разбираем ключевые параметры

Почему именно такие настройки? Давайте по пунктам:

Параметр Значение Зачем нужно
--temp 0.1 0.1 Низкая температура для детерминированного кода. Не нужно креативности, нужна точность
--top-p 0.95 0.95 Ядерная выборка: модель рассматривает 95% самых вероятных вариантов
--repeat-penalty 1.1 1.1 Легкий штраф за повторения, чтобы избежать зацикливания
--ctx-size 131072 128k Максимальный контекст GLM-4.7-Flash. Не пытайтесь ставить больше
--sleep-idle-seconds 300 300 Автовыгрузка VRAM через 5 минут простоя. Ключевой параметр для экономии
--n-gpu-layers 99 99 Все слои на GPU. Если не хватает памяти — уменьшайте

Автовыгрузка VRAM: как это работает

Параметр --sleep-idle-seconds 300 — главное преимущество этой настройки. После 5 минут без запросов llama.cpp:

  1. Выгружает модель из VRAM
  2. Освобождает память для других задач (игры, рендеринг, другие модели)
  3. При новом запросе — загружает модель обратно (занимает 15-30 секунд)

На практике: вы поработали с кодом утром, потом пошли на встречи. Видеокарта свободна. Вечером возвращаетесь — первый запрос немного медленнее, остальные как обычно.

Важно: в llama.cpp версии на 22.01.2026 параметр --sleep-idle-seconds стабильно работает только с --mlock. Без mlock могут быть падения при повторной загрузке.

Тестируем API

Сервер запущен на порту 8080. Проверяем:

# Проверка здоровья
curl http://localhost:8080/health

# Простой запрос
curl http://localhost:8080/completion -H "Content-Type: application/json" -d '{
  "prompt": "Напиши функцию на Python для сложения двух чисел",
  "temperature": 0.1,
  "top_p": 0.95,
  "max_tokens": 500
}'

Для совместимости с Claude Code используем OpenAI-совместимый endpoint:

# Chat completion endpoint (OpenAI compatible)
curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
  "model": "GLM-4.7-Flash",
  "messages": [
    {"role": "system", "content": "Ты — опытный программист, помогающий писать код."},
    {"role": "user", "content": "Напиши функцию на Python для парсинга JSON файла"}
  ],
  "temperature": 0.1,
  "max_tokens": 1000
}'

Интеграция с Claude Code и другими IDE

В Claude Code (или Cursor, или любом другом редакторе с поддержкой OpenAI API) меняем настройки:

{
  "baseUrl": "http://ваш-сервер:8080/v1",
  "apiKey": "sk-not-needed",
  "model": "GLM-4.7-Flash",
  "temperature": 0.1,
  "maxTokens": 4000
}

Теперь все запросы из IDE идут на ваш локальный сервер. Полная замена Claude API за 0 рублей в месяц.

💡
Если используете несколько моделей или сложную систему агентов, посмотрите наш гайд по настройке Claude Code для работы с локальными LLM. Там есть тонкости с промптами и контекстом.

Частые ошибки и решения

Ошибка: "CUDA out of memory" при запуске

Решение: уменьшаем --n-gpu-layers. Начните с 40, постепенно увеличивайте:

# Проверяем свободную память перед запуском
nvidia-smi

# Если мало памяти, уменьшаем слои на GPU
--n-gpu-layers 40  # вместо 99

Ошибка: медленная загрузка после автовыгрузки

Решение: используйте NVMe SSD для хранения моделей. Разница между HDD и NVMe — 3-5 раз в скорости загрузки. Также помогает --mlock.

Ошибка: "Model failed to load"

Решение: проверьте путь к модели и права доступа. В Docker контейнер должен иметь доступ к файлу:

# Даем права
sudo chmod 644 ~/models/glm-4.7-flash/*.gguf

# Проверяем, что файл существует в контейнере
docker exec glm-4.7-server ls -la /models/

Проблема: модель зацикливается при генерации кода

Решение: увеличиваем --repeat-penalty до 1.2-1.3. Если не помогает — добавляем стоп-токены:

--repeat-penalty 1.3
--repeat-last-n 64
--stop "\n\n\n"  # Три переноса строки как стоп-сигнал

Производительность: что можно улучшить

Если 20-30 токенов в секунду мало:

  1. Используйте более агрессивное квантование: Q3_K_S вместо Q4_K_M. Скорость вырастет на 30-40%, качество упадет незначительно
  2. Увеличьте batch size: если обрабатываете несколько запросов параллельно, поднимите --batch-size до 1024 или 2048
  3. Рассмотрите TensorRT-LLM: для NVIDIA карт дает прирост 2-3x, но сложнее в настройке
  4. Добавьте вторую карту: 2x RTX 3090 через NVLink почти удваивает скорость

Предупреждение: не гонитесь за скоростью в ущерб качеству. Для интерактивной работы с кодом даже 15 токенов в секунду достаточно. Лучше потратить время на тонкую настройку промптов, чем на разгон модели на 5%.

Мониторинг и логирование

Для продакшена добавьте мониторинг:

# Создаем docker-compose.monitoring.yml
cat > docker-compose.monitoring.yml << 'EOF'
version: '3.8'

services:
  llama-server:
    # ... предыдущая конфигурация ...
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

  prometheus-exporter:
    image: ghcr.io/ricoberger/llama.cpp-exporter:latest
    ports:
      - "9091:9091"
    environment:
      - LLAMA_SERVER_URL=http://llama-server:8080
      - SCRAPE_INTERVAL=15s
    depends_on:
      - llama-server
EOF

Теперь у вас есть метрики в Prometheus и можно настраивать алерты на падение сервиса.

Что дальше? Эволюция локальных моделей

На 22.01.2026 мы видим тренд: качество локальных моделей догоняет облачные. GLM-4.7-Flash — не предел. В разработке:

  • GLM-5 с контекстом 256k и улучшенным пониманием кода
  • Специализированные кодогенераторы на 3-7B параметрах, которые работают быстрее при сравнимом качестве
  • Аппаратные ускорители от NVIDIA, AMD и китайских производителей

Мой прогноз: к концу 2026 года локальный запуск моделей уровня GPT-4 будет доступен на картах за $1000. Провайдеры облачных API либо сильно снизят цены, либо умрут.

А пока — настраивайте GLM-4.7-Flash, экономьте тысячи долларов в месяц и не зависьте от капризов облачных провайдеров. Код должен генерироваться там, где он выполняется.

💡
Если столкнулись с проблемами на AMD картах — у нас есть отдельный гайд: "GLM 4.7 Flash зависает на AMD". ROCm и HIP имеют свои тонкости.