SSD Nodes Learn Hosting plans →
Руководства Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-26

Запуск GLM на VPS через Ollama: выбор модели и RAM

Модель GLM 5.2 доступна только через облачный API. Узнайте, какой тег GLM реально запустить на VPS, сколько RAM требуется для каждой квантованной версии и как настроить сервер.

Можно ли запустить GLM 5.2 на VPS?

Нет, и перед арендой сервера важно понять причину. По состоянию на 18 августа 2026 года модель GLM 5.2 в библиотеке Ollama имеет только один тег — glm-5.2:cloud. Тег :cloud работает на серверах Ollama. Ваш сервер отправляет запрос и получает токены, поэтому веса модели никогда не попадают на ваш диск. Модель содержит 756 миллиардов параметров. При использовании 4 бит на параметр размер весов составляет примерно 378 ГБ, и это без учета контекста, активаций и операционной системы. Ни один стандартный тариф VPS не предлагает такой объем оперативной памяти.

Модель GLM, которая подходит для арендуемого сервера — это glm-4.7-flash. Она опубликована с загружаемыми весами в 4 тегах. Это модель типа mixture-of-experts: для каждого токена задействуется лишь малая часть нейронной сети. Z.ai описывает её как 30B-A3B: 30 миллиардов параметров всего, около 3 миллиардов активных на каждый токен. Данное руководство отвечает на вопрос, который можно применить на практике. Выберите тег, подберите размер сервера, замерьте скорость работы и обеспечьте приватность конечной точки.

Проверяйте тег перед копированием любой команды, включая приведенные здесь. Библиотека Ollama меняется без уведомления. Откройте список тегов glm-4.7-flash и убедитесь, что тег все еще существует. Если появился новый релиз GLM с локальными весами, отдайте предпочтение ему и зафиксируйте, какой именно тег вы тестировали.

Если вы все же хотите использовать именно GLM 5.2, то ollama run glm-5.2:cloud работает после ollama signin, и со стороны клиента модель ведет себя так же, как любая другая модель Ollama. Понимайте, на что вы идете: ваш запрос покидает ваш сервер. Если ваша цель при самостоятельном хостинге — удержание данных на своей машине, то тег :cloud не соответствует этому требованию.

Какие теги GLM существуют и какой из них закрепить

Здесь важны три официальные записи GLM. glm-5.2 и glm-5.1 предназначены только для облака. glm-4.7-flash — это локальная версия, ниже приведены её опубликованные теги с размером загрузки, который Ollama указывает для каждого из них.

Chartglm-4.7-flash tags in Ollama's library, checked 2026-08-18
The data behind this chart
[
  {
    "label": "q4_K_M",
    "download_gb": 19
  },
  {
    "label": "latest",
    "download_gb": 19
  },
  {
    "label": "q8_0",
    "download_gb": 32
  },
  {
    "label": "bf16",
    "download_gb": 60
  }
]

Это опубликованные данные со страницы библиотеки, а не результаты измерений. latest и q4_K_M имеют размер 19 ГБ, поэтому latest в настоящее время указывает на сборку Q4. Это может измениться при любой повторной публикации, поэтому не следует прописывать «голый» тег ollama pull glm-4.7-flash в скриптах или Dockerfile. Указывайте квантование явно. Самый большой тег, bf16, имеет размер 60 ГБ и содержит неквантованные веса bfloat16.

Поиск в библиотеке также возвращает загрузки с пространством имен, содержащие косую черту в названии, например someuser/glm-5.2. Наличие косой черты означает, что файл опубликован учетной записью пользователя, то есть это повторная загрузка сообществом, а не официальная запись. Никто не гарантирует, какие именно веса находятся внутри. Относитесь к такому файлу так же, как к любому неподписанному бинарному файлу, найденному в сети.

Установка Ollama и загрузка конкретного тега

Установщик Ollama для Linux запускается одной командой.

curl -fsSL https://ollama.com/install.sh | sh
ollama --version

Установщик создает systemd-юнит, который работает от имени пользователя ollama. Убедитесь, что служба запущена, прежде чем что-либо загружать.

