Журнал сеньора вайбкодера уроки из опыта, заметки и инсайты

Личный публичный архив мыслей: оформленные как уроки наблюдения, рефлексия, идеи и недельные сводки.

RSS
← Назад к ленте

GLM-5.2 дома: сколько стоит закрыть ИИ в своём контуре

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

GLM-5.2 интересно обсуждать не как очередную модель, которая где-то там обогнала кого-то в таблице. Таблицы я уже давно читаю с прищуром. Сегодня модель первая, завтра вторая, послезавтра выясняется, что запускали её не тем режимом, не с тем контекстом и не на той задаче.

Меня в GLM-5.2 цепляет другое: её можно положить к себе.

Не просто вызвать через API, не просто купить подписку и надеяться, что завтра аккаунт не решит уйти в отпуск. А реально скачать веса, поставить модель внутри своего периметра и дать агенту работать с кодом, документами и внутренними данными без выхода наружу.

Звучит почти как мечта параноика. Но дальше начинается арифметика.

Что вообще вышло

Z.AI описывает GLM-5.2 как флагманскую текстовую модель для долгих инженерных задач. Контекст — до 1 миллиона токенов, максимальный вывод — до 128 тысяч токенов. В документации отдельно подчёркивают работу с проектным контекстом, инструментами, структурированным выводом, кэшем контекста и MCP.

На Hugging Face модель лежит с лицензией MIT. В репозитории GLM-5 указана архитектура 744B-A40B: примерно 744 миллиарда параметров всего и около 40 миллиардов активных на токен. Это MoE-модель: не вся махина просыпается на каждом слове, а только часть экспертов.

Вот из-за этого её вообще можно обсуждать в контексте локального запуска. Плотную модель на 744 миллиарда параметров дома можно было бы запускать разве что как отопительный прибор с характером. MoE меняет картину: веса всё равно огромные, но вычислительная работа на один токен ближе к модели на десятки миллиардов параметров, а не к полной 744B-глыбе.

Но память никто не отменял.

Локально — не значит быстро

Самое опасное слово в этой теме — «запустить».

Запустить можно много чего. Можно запустить модель так, что она будет выдавать один токен в несколько секунд, а ты будешь смотреть на терминал как на кипящий чайник. Формально работает. Практически — бесит.

Оригинальные веса GLM-5.2 в BF16 занимают около 1.5 ТБ. Это не «поставил вторую видеокарту и поехали». Это уровень серверного узла. В рецепте vLLM для FP8-сервинга фигурируют 8×H200/H20, а для полного 1M-контекста с FP8 KV cache — уже 8×B200. То есть настоящий быстрый контур — это не домашняя станция, а стойка с деньгами внутри.

Потребительский путь появился из-за квантов. Unsloth выкатил GGUF-варианты GLM-5.2: от 1-bit и 2-bit до Q4, Q5, Q6, Q8 и BF16. По данным дерева файлов unsloth/GLM-5.2-GGUF, 2-bit UD-IQ2_M весит около 239 GB, Q3 — около 343 GB, Q4 — около 466 GB, Q6 — около 626 GB, Q8 — около 801 GB.

Таблица грубая, но полезная:

Вариант Память под веса
1-bit ~217–229 GB
2-bit ~239 GB
Q3 ~343 GB
Q4 ~466 GB
Q5 ~561 GB
Q6 ~626 GB
Q8 ~801 GB
BF16 ~1.5 TB

И это только веса. Контекст тоже ест память. Тот самый красивый 1M-контекст локально быстро превращается в вопрос: «А где мы возьмём ещё память под KV cache?»

Поэтому честный локальный запуск GLM-5.2 почти всегда начинается не с «хочу миллион токенов», а с «какой контекст я могу себе позволить, чтобы оно вообще не умерло».

Входной билет

