SSD Nodes Learn 🎉 VPS от $5.50/мес
Руководства Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-21

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

Модель GLM 5.2 недоступна для локального запуска из-за размера в 378 ГБ. Узнайте, какой тег GLM реально запустить на VPS и сколько оперативной памяти требуется для квантования.

Можно ли запустить 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-кэш (кэш ключей и значений) — память, которую среда выполнения использует для хранения токенов текущего диалога, а также вычислительные буферы и ресурсы, потребляемые операционной системой. Сервер ровно с 19 ГБ оперативной памяти не сможет запустить модель с тегом 19 ГБ.

Не существует универсального множителя, подходящего для всех случаев, так как KV-кэш увеличивается в зависимости от разрешенной длины контекста, а остальные параметры меняются в зависимости от версии среды выполнения. Поэтому лучше измерять, а не гадать. Загрузите модель с простым запросом и посмотрите, какой объем памяти зарезервировал сервер.

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 в объекте параметров, как показано в команде 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 и параллельными запросами, которые также увеличивают потребление памяти.

Когда 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 с достаточным объемом оперативной памяти стоит реальных денег каждый месяц, в то время как провайдер предоставляет доступ к той же модели бесплатно. Запуская модель самостоятельно, вы получаете другое: ваши промпты остаются на машине под вашим контролем, а версия модели не изменится, пока вы сами её не обновите. Это веские причины для 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.