Комментарии 19
такое громкое название, а по факту:
Абсолютная цифровая шизофазия...
В этом и суть кейса) Цель была не стихи генерировать, а заставить ядро корпоративного монстра, под которого нужны серверные фермы, инициализироваться и замкнуть граф вычислений на карточке 2016 года (T4).
Эта «шизофазия» — техническое доказательство того, что мы победили конфликты размерностей тензоров, обошли хардкод GQA и заставили математику матриц сойтись без переполнения памяти (OOM). Это эксперимент про хардкорный MLOps и взлом архитектуры, а не про NLP-осмысленность.
Абсолютная цифровая шизофазия. Китайские иероглифы вперемешку с кусками Python-кода и случайными слогами.
И это был абсолютный триумф. Почему? Потому что этот бред доказал главное: граф вычислений замкнулся. Матрицы внимания (8х8) перемножились без ошибок, эксперты успешно перекинули тензоры друг другу, а 16 ГБ видеопамяти хватило за глаза. Мы создали рабочий математический макет самой тяжелой архитектуры 2026 года.
я правильно понимаю, что вы взяли большую модель и обрезали/сжали ее так, что получилось нерабочее нечто - хуже по качеству по сравнению с моделями, которые изначально влезали в 16гб? А какой смысл в этом?
Как я понял - да. Непонятно, почему операция обрезки называется "сжатием" - так вообще можно 1 нейрон оставить, и через него активацию провести, смысл только...
Справедливое замечание про термины. Технически это экстремальный структурный прунинг (лоботомия), а не классическое сжатие вроде квантования. Но ваш аргумент про «1 нейрон» здесь совершенно не работает.
Если вы оставите 1 нейрон, вы не протестируете сложную кастомную архитектуру. Смысл нашего скелета именно в сохранении топологии:
Мы оставили 2 эксперта (MoE), чтобы протестировать логику роутинга токенов (как движок раскидывает вычисления).
Мы сохранили 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 работает на удивление неплохо.
https://huggingface.co/livadies/MiniMax-M2.7-Ghetto-MoE-8-Experts вот я оставил всего 8 экспертов Minimax 2.7 на 15 гб карты т4 2016 года запускается только в путь
Интересно. А как вырезать ненужных экспертов из моделей? Есть где мануал? Тогда просто можно нарезать ту же гемма4-мое на несколько моделей-с пометкой - какая тема у эксперта. Да и более крупные модели тогда можно резать.
На сколько мне известно, прогоняются целевые запросы (например по кодингу) через модель, и на ее роутере считается активация каждого эксперта. Те, которые наберут меньше активаций в последствии вырезаются. Проблема в том, что эксперты могут равномерно распределять веса, и их удаление может сильно ухудшить качество.
Гемму4 уже рипнули https://huggingface.co/mradermacher/gemma-4-21b-a4b-it-REAP-heretic-GGUF и еще много других на HF
есть выход мы зацикливаем слои сами на себя вместо прогона через доп слои я в следущей статье выложу роезультаты но качество улучшается значительно по опыту с GLM-5.1
есть мануал он на три этапа делится: Прежде чем резать, нужно понять, кто в модели «балласт», а кто — «мозг». ФИЗИЧЕСКАЯ ЭКСТРАКЦИЯ и ПАТЧ РОУТЕРА в следующих статьях буду более подробно раскрывать суть метода на примерах кастрации разных моделей

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