systemctl status ollama --no-pager

Active: active (running) означает, что API ожидает подключений на порту 11434. Если юнит отсутствует, значит, установщик выполнил обычную установку бинарного файла. В документации Ollama для Linux приведен файл службы, который необходимо создать вручную.

На странице glm-4.7-flash указана минимально необходимая версия Ollama. Устаревший бинарный файл не замедляет работу модели, а блокирует её: загрузка завершается ошибкой с сообщением о том, что для модели требуется более новая версия Ollama. Чтобы обновиться, повторно запустите скрипт установки. По состоянию на 18 августа 2026 года актуальным релизом является 0.32.14, что значительно выше минимальных требований.

Теперь загрузите нужный тег по его имени.

ollama pull glm-4.7-flash:q4_K_M
ollama ls

Команда ollama ls должна вывести glm-4.7-flash:q4_K_M с размером, близким к указанным 19 ГБ. Если загрузка прервалась, исполняемых файлов не останется, поэтому просто запустите команду снова. Самая частая причина сбоя загрузки на тарифах с малым объемом ресурсов — не сетевые проблемы, а переполнение диска, так как модель записывается в /usr/share/ollama/.ollama/models на корневой файловой системе. Проверьте свободное место с помощью df -h /usr/share/ollama перед началом работы.

Сколько оперативной памяти требуется для каждой квантованной модели?

Ориентируйтесь на размер файла загрузки как на минимальный порог, а затем добавляйте к нему дополнительные объемы. Веса модели должны постоянно находиться в оперативной памяти. Сверх этого объема располагается KV cache (кэш ключей и значений) — память, которую среда выполнения использует для хранения токенов текущего диалога, а также вычислительные буферы и ресурсы, потребляемые операционной системой. Сервер ровно с 19 ГБ оперативной памяти не сможет запустить модель с тегом 19 ГБ.

Универсального коэффициента не существует, так как размер KV cache увеличивается вместе с допустимой длиной контекста, а потребление ресурсов меняется в зависимости от версии среды выполнения. Поэтому лучше измерять, а не предполагать. Загрузите модель с простым запросом и посмотрите, какой объем памяти зарезервировал сервер.

ollama run glm-4.7-flash:q4_K_M "Reply with the single word: ready"
ollama ps

ollama ps выводит информацию о загруженной модели, включая столбцы SIZE и PROCESSOR. SIZE — это объем, который среда выполнения фактически зарезервировала; именно это число нужно сравнивать с вашими планами. PROCESSOR указывает, где выполняются вычисления, поэтому 100% CPU означает, что GPU вообще не был задействован.

Если модель не помещается в память, сбой происходит незаметно и проявляется в двух формах. Если включен swap, загрузка кажется успешной, но генерация текста идет крайне медленно, так как страницы памяти постоянно перемещаются между диском и RAM для каждого токена. Если swap отсутствует, процесс принудительно завершается, а journalctl -k | grep -i "out of memory" показывает строку Out of memory: Killed process в журнале ядра с указанием ollama. Проверяйте оба варианта, так как ни один из них не выводит понятное сообщение в терминале, где вы работаете.

Переход от тега Q4 размером 19 ГБ к тегу Q8 размером 32 ГБ — это основной рычаг управления потреблением памяти. Квантование Q4 снижает качество вывода, и степень этого влияния зависит от задачи: структурированный вывод и длинные логические цепочки страдают сильнее, чем обычный чат. Статью Чем на практике отличаются Q4, Q8 и FP16 стоит прочитать до принятия решения, так как на VPS без GPU выбор квантования обычно определяет, запустится ли модель вообще.

Что происходит на VPS без GPU

Большинство тарифных планов VPS не включают GPU, и Ollama будет запускать модель на CPU, не предупреждая вас об этом. Будет ли результат пригоден для использования, зависит от рабочей нагрузки и вашего терпения.

