24 часа и 1000 вызовов инструментов: что на самом деле доказывает кейс с GPU-ядрами
Бенчмарки измеряют спринт агента. Исследование Meta про оптимизацию ядер измеряет марафон — и это куда более интересная цифра.
Условия эксперимента
Meta проверила, способен ли Muse Spark 1.2 итеративно оптимизировать GPU-ядра на дистанции больше 1000 вызовов инструментов, в прогонах длиной до 24 часов. Внутри агентной среды Muse Code модель пишет ядро, компилирует его, профилирует относительно выданного бейзлайна и по данным профилировщика пробует снова — плотный цикл «написал — скомпилировал — измерил — улучшил», выдержанный целые сутки. Целями бенчмарка были attention-ядра KDA и MLA на GPU NVIDIA Hopper.
Одно правило сделало тест честным: моделям запретили импортировать сторонние библиотеки ядер вроде FLA. Никакого «обернул чужую быструю реализацию и записал себе в заслуги» — агент должен был применить настоящие знания об оптимизации ядер и реализовать алгоритмы на Triton самостоятельно.
Что агент построил на самом деле
Решения получились отнюдь не шаблонными. Для KDA — где бейзлайном служила Triton-реализация из FLA — Muse Spark 1.2 соединил chunk-параллельное подготовительное ядро с последовательным сканом между чанками, добавив к стандартным fusion и tiling специфичные именно для KDA ходы вроде переноса центра гейтированного кумулятивного затухания в середину чанка. Для MLA — против референса на PyTorch при batch size 1, 64 головах внимания, длине последовательности 8192 и латентной размерности 512 — он спроектировал двухъядерный Triton-пайплайн, переиспользующий общий KV-латент одновременно как K и как V.
Такие оптимизации специалист пишет после того, как разберётся в структуре алгоритма, — это не косметические правки циклов. И агент продолжал находить ощутимые улучшения относительно бейзлайна на протяжении всего прогона: прогресс накапливался сотнями итераций, а не выдыхался после первого рывка.
Почему настоящий заголовок — это «24 часа»
Улучшать ядро в течение двадцати минут умеют многие модели. Чтобы сутки удерживать направленный прогресс, нужна инфраструктура, которой у большинства агентов нет. Нагрузку несут три вещи. Кондиционирование на цель держит семисотую итерацию нацеленной на тот же результат, что и первую, — модель обучали ровно этому. Компактизация контекста сохраняет то, что важно (какие стратегии провалились, что показал профилировщик), не давая утонуть в суточной истории. А журнал событий делает рантайм устойчивым к перезапускам: за 24 часа что-нибудь обязательно икнёт, и падение, стирающее двадцать третий час работы, обесценило бы весь эксперимент.
Что это значит для обычной работы
Ядра под Hopper оптимизируют единицы команд. Но форма задачи — итерируйся к измеримой цели, учись на каждой попытке, не теряй нить — совпадает с массой негламурной инженерии: добить нестабильный тестовый набор, планомерно выгрызать килобайты из бандла, мигрировать API по сотне колл-сайтов за раз. Этот кейс — доказательство Meta, что «запустил на ночь и проверил утром» — теперь реальный рабочий процесс. Методология оценки опубликована на исследовательском сайте Meta; продуктовая сторона работы на длинном горизонте начинается в документации.