Минимальный живой вариант — машина с 256 GB оперативной памяти и видеокартой уровня RTX 4090 или RTX 5090. Видеокарта не держит всю модель, конечно. 24–32 GB видеопамяти для GLM-5.2 — это смешно. Смысл в другом: часть горячего пути держать на видеокарте, экспертов и холодные куски складывать в системную память.

Unsloth прямо пишет, что 2-bit UD-IQ2_M помещается на 256GB unified memory Mac и работает на связке 1×24GB GPU + 256GB RAM с MoE-offload. Это важная формулировка: не «летает», не «заменяет облако», а работает.

Примерная картина такая:

Контур Стоимость Ожидание по скорости Зачем он нужен
256GB RAM + RTX 4090/5090 ~$4–7k ~2–6 ток/с, иногда до 9 Личный закрытый агент, ночные задачи, аудит кода
Mac Studio 256GB ~$7–10k+ ~3–9 ток/с Самая чистая одиночная коробка
Mac Studio 512GB / большая станция ~$10–15k+ лучше, но без честной гарантии Q3, больше запас под контекст
4–6× RTX Pro 6000 96GB ~$35–55k+ уже похоже на командную станцию Закрытый контур для команды
8× H200/B200 ~$250–400k+ десятки/сотни ток/с Свой внутренний поставщик ИИ

Я бы не строил иллюзий: если хочется быстрой интерактивности как у облачного API, домашний 2-bit запуск разочарует. Он будет думать. Иногда раздражающе долго.

Зато он будет думать у тебя дома.

Цена токена против цены контроля

У GLM-5.2 неприятно хорошая API-экономика. По официальной странице цен Z.AI, вход стоит $1.4 за миллион токенов, кэшированный вход — $0.26, выход — $4.4.

Если прикинуть рабочие объёмы, получается так:

Использование API без кэша С кэшем входа
100M вход + 10M выход $184 $70
500M вход + 50M выход $920 $350
800M вход + 120M выход $1,648 $736
1B вход + 150M выход $2,060 $920

На этом месте бухгалтер внутри меня говорит: «Не трогай железо. Плати за API и живи спокойно».

И он прав. Если задача — просто получать ответы, API почти всегда дешевле. Особенно если есть кэширование, подписка, лимиты, тарифы для разработчиков и вся эта китайская магия, где модель за свои деньги выглядит слишком щедро.

Но это бухгалтерский ответ. А вопрос закрытого контура не бухгалтерский.

Если модель читает коммерческий код, договоры, внутренние задачи, базы знаний, служебные логи и переписки, цена токена уже не главный параметр. Главный параметр — кто видит данные. Где лежат логи. Кто может поменять правила. Кто может отключить доступ. Кто может сказать: «сегодня эта модель в вашем регионе недоступна».

Локальный запуск покупает не дешёвые токены. Он покупает отсутствие лишнего участника в цепочке.

Что такое замкнутый контур на самом деле

Закрытый запуск — это не просто llama serve в терминале.

Если делать по-взрослому, нужен весь маленький внутренний завод:

  • один раз скачать веса и зависимости во внешний или переходный контур;
  • проверить версии, хэши, происхождение файлов;
  • перенести модель внутрь закрытой сети;
  • поднять локальный сервер вывода: llama.cpp, vLLM или SGLang;
  • дать ему совместимый API, чтобы агенты могли ходить в /v1/chat/completions;
  • подключить Hermes, ZCode, OpenClaw или другой агентский слой;
  • решить, пишутся ли промпты в логи, где они лежат и кто их читает;
  • настроить мониторинг памяти, видеокарт, диска и очередей;
  • запретить исходящий интернет там, где агент не должен иметь внешний доступ;
  • придумать процедуру обновления модели, потому что новая версия весов — это снова перенос, проверка и тесты.

И вот тут становится видно, что локальная модель — это уже инфраструктура. Не игрушка.

Можно, конечно, поднять всё на одной машине и пользоваться одному. Это нормально. Но как только модель становится частью рабочего процесса команды, появляются скучные вопросы: очередь запросов, права доступа, лимиты, аварии, резервные копии, аудит, обновления.

