Как мы провели лоботомию 744-миллиардной нейросети GLM-5.1, чтобы запустить её на 16 ГБ VRAM

Как мы провели лоботомию 744-миллиардной нейросети GLM-5.1, чтобы запустить её на 16 ГБ VRAM

Современный мир open-source ИИ несправедлив. Когда ZhipuAI представили новую архитектуру GLM-5.1, в её характеристиках значилось число, от которого у владельцев домашних ПК темнеет в глазах — 744 миллиарда параметров. Чтобы просто загрузить эту MoE-машину (Mixture of Experts) в память, нужны топовые ускорители за миллионы рублей.

У нас не было фермы. Была только бесплатная виртуальная машина на Kaggle с одной NVIDIA T4 на 16 ГБ VRAM. И была концепция экстремального MLOps под кодовым названием «Russian Winter 26».

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

Шаг 1. Концепция Micro-Ghetto: отрезаем лишнее

Целью не было обучение или генерация осмысленного текста. Мы ставили задачу ML-хакинга: доказать, что любую, даже самую монструозную архитектуру можно динамически сжать до состояния «калькулятора», сохранив внутреннюю логику вычислительного графа.

Мы создали пустой репозиторий на Hugging Face и начали анализировать config.json оригинальной модели.

Первый этап лоботомии был прост:

  • Сократили количество скрытых слоёв (num_hidden_layers) с десятков до 2.
  • Уменьшили число экспертов маршрутизации (num_experts) до 2.
  • Сжали ширину модели: hidden_size стал 512 вместо десятков тысяч.

Казалось бы, скелет должен весить меньше гигабайта. Мы установили ночную сборку библиотеки transformers (официальный релиз ещё не поддерживал GLM-5.1) и попробовали сгенерировать веса на лету через from_config().

И тут Python выдал ошибку.

Шаг 2. Атака фантомных тензоров

При попытке запустить промпт через микро-модель PyTorch выдал фатальную ошибку.

В чём дело?

Мы столкнулись со скрытой анатомией GLM-5.1. Модель использует Grouped Query Attention (GQA) — продвинутую форму механизма внимания. Разработчики жёстко зашили в архитектуру 32 группы ключей/значений (multi_query_group_num = 32).

После сжатия модели у нас осталось 8 голов запросов (queries), но система всё ещё пыталась использовать 32 головы ключей (keys). В модуле scaled_dot_product_attention матрицы не совпали по размерности — и вычислительный граф рухнул.

Шаг 3. Идеальная симметрия 8:8 (Решение)

Правка конфигурационных файлов не помогала — внутренний код transformers всё равно подтягивал дефолтные 32 головы. Мы применили радикальный метод: перехватили объект конфигурации в памяти и вручную выровняли параметры, полностью отключив GQA.

Мы принудительно установили количество групп ключей равным числу голов запросов — 8. Это создало идеальную симметрию 8:8, совместимую с обычным multi-head attention.

Шаг 4. Первый вдох Левиафана

Мы загрузили полученные safetensors — скромные 388 МБ «чистого хаоса» — на Hugging Face и запустили инференс.

На вход подали: «Привет! Как тебя зовут?»

На выходе получили:

们都skeresindx scooter perspective/legal很少... Generating是他Сегодня нест disgr.initState...

Абсолютная цифровая шизофрения: китайские иероглифы, обрывки Python-кода, случайные слоги.

Но это был триумф. Почему?

Потому что этот бред доказал главное: вычислительный граф замкнулся. Матрицы внимания (8×8) перемножились без ошибок, эксперты передали тензоры, а 16 ГБ видеопамяти хватило с запасом. Мы создали рабочий математический макет самой тяжёлой архитектуры 2026 года.

Итоги и артефакты

Вся работа задокументирована и выложена в открытый доступ. Вы можете изучить конфиги, скачать веса и запустить «лоботомированного гиганта» на локальной видеокарте.

Репозиторий проекта: livadies/GLM-5.1-Ghetto-MoE-2-Experts

Читать оригинал