Архитектура mixture-of-experts помогает увеличить скорость. Для генерации каждого токена используется лишь около 3 миллиардов из 30 миллиардов параметров, поэтому объем вычислений на токен значительно меньше, чем потребовалось бы для плотной модели 30B. Однако объем необходимой памяти не уменьшается. Каждый эксперт должен постоянно находиться в оперативной памяти, так как маршрутизатор может выбрать любого из них для следующего токена. Поэтому серверу только с CPU всё равно требуется полный объем 19 ГБ или больше для тега Q4, а пропускная способность в основном определяется пропускной способностью памяти, а не тактовой частотой процессора.

Это имеет практическое следствие: два тарифных плана с одинаковым количеством ядер и объемом RAM могут генерировать текст с заметно разной скоростью, так как их подсистемы памяти различаются. Общий (shared) тарифный план добавляет вторую переменную, поскольку время ожидания CPU из-за «шумного соседа» проявляется в виде показателя количества токенов в секунду, который меняется от часа к часу. Именно по этой причине опубликованные другими результаты не предсказывают ваши показатели, и именно поэтому следующий раздел представляет собой методику измерений, а не таблицу результатов.

Измерение собственной скорости генерации токенов

Эндпоинт generate в Ollama возвращает поля с временными метками в финальном JSON-объекте. Разделите количество сгенерированных токенов на длительность генерации, чтобы получить показатель для вашего тарифного плана и вашего промпта.

sudo apt install -y jq
curl -s http://localhost:11434/api/generate -d '{
  "model": "glm-4.7-flash:q4_K_M",
  "prompt": "Write a 200 word explanation of how TCP congestion control works.",
  "stream": false,
  "options": {"num_ctx": 8192}
}' | jq '{
  tokens: .eval_count,
  tokens_per_second: (.eval_count / .eval_duration * 1e9),
  prompt_seconds: (.prompt_eval_duration / 1e9),
  load_seconds: (.load_duration / 1e9)
}'

eval_count — это количество сгенерированных токенов, а eval_duration — время генерации в наносекундах, поэтому eval_count / eval_duration * 1e9 показывает количество токенов в секунду. prompt_eval_duration учитывает время обработки промпта: именно это время пользователь воспринимает как ожидание появления первого токена. load_duration — это время загрузки модели с диска; оно велико при первом вызове после перезапуска и близко к нулю при последующих.

Выполните замер трижды и сохраните результаты второго и третьего прогонов, так как первый включает время загрузки. Затем повторите тест с гораздо более длинным промптом, поскольку скорость обработки промпта зависит от длины входных данных, а скорость генерации — нет. Запишите полученные значения рядом с названием вашего тарифного плана и типом квантования. Эти данные ценнее любых сторонних бенчмарков, так как они получены на оборудовании, за которое вы платите.

Как длина контекста увеличивает потребление памяти

По умолчанию Ollama использует контекст размером 4096 токенов. Модель поддерживает гораздо больше, 198K токенов для glm-4.7-flash, но по умолчанию это значение не применяется, а его активация требует ресурсов.

KV-кэш хранит один вектор ключей и один вектор значений для каждого токена в каждом слое. Его размер растёт линейно в зависимости от количества разрешённых токенов. Увеличение с 4096 до 32768 токенов расширяет контекст в восемь раз, что примерно в восемь раз увеличивает объём KV-кэша. На сервере, где объём памяти рассчитан только на веса модели, это дополнительное выделение памяти приводит к использованию swap. Именно поэтому система, которая успешно обрабатывала короткие запросы, начинает работать крайне медленно при вставке длинного документа.

Устанавливайте это значение для каждого запроса с помощью num_ctx в объекте options, как показано в команде curl выше, либо измените значение по умолчанию на сервере.

sudo install -d -m 755 /etc/systemd/system/ollama.service.d
printf '[Service]\nEnvironment="OLLAMA_CONTEXT_LENGTH=16384"\n' \
  | sudo tee /etc/systemd/system/ollama.service.d/override.conf
sudo systemctl daemon-reload
sudo systemctl restart ollama
systemctl show ollama --property=Environment

