На бесплатной виртуальной машине Kaggle с одной NVIDIA T4 (16 ГБ VRAM) удалось запустить математический макет GLM-5.1 — MoE-модели ZhipuAI на 744 млрд параметров. Итоговые веса заняли 388 МБ; модель выдала бессвязный вывод, но граф вычислений отработал без ошибок.

GLM-5.1 вышла как open-source-модель, однако её реальный запуск требует кластера топовых ускорителей. Авторы поставили другую задачу: не получить осмысленный текст, а доказать, что архитектуру любого масштаба можно динамически сжать до работоспособного вычислительного скелета. Поддержки GLM-5.1 в релизной версии библиотеки transformers на момент эксперимента ещё не было, поэтому использовалась ночная сборка.

Первый этап сжатия был механическим: num_hidden_layers сокращён до 2, число экспертов маршрутизации — до 2, hidden_size выставлен в 512 вместо исходных десятков тысяч. Однако при первом же прогоне промпта PyTorch выбросил ошибку: «The size of tensor a (8) must match the size of tensor b (32) at non-singleton dimension 1». Причина — хардкодная привязка архитектуры к 32 группам ключей и значений в модуле Grouped Query Attention (multi_query_group_num = 32). После урезания ширины модели движок выделил 8 голов для запросов, но попытался скрестить их с прежними 32 головами ключей.

Авторы урезали num_hidden_layers до 2, число экспертов до 2, hidden_size до 512 — скелет занял 388 МБ

Редактировать текстовые конфиги оказалось бесполезно: внутренний код transformers всё равно подтягивал дефолтные значения. Авторы перехватили объект конфигурации в оперативной памяти и принудительно выровняли параметры: num_attention_heads = 8, num_key_value_heads = 8, multi_query_group_num = 8, multi_query_attention = False, kv_channels = 64 (512 / 8), head_dim = 64. После этого модель была синтезирована через from_config() в формате fp16 и переведена на CUDA.

Инференс на промпт «Привет! Как тебя зовут?» вернул смесь китайских иероглифов, фрагментов Python-кода и случайных слогов. Авторы расценивают это как успех: случайно инициализированные веса и не должны давать осмысленный текст, но отсутствие ошибок подтверждает, что матрицы внимания 8×8 перемножились корректно, эксперты обменялись тензорами, а видеопамяти хватило с запасом.

Практическая ценность эксперимента — в методе, а не в результирующей модели. Техника перехвата конфига в памяти и ручного выравнивания GQA применима к любой MoE-архитектуре с хардкодными ограничениями на число групп внимания. Репозиторий с конфигами и весами открыт на Hugging Face по адресу livadies/GLM-5.1-Ghetto-MoE-2-Experts.