В другой задаче применили AlphaEvolve в нахождении эвристики для тайлинга при матричном умножении, используемом в кернелах для Gemini. Здесь надо эффективно работать на входных матрицах разных размеров. Получили ускорение в 23% относительно ручного кернела и сократили время обучения Gemini на 1%. В масштабах Гугла неплохо. Кроме того, вместо месяцев ручной оптимизации потратили дни автоматической. Пример, когда хороший AI позволяет делать ещё более хороший AI быстрее, ускоряем экспоненту.
Пооптимизировали арифметический блок на TPU. Взяли уже сильно оптимизированный Verilog код, смогли устранить ненужные биты, будет интегрировано в выходящий новый TPU.
Ещё применили к имплементации FlashAttention на Pallas+JAX. Работали напрямую с низким уровнем, результатом компиляции XLA -- intermediate representations (IR). Результат оптимизации проверили на корректность, по скорости добились улучшения в 32% на ядре и дополнительных 15% на пре/пост-процессинге. В целом отсюда дорога ко включению в конечном счёте AlphaEvolve в компиляторы.
На матричных умножениях и одной математической задаче сделали абляции. Каждый из компонентов: эволюционный подход, добавление большого контекста, мета-промптинг, эволюция полного файла вместо отдельных строк, использование больших LLM в дополнение к малым (видимо, Pro в дополнение ко Flash) -- всё улучшает результат.
В общем всё прикольно. Ранние эксперименты с использованием LLM для управления поиском и подобное (типа FunSearch) меня не так впечатляли, но теперь результат прям хорош. У нас сейчас в очередной раз происходит какой-то level-up в универсальности. За последние лет десять революции deep learning мы активно двигались от очень специальных однозадачных решений ко всё более общим. Например, картиночные классификаторы сначала было хорошо обучать на конкретную задачу, и мы учили все эти vgg и resnet’ы на закрытом наборе классов. Через некоторое время оказалось, что есть модели, на которых можно уже делать классификацию по открытому набору классов и вообще собирать классификаторы без обучения на уже предобученных моделях (хоть на CLIP). Потом оказалось, что и картиночные модели можно уже не иметь, теперь VLM умеют очень многое, а создание нового решения ещё больше упрощается -- пиши себе промпты и объясняй что нужно нормальным английским языком. Вот здесь с математикой и оптимизациями так же. Были очень специальные модели (AlphaTensor), появились чуть более общие с LLM (FunSearch), а в нынешней итерации они ещё более общие.
Экспертные знания и умения по оптимизации тоже продолжают вытесняться умными алгоритмами, как оно и было весь путь от прихода нейросетей в computer vision. Непонятно, через 3-5 лет кому-нибудь ещё нужно будет вручную заниматься оптимизацией кернелов? Сколько сейчас на земле людей, способных это сделать? И сколько будет? И явно это не предел, будут и ещё более умные блоки, которым просто объясняй что нужно, а то и не объясняй, сами догадаются. Интересно, как бы результаты AlphaEvolve изменились от включения туда Gemini 2.5 вмеcто 2.0. Любопытный был бы не ablation, а такой substitution.
Можно также это всё рассматривать как вариант test-time compute. Какая по большому счёту разница, запускаем мы там ризонинг поверх LLM, какой-то развесистый Tree-of-Thought, или эволюцию? Эволюция явно круче сэмплинга. Что если сделать дистилляцию AlphaEvolve-аугментированной LLM в обычную LLM? А заодно попросить оптимизировать все процессы обучения и инференса этой модели (как собственно уже было сделано в текущей работе для Gemini и шедулинга задач)? Богатые богатеют, экспоненциальные экспоненциируют.
А ещё ведь наверняка можно и более специализированных агентов добавить в такую систему, и с более качественной критикой, и с большими доменными знаниями. Уух, следующая версия AlphaEvolve может быть вообще бомбой. Возможно, это будет своеобразное слияние с AI co-scientist, там не было эволюции кода, был сплошной язык (и риск галлюцинаций), но зато была мультиагентность.
>>Click here to continue<<