Последняя команда должна вывести ваше значение OLLAMA_CONTEXT_LENGTH. Если выводится пустой Environment=, значит, файл переопределения находится в неверном каталоге или перезагрузка не была выполнена. После следующей загрузки модели ollama ps должен показать заметно большее значение SIZE, чем при 4096. Увеличивайте значение постепенно и каждый раз проверяйте этот показатель. В Настройка длины контекста Ollama через num_ctx описано, как это взаимодействует с параметром keep-alive и параллельными запросами, так как оба фактора увеличивают те же затраты ресурсов. Если сервер будет использоваться несколькими клиентами, определите лимиты параллельных запросов одновременно с настройкой контекста, так как каждый параллельный слот использует собственный KV-кэш, а настройка очереди определяет, будет ли второй запрос ожидать обработки или получит немедленный отказ.

Когда API дешевле собственного сервера

Self-hosting не всегда обходится дешевле, и для данного семейства моделей опубликованные цены наглядно это подтверждают.

ChartZ.ai published list prices per million tokens, checked 2026-08-18
The data behind this chart
[
  {
    "label": "GLM-5.2 input",
    "usd_per_million_tokens": 1.4
  },
  {
    "label": "GLM-5.2 output",
    "usd_per_million_tokens": 4.4
  },
  {
    "label": "GLM-4.7-Flash input",
    "usd_per_million_tokens": 0
  },
  {
    "label": "GLM-4.7-Flash output",
    "usd_per_million_tokens": 0
  }
]

По состоянию на 18 августа 2026 года Z.ai предлагает GLM-5.2 по цене $1.4 за миллион входных токенов и $4.4 за миллион выходных токенов. Модель GLM-4.7-Flash, которую мы запускаем локально в этом руководстве, стоит $0 за миллион токенов в обоих направлениях. Это публичные цены, которые могут меняться, поэтому проверяйте актуальную страницу перед планированием бюджета.

Таким образом, аргумент об экономии при self-hosting glm-4.7-flash сейчас не является убедительным. VPS с достаточным объемом RAM требует ежемесячных затрат, в то время как провайдер предоставляет доступ к той же модели бесплатно. Выигрыш от самостоятельного запуска заключается в другом: ваши промпты остаются на машине под вашим контролем, а версия модели не изменится, пока вы сами её не обновите. Это веские причины для self-hosting. Но стоимость для данной модели при текущих ценах к ним не относится.

Расчет меняется, если нужная вам модель платная или если по юридическим причинам ваши данные не должны покидать вашу сеть. В статье Точка окупаемости между GPU VPS и API-токенами этот расчет разобран с учетом всех переменных. Если вы все еще выбираете сервер, реальная ежемесячная стоимость VPS составит вторую часть уравнения.

Ограничение endpoint адресом localhost

Это шаг, который часто пропускают, хотя он является самым важным.

По умолчанию Ollama привязывается к 127.0.0.1 на порту 11434, поэтому сервис доступен только с самого сервера. Убедитесь в этом на своей машине, а не полагайтесь на предположения.

ss -ltnp | grep 11434

Вы должны увидеть 127.0.0.1:11434. Если вы видите 0.0.0.0:11434 или *:11434, это означает, что API прослушивает все сетевые интерфейсы, включая публичный.

Это критически важно, так как API Ollama не имеет встроенной аутентификации. Здесь нет паролей, токенов или списков разрешенных IP-адресов. Любой, кто может подключиться к порту 11434, может просматривать список ваших моделей, запускать генерацию на оплачиваемом вами оборудовании, загружать новые модели на ваш диск до его заполнения и удалять существующие. Порт 11434 является фиксированным и общеизвестным, поэтому сканеры быстро находят открытые экземпляры.

Не устанавливайте OLLAMA_HOST=0.0.0.0. Многие руководства предлагают это как решение проблемы, если клиент на вашем ноутбуке не может подключиться, но это неверный подход. Вместо этого используйте проброс порта.

ssh -N -L 11434:127.0.0.1:11434 you@your-server

Эта команда пробрасывает порт 11434 с вашего ноутбука на loopback-адрес сервера через SSH. В результате любой клиент, настроенный на http://localhost:11434, будет работать без изменений, при этом ничего лишнего не будет выставлено наружу. Если доступ нужен нескольким пользователям или машинам, поместите сервер в частную туннельную сеть и привяжите Ollama к адресу туннеля, но никогда не привязывайте её к 0.0.0.0.

Проверьте доступность с другого устройства, а не с самого сервера. С вашего ноутбука, при закрытом SSH-туннеле:

curl -m 5 http://your-server-ip:11434/api/tags

curl: (28) Connection timed out или curl: (7) Failed to connect — это правильный результат. Если вы видите JSON-список ваших моделей, значит, порт открыт для всего интернета, и это нужно немедленно исправить. Сетевой файрвол вашего хостинг-провайдера — это отдельный уровень защиты, независимый от настроек внутри самой машины, поэтому проверьте оба. Более широкий вопрос о безопасности VPS-хостинга охватывает остальные базовые требования для сервера, который работает постоянно.

Если модель glm-4.7-flash всё ещё слишком велика

Если тег Q4 не вписывается в ваш тарифный план, решение заключается в выборе модели меньшего размера, а не в сокращении контекста. Урезание контекста ради запуска модели приводит к тому, что она загружается, но выдает ошибку при первом же длинном запросе. В статье Qwen 3 в версиях 8B и 27B на VPS описан аналогичный процесс установки для моделей, подходящих для серверов с ограниченными ресурсами, а в общем руководстве по самостоятельному хостингу LLM с помощью Ollama на VPS разобраны аспекты, которые остаются неизменными независимо от выбора модели. На чем бы вы ни остановились, фиксируйте версию тега, проводите замеры на своем тарифе и оставляйте эндпоинт доступным только через loopback.

FAQ

Может ли GLM 5.2 работать локально на VPS?

Нет. По состоянию на 18 августа 2026 года GLM 5.2 присутствует в библиотеке Ollama только как glm-5.2:cloud — тег, который работает на собственной инфраструктуре Ollama и требует ollama signin для корректного функционирования. Модель содержит 756 миллиардов параметров, поэтому даже при квантовании до четырёх бит на параметр одни только веса занимают сотни гигабайт, что значительно превышает возможности любого стандартного тарифного плана VPS. Модель GLM с загружаемыми весами, которая поместится на арендованный сервер, — это glm-4.7-flash.

Сколько оперативной памяти нужно для glm-4.7-flash?

Рассматривайте размер загружаемого файла тега как минимальный порог и добавляйте к нему объём для KV-кэша и операционной системы. Ollama указывает размер тега Q4 как 19 ГБ, Q8 — 32 ГБ, а тега bfloat16 — 60 ГБ. Универсального множителя не существует, так как KV-кэш увеличивается в зависимости от установленной длины контекста. Загрузите модель, выполните ollama ps и посмотрите на столбец SIZE, чтобы узнать реальное значение для вашей системы.

Как измерить количество токенов в секунду на собственном VPS?

Отправьте один запрос на http://localhost:11434/api/generate с параметром "stream": false, затем считайте eval_count и eval_duration из ответа. Количество токенов в секунду вычисляется как eval_count / eval_duration * 1e9, так как eval_duration измеряется в наносекундах. Отбросьте результат первого запуска, так как load_duration в этом случае включает чтение весов с диска. Повторите тест с длинным промптом, так как prompt_eval_duration растёт вместе с длиной входных данных, в то время как скорость генерации остаётся неизменной.

Почему не следует устанавливать OLLAMA_HOST в значение 0.0.0.0?

Потому что API Ollama не имеет встроенной аутентификации, поэтому привязка к 0.0.0.0 делает неавторизованную конечную точку доступной из публичного интернета. Любой, кто получит доступ к порту 11434, сможет запускать генерацию на вашем оборудовании и изменять список установленных моделей. Оставьте привязку по умолчанию 127.0.0.1, проверьте её с помощью ss -ltnp | grep 11434 и обращайтесь к API со своего ноутбука через SSH-туннель, например, ssh -N -L 11434:127.0.0.1:11434 you@your-server.