Скучные вопросы обычно и отличают игрушку от системы.

Где это имеет смысл

Мне кажется, локальный GLM-5.2 нужен не всем. Даже наоборот: большинству он не нужен.

Если ты пишешь небольшие куски кода, спрашиваешь советы, генерируешь тексты, иногда гоняешь агента по репозиторию — API или подписка разумнее. Быстрее, проще, дешевле по нервам.

Локальный контур начинает иметь смысл, когда есть хотя бы одно из трёх условий.

Первое: данные нельзя выносить наружу. Не «не хотелось бы», а реально нельзя. Коммерческая тайна, персональные данные, внутренние документы, закрытый код.

Второе: агент должен читать много внутреннего контекста. Репозитории, задачи, документацию, логи, заметки, историю решений. Если каждый такой запрос уходит внешнему поставщику, это уже не помощь, а постоянная утечка в рассрочку.

Третье: нужен контроль над поведением. Версия модели, квант, шаблон, параметры, правила логирования, доступ к инструментам. В API ты арендатор. В локальном контуре ты владелец, пусть и с грязными руками.

Где это плохая идея

Если хочется быстрый чат — плохая идея.

Если нет человека, который готов возиться с драйверами, сборками, памятью, мониторингом и странными падениями — плохая идея.

Если денег хватает только на железо, но не хватает на время обслуживания — тоже плохая идея. Железо само себя не эксплуатирует. Особенно когда речь про модель, которая в 2-bit виде весит как маленький архив видеонаблюдения.

И ещё один неприятный момент: локальная модель стареет. Сегодня ты купил станцию под GLM-5.2. Через пару месяцев вышла GLM-5.3, Qwen что-нибудь, DeepSeek что-нибудь, и снова хочется переезжать. API в этом смысле цинично удобен: провайдер обновил модель, ты поменял имя в конфиге.

С железом так не работает. Железо остаётся у тебя. Иногда это плюс. Иногда — памятник прошлому решению.

Сколько токенов в секунду ждать

Для домашнего или офисного одиночного запуска я бы честно закладывал единицы токенов в секунду. Примерно 3–9 ток/с для 2-bit сценариев на 256GB unified memory или RAM-offload машинах — это нормальная оценка из текущих публичных материалов и практической физики памяти.

Может быть быстрее на удачной сборке. Может быть медленнее, если контекст большой, память медленная, PCIe душит offload, а настройки выбраны как попало.

Производственные цифры другого класса. Baseten пишет про 280+ ток/с на NVIDIA Blackwell с NVFP4 и набором оптимизаций: маршрутизация с учётом KV cache, разделение prefill/decode, MTP, свой стек вывода. Это круто, но это не «я собрал системник под столом».

Поэтому в статье про локальный GLM-5.2 нужно держать две правды одновременно:

локально — реально;
быстро — только дорого.

Мой вывод

GLM-5.2 в закрытом контуре — это странный, но важный сигнал.

Ещё недавно сильная модель в своём периметре звучала как фантазия для компаний с дата-центром. Сейчас входной билет всё ещё дорогой и неудобный, но он уже не космический. 256 GB памяти, 2-bit квант, llama.cpp, терпение — и у тебя есть модель, которая может работать с твоим кодом без внешнего API.

Я не считаю это массовым сценарием. Не надо продавать людям сказку, что каждый разработчик завтра поставит GLM-5.2 дома и забудет про облака. Не поставит. И не забудет.

Но для команд, которым важен закрытый контур, это меняет разговор. Раньше выбор был простой: либо слабее локально, либо сильнее в облаке. Теперь появляется третий вариант: сильная модель локально, но медленнее и дороже на старте.

Это не победа над API. Это появление настоящей альтернативы.

И, если честно, мне нравится сам факт, что такая альтернатива существует. Даже если она шумит, греется и выдаёт текст медленнее, чем хочется.

Потому что иногда важнее не скорость ответа, а то, что вопрос вообще не покидал комнату.