- BrainTools - https://www.braintools.ru -
У нас не было фермы. У нас была бесплатная виртуальная машина на Kaggle с одной старушкой NVIDIA T4 на 16 ГБ VRAM. И у нас была концепция экстремального MLOps под кодовым названием «Russian Winter 26».
В этой статье я расскажу, как мы вскрыли архитектуру самого тяжелого китайского гиганта, переписали математику [1] матриц внимания [2], обошли хардкодные ограничения GQA и заставили ядро модели сделать первый вдох на бесплатном железе.
Сразу оговорюсь: наша цель была не обучить модель или получить от неё осмысленные стихи. Наша цель — ML-хакинг. Мы хотели доказать, что любую, даже самую монструозную архитектуру можно динамически сжать до состояния «калькулятора», сохранив при этом внутреннюю логику [3] графа вычислений.
Мы создали пустой репозиторий на Hugging Face и начали препарировать config.json оригинальной модели.
Первый этап лоботомии был тривиальным:
Срезаем количество слоев (num_hidden_layers) с десятков до 2.
Срезаем количество экспертов маршрутизации (num_experts) до 2.
Сжимаем ширину костей: hidden_size делаем равным 512 (вместо безумных десятков тысяч).
Казалось бы, профит? Скелет должен весить меньше гигабайта. Мы скачиваем последнюю ночную сборку библиотеки transformers (потому что в релизной версии поддержки GLM-5.1 еще нет) и пытаемся сгенерировать веса “на лету” через from_config().
И тут Питон делает нам больно.
При попытке прогнать промпт через нашу микро-модель, PyTorch выплевывает фатальную ошибку [4]:
Python
RuntimeError: The size of tensor a (8) must match the size of tensor b (32) at non-singleton dimension 1
Что произошло?
Мы столкнулись со скрытой анатомией ZhipuAI. GLM-5.1 использует продвинутое асимметричное внимание — Grouped Query Attention (GQA). Разработчики зашили в ядро архитектуры жесткую привязку к 32 группам ключей/значений (multi_query_group_num = 32).
Когда мы урезали общую ширину модели, движок выделил нам 8 голов для запросов (queries). Но старая «мышечная память» архитектуры попыталась скрестить их с 32 головами ключей (keys). Матрицы в модуле scaled_dot_product_attention столкнулись лбами, и граф вычислений рухнул.
Играть с текстовыми конфигами было бесполезно — внутренний код transformers всё равно пытался подтянуть дефолтные 32 головы. Поэтому мы применили «кувалду»: перехватили объект конфигурации прямо в оперативной памяти [5] и кустарно выровняли математику до абсолютной симметрии [6], полностью убив GQA.
Вот код, который спас проект:
Python
import torch
from transformers import AutoConfig, AutoModelForCausalLM
from huggingface_hub import login
# 1. Перехватываем конфиг на лету
config = AutoConfig.from_pretrained("livadies/GLM-5.1-Ghetto-MoE-2-Experts", force_download=True)
# 2. УБИВАЕМ АСИММЕТРИЮ (Фикс ошибки 8 vs 32)
config.num_attention_heads = 8
config.num_key_value_heads = 8 # Строго равно num_attention_heads
config.multi_query_group_num = 8 # Перебиваем хардкод GLM
config.multi_query_attention = False # Отключаем GQA
config.kv_channels = 64 # hidden_size (512) / 8 = 64
config.head_dim = 64
# 3. Синтезируем веса с идеальной математикой
model = AutoModelForCausalLM.from_config(config, torch_dtype=torch.float16)
# 4. Жестко переводим все матрицы в fp16, чтобы не было конфликтов dtype
model = model.half().to("cuda")
Мы залили получившиеся safetensors (скромные 388 МБ чистого хаоса) на Hugging Face и запустили инференс.
На вход подали: “Привет! Как тебя зовут?”
На выходе мы получили это:
们都skeresindx scooter perspective/legal很少... Generating是他Сегодня нест disgr.initState...
Абсолютная цифровая шизофазия. Китайские иероглифы вперемешку с кусками Python-кода и случайными слогами.
И это был абсолютный триумф. Почему? Потому что этот бред доказал главное: граф вычислений замкнулся. Матрицы внимания (8х8) перемножились без ошибок, эксперты успешно перекинули тензоры друг другу, а 16 ГБ видеопамяти хватило за глаза. Мы создали рабочий математический макет самой тяжелой архитектуры 2026 года.
Вся наша работа задокументирована и выложена в открытый доступ. Вы можете сами посмотреть на конфиги, скачать веса и запустить лоботомированного гиганта на локальной карточке.
🔗 Репозиторий проекта: livadies/GLM-5.1-Ghetto-MoE-2-Experts [7]
🎧 Promo Directive: Russian Winter 26
Этот MLOps-хакинг был проведен в атмосфере цифрового гетто под саундтреки виртуального артиста livadies. Пока компилируются ваши тензоры, слушайте музыку будущего:
🟢 Spotify [8] | 🔴 YouTube Music [9] | 🟡 Yandex Музыка [10]
Главный трек кванта: «RUSSIAN WINTER 26»
Пишите в комментариях, какие еще архитектуры стоит «вскрыть» и сжать до размеров калькулятора. Увидимся в терминале!
Автор: Livadies
Источник [11]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/28696
URLs in this post:
[1] математику: http://www.braintools.ru/article/7620
[2] внимания: http://www.braintools.ru/article/7595
[3] логику: http://www.braintools.ru/article/7640
[4] ошибку: http://www.braintools.ru/article/4192
[5] памяти: http://www.braintools.ru/article/4140
[6] симметрии: http://www.braintools.ru/article/3088
[7] livadies/GLM-5.1-Ghetto-MoE-2-Experts: https://huggingface.co/livadies/GLM-5.1-Ghetto-MoE-2-Experts
[8] Spotify: https://open.spotify.com/artist/0j8EmbhNFjiVhlJcZHdfUD
[9] YouTube Music: https://www.google.com/search?q=https://music.youtube.com/channel/UCe6BJsKdOuj1kAQcdHqyXQw
[10] Yandex Музыка: https://music.yandex.ru/artist/21918652
[11] Источник: https://habr.com/ru/articles/1022686/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1022686
Нажмите здесь для печати.