Обновить

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

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели8.6K
Всего голосов 11: ↑3 и ↓8-5
Комментарии19

Комментарии 19

такое громкое название, а по факту:

Абсолютная цифровая шизофазия...

В этом и суть кейса) Цель была не стихи генерировать, а заставить ядро корпоративного монстра, под которого нужны серверные фермы, инициализироваться и замкнуть граф вычислений на карточке 2016 года (T4).

Эта «шизофазия» — техническое доказательство того, что мы победили конфликты размерностей тензоров, обошли хардкод GQA и заставили математику матриц сойтись без переполнения памяти (OOM). Это эксперимент про хардкорный MLOps и взлом архитектуры, а не про NLP-осмысленность.

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

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

я правильно понимаю, что вы взяли большую модель и обрезали/сжали ее так, что получилось нерабочее нечто - хуже по качеству по сравнению с моделями, которые изначально влезали в 16гб? А какой смысл в этом?

Как я понял - да. Непонятно, почему операция обрезки называется "сжатием" - так вообще можно 1 нейрон оставить, и через него активацию провести, смысл только...

Справедливое замечание про термины. Технически это экстремальный структурный прунинг (лоботомия), а не классическое сжатие вроде квантования. Но ваш аргумент про «1 нейрон» здесь совершенно не работает.

Если вы оставите 1 нейрон, вы не протестируете сложную кастомную архитектуру. Смысл нашего скелета именно в сохранении топологии:

  1. Мы оставили 2 эксперта (MoE), чтобы протестировать логику роутинга токенов (как движок раскидывает вычисления).

  2. Мы сохранили Attention-блоки, чтобы поймать и исправить зашитый в ядро конфликт GQA (когда ключей 32, а голов 8). 1 нейрон вам эту ошибку не выдаст.

В чем практический смысл? Это классический подход Zero-Cost MLOps. Представьте, что вам нужно написать свой кастомный инференс-сервер или отладить скрипт распределенного обучения для этой архитектуры. Зачем арендовать кластер H100 за тысячи долларов просто для дебага кода? Вы берете этот рабочий микро-скелет, запускаете на локальном ноутбуке, отлаживаете весь пайплайн (потому что графы вычислений идентичны), а уже потом деплоите реальные 744B веса на проде.

Это инструмент для инженеров-архитекторов, а не готовый бот для болтовни.

Представьте, что вам нужно написать свой кастомный инференс-сервер или отладить скрипт распределенного обучения для этой архитектуры. Зачем арендовать кластер H100 за тысячи долларов просто для дебага кода?

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

Я бы, конечно, все-таки сказал, что имеет смысл сделать модель с такой же архитектурой, но под 16 Гб и там уже все тестировать - потому что не факт, что выводы ML инженера для лоботомированной модели также подойдут для полноценной (скорость обучения, инференса и прочего может сильно разнится) - но подход теоретически имеет смысл.

UPD: Хотя для желающих с этим "играться" я бы все-таки взял полноценную H100 в аренду. Если компания хочет использовать подобные штуки сама, то аренда по-любому не должна сжирать много денег по ее меркам, а результаты будут точнее.

Так мы буквально это и сделали) Наш билд — это и есть та самая оригинальная архитектура glm_moe_dsa со всей её специфической логикой роутинга, просто смасштабированная (downscale) по ширине матриц под 16 ГБ.

Вы абсолютно правы в том, что замерять на ней скорость обучения или метрики инференса — бессмысленно. Но для отладки самого кода обвязки, проверки пайплайнов и настройки API-сервера перед деплоем на прод — это идеальный и бесплатный вариант.

Почти, но вы упускаете саму суть эксперимента. Вы сравниваете наш билд с моделями, которые изначально проектировались под 16 ГБ VRAM.

А мы взяли архитектуру, оригинальный чекпоинт которой требует около 1.5 терабайт видеопамяти и кластер из H100 в дата-центре просто для того, чтобы загрузиться.

Моя цель была не сделать «умного чат-бота», а провести стресс-тест самого движка. Заставить сложнейший граф вычислений корпоративного MoE-монстра (с его специфическим Grouped Query Attention) проинициализироваться, обойти зашитые в код конфликты размерностей тензоров и отработать без OOM на слабой карточке 2016 года.

Это хардкорный MLOps-инжиниринг и проверка гибкости фреймворка, а не соревнование по качеству генерации текста. Шизофазия на выходе — это лишь индикатор (print statement), подтверждающий, что математика перемножения урезанных матриц сошлась без ошибок ядра.

Это тестовый полигон. Чтобы научиться управлять корпоративными моделями на сотни миллиардов параметров и писать под них пайплайны, нужно сначала собрать их рабочий микро-скелет на дешевом железе. Иначе отладка и деплой на реальных кластерах за миллионы долларов превращается в рулетку.

Как в известном меме - "Можно, а зачем ?"

Ожидал увидеть в статье рецепт как загрузить плотную Gemma4 на 8-16 гигов видеопамяти. типа из этих https://huggingface.co/unsloth/gemma-4-31B-it-GGUF - без потери качества или минимально. Ну как если бы размер был как у 2бит, а качество как у 16бит.

Тензоры размаж между видеокартой, vram cpu и диском ...на Т4 я так запускаю модели под 64-80 гб веса

Запустить то с офолоадом можно, но, например плотная гемма4 31б на 4090_48Gb выдает не больше 30t/s. А при офлоаде даже 1 слоя тензоров на ЦПУ скорость падает почти на треть, и с каждым слоем все сильнее. При соотношении VRAM-RAM 50 на 5, скорость с 12 потоками CPU - 3-4 t/s.
Перспективно выглядят попытки сделать REAP версии больших моделей МОЕ, где вырезаются "лишние" эксперты, которые могут не использоваться в прикладных задачах.
Надеюсь сделают обрезание для Minimax 2.7, чтобы не Q2 загружать, а Q4_M, хотя бы. Хотя и Q2 работает на удивление неплохо.

Интересно. А как вырезать ненужных экспертов из моделей? Есть где мануал? Тогда просто можно нарезать ту же гемма4-мое на несколько моделей-с пометкой - какая тема у эксперта. Да и более крупные модели тогда можно резать.

На сколько мне известно, прогоняются целевые запросы (например по кодингу) через модель, и на ее роутере считается активация каждого эксперта. Те, которые наберут меньше активаций в последствии вырезаются. Проблема в том, что эксперты могут равномерно распределять веса, и их удаление может сильно ухудшить качество.

Гемму4 уже рипнули https://huggingface.co/mradermacher/gemma-4-21b-a4b-it-REAP-heretic-GGUF и еще много других на HF

есть выход мы зацикливаем слои сами на себя вместо прогона через доп слои я в следущей статье выложу роезультаты но качество улучшается значительно по опыту с GLM-5.1

есть мануал он на три этапа делится: Прежде чем резать, нужно понять, кто в модели «балласт», а кто — «мозг». ФИЗИЧЕСКАЯ ЭКСТРАКЦИЯ и ПАТЧ РОУТЕРА в следующих статьях буду более подробно раскрывать суть метода на примерах кастрации разных моделей

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации