ShinkaEvolve: эволюция программ с LLM добивается SOTA в упаковке кругов примерно за 150 запусков
Что делает ShinkaEvolve
ShinkaEvolve от Sakana AI — это открытый фреймворк, который сочетает большие языковые модели (LLM) и эволюционный поиск для автоматического улучшения программ, решающих научные и инженерные задачи. Основная идея — достичь высокой эффективности по числу оценок, снижая количество запусков от тысяч до сотен.
Ключевые приёмы, которые снижают число запусков
Фреймворк экономит вычисления с помощью трёх взаимосвязанных механизмов:
Адаптивная выборка родителей: родители для мутаций выбираются из островов с учётом фитнеса и новизны, что обеспечивает баланс между исследованием и эксплуатацией. Используются стратегии вроде степенной выборки или взвешивания по результатам и числу потомков вместо постоянного подъёма к текущему лучшему.
Фильтрация по новизне: предлагаемые правки кодируются в векторном пространстве и сравниваются с архивом. Если косинусная похожесть выше порога, вторичная LLM выступает в роли судьи новизны и решает, выполнять ли запуск, что предотвращает повторные оценки почти идентичных кандидатов.
Бандитная ансамбляция LLM: несколько LLM-бэкендов рассматриваются как руки бандита. Система отслеживает относительные приросты фитнеса от каждого модели и перенаправляет будущие мутации к наиболее перспективным моделям по UCB1-подобному правилу.
Бенчмарки и результаты
Команда проверила ShinkaEvolve в четырёх областях и показала стабильные улучшения при маленьких бюджeтах:
Упаковка кругов (n=26 в единичном квадрате): достигнута новая SOTA-конфигурация примерно за 150 оценок с проверкой строгих ограничений.
AIME математическое рассуждение (набор 2024): фреймворк эволюционировал агентные скелеты, которые строят Парето-границу точности против бюджета вызовов LLM, превосходя ручные базовые решения и переносясь на другие года и модели.
Соревновательное программирование (ALE-Bench LITE): начиная с решений ALE-Agent, ShinkaEvolve дал около 2.3% среднего прироста по 10 задачам и вывел одно решение с 5-го на 2-е место в условном рейтинге AtCoder.
Обучение LLM (Mixture-of-Experts): была найдена новая функция потерь для балансировки нагрузки, добавляющая штраф за недоиспользование, что снижает miss-routing и улучшает perplexity и прикладные метрики.
Как устроен эволюционный цикл на практике
ShinkaEvolve хранит архив оцениваемых программ с фитнесом, публичными метриками и текстовой обратной связью. Каждый цикл включает:
- Выбор острова и родителей по адаптивной политике.
- Построение контекста мутации из топ-K программ и случайных “источников вдохновения”.
- Предложение правок через три оператора: диффы, полные переписывания и LLM-руководимые кроссоверы, с защитой неизменяемых областей кода метками.
- Фильтрация новизны и запуск только тех кандидатов, которые прошли судью.
- Обновление архива и статистики бандита по результатам выполнения, что влияет на выбор LLM в последующих поколениях.
Система также периодически генерирует мета-черновик с успешными стратегиями, который используется в подсказках для ускорения последующих поколений.
Конкретные инженерные выигрыши
ShinkaEvolve не просто применял заранее заданные методы. Были обнаружены следующие техники:
Для упаковки кругов: структурированные инициализации (например, золотой угол), гибридный глобально-локальный поиск (simulated annealing + SLSQP) и механизмы выхода из локальных минимумов, такие как разогрев температуры и ротации колец.
Для AIME: трехступенчатый ансамбль экспертов — генерация, критическое рецензирование, синтез — который достигает оптимального соотношения точности и затрат примерно при семи вызовах LLM.
Для ALE-Bench: целевые инженерные улучшения, например кэширование статистик поддеревьев kd-дерева и целевые перемещения ребер к ошибочно классифицированным элементам, что повышает оценки без полного переписывания решений.
Для MoE loss: ввод штрафа за недоиспользование, модулируемого энтропией, улучшил маршрутизацию слоёв и снизил показатель perplexity.
Сравнение с предыдущими системами
AlphaEvolve и подобные закрытые проекты показывали сильные результаты, но при значительно больших количествах оценок. ShinkaEvolve воспроизводит и превосходит результат по упаковке кругов при порядках меньших выборок и открывает весь стек под Apache-2.0. Абляции показывают, что адаптивный выбор родителей, фильтрация новизны и бандитная ансамбляция вносят существенный вклад в эффективность.
Где посмотреть и как запустить
Проект доступен под лицензией Apache-2.0 с публичным кодом, WebUI, примерами и ноутбуками. Технические детали и репозиторий находятся по адресу https://sakana.ai/shinka-evolve/.