Авторы: Гриша Сапунов, ранее руководитель разработки Яндекс-Новостей, ныне CTO Intento. Области интересов: AI/ML/DL, биоинформатика. Лёша Тихонов, ранее аналитик в Яндексе, автор Автопоэта, Нейронной Обороны... Области интересов: discrete domain, NLP, RL.
Текущая работа также является интересным развитием по части эволюционных алгоритмов. Раньше там приходилось писать различные кастомные операторы (типа скрещивания или мутации в случае генетических алгоритмов, коих я сам написал огромное количество). Теперь ничего этого делать не надо, LLM сама решает как и куда эволюционировать решение, неявно реализуя те же операторы, но пользуясь всем мировым знанием из претрейна. И я думаю, доменно-специфичные LLM могли бы здесь быть ещё сильно лучше. И наверняка будут.
Это всё очень прикольно. Long live LLM-guided evolution!
Приятно также видеть много знакомых имён в авторах или благодарностях. Всем привет!
Всё целиком оформлено как асинхронный пайплайн (спасибо питонячьему asyncio
), где множество задач работают параллельно и дожидаются результата от предыдущих шагов, когда требуется. В пайплайне есть контроллер, LLM сэмплеры и узлы оценки. Всё оптимизировано под throughput, а не время выполнения одного конкретного вычисления. Максимизируют количество проверяемых идей за фиксированный вычислительный бюджет.
Это в целом всё, система не выглядит суперсложной. По сравнению с прерыдущими AlphaTensor, AlphaDev, FunSearch и т.п. всё больше “интеллекта” выносится на сторону LLM.
С FunSearch есть отдельное сравнение в таблице, если кратко, то три ключевых момента. FunSearch работал на уровне одной питоновской функции, здесь работа на уровне всей кодовой базы, сколько имеется, и не обязательно на питоне. У FunSearch была одна objective function, здесь же многокритериальная оптимизация. Наконец, внутри FunSearch были довольно маленькие LLM, обученные на коде, а здесь одна из лучших фронтирных моделей.
Итак, применили AlphaEvolve к различным задачам.
Например, поиск декомпозиции тензора для нахождения способа перемножения матриц, та же самая задача, которую решал узкоспециализированный AlphaTensor, подробнее про саму задачу рекомендую прочитать в оригинальном посте. Стартовали со стандартного градиентного алгоритма, включающего инициализатор, лосс функцию для реконструкции тензора, и оптимизатор Adam. С этой стартовой точки AlphaEvolve вывел новый алгоритм и улучшил SoTA результаты для матричных умножений 14 разных размеров ⟨𝑚, 𝑛, 𝑝⟩. Интересно, что в таблице заявлено улучшение для размера ⟨4, 4, 4⟩, где получили 48 скалярных умножений вместо 49. AlphaTensor правда получал 47, но там была модульная арифметика, а здесь это число для комплексной.
Другое направление включало 50 математических задач из анализа, комбинаторики, теории чисел и геометрии, где надо было находить объекты или делать построения с определёнными свойствами, оптимальными или около-оптимальными по некоторой мере. В 75% случаев AlphaEvolve переоткрыл известное лучшее решение, в 20% улучшил его. Во всех случаях стартовали со случайного или простого решения. По сравнению с классическими подходами AlphaEvolve более универсален и не требует какого-то особого затачивания на конкретную задачу, он сам способен обнаружить эффективные паттерны для поиска решения, что открывает дорогу к широкомасштабному исследованию разных задач. Здесь мы имеем сильно улучшенный FunSearch.
Главная методологическая инновация здесь -- это способность выводить (в смысле эволюционировать) эвристические алгоритмы поиска, вместо того чтобы сразу выводить сами построения. В частности использовалась стратегия итеративного улучшения, когда на каждом шаге алгоритму давали лучшее решение предыдущего шага и фиксированный бюджет (1000 секунд), и модель должна была найти более хорошее построение. Так отбирались эвристики, способные улучшать уже найденные хорошие решения, и финальное построение являлось результатом цепочки различных специализированных эвристик -- ранние специализировались на улучшении простых или случайных начальных состояний, поздние на файнтюнинге околооптимальных решений.
Найденные математические результаты и результаты тензорных декомпозиций собраны в колабе.
Применили AlphaEvolve и к инфраструктурным задачам Гугла -- шедулингу задач на кластере, управляемом Borg. Там надо было раскидывать задачи по машинам с учётом доступности и требований по CPU/memory. Функция должна была выдавать priority score для каждой машины под текущую задачу. AlphaEvolve нашёл эвристику, улучшившую текущую эвристику Гугла в продакшне, что привело к экономии 0.7% ресурсов. В отличие от результатов DRL это ещё и проще и понятнее.
Очередная интересная движуха, AlphaEvolve
https://deepmind.google/discover/blog/alphaevolve-a-gemini-powered-coding-agent-for-designing-advanced-algorithms/
Sakana опять делает что-то интересное!
Our approach has two core innovations: (1) neuron-level temporal processing, where each neuron uses unique parameters to process a history of incoming signals for fine-grained temporal dynamics, and (2) neural synchronization, used as a direct latent representation to modulate data and produce outputs, encoding information directly in the timing of neural activity.
https://sakana.ai/ctm
Первые инкарнации вроде Med-PaLM 2 в здравоохранении, BloombergGPT в финансах, Sec-PaLM 2 в безопасности показывают, что рецепты “общее → узкое” уже работают; ближайшие пару лет зададут темп дальнейшей фрагментации рынков LLM на вертикали.
Читать полностью…Мне кажется, одним из следующих больших майлстоунов в обучении фронтирных моделей будет обучение на большом, актуальном и курируемом массиве учебной и научной литературы.
Это всё в целом как бы не новая идея. Модели и сейчас уже весьма неплохо отвечают на разные актуальные вопросы, решают сложные задачи уровня вплоть до олимпиадного и прогрессируют крайне быстро. Какие-то модели откровенно на книгах и обучаются, см. “Textbooks Are All You Need” (https://arxiv.org/abs/2306.11644, разбирали тут /channel/gonzo_ML/1871). Злые языки правда утверждают, что обучаются они на тест сете, отсюда развитие концепции до “Pretraining on the Test Set Is All You Need” (https://arxiv.org/abs/2309.08632). Другие авторы моделей очень не любят раскрывать состав своих трейн сетов, и не факт, что из-за наличия там тест сетов, может также из-за сложностей с авторским правом.
То есть мы вроде как бы и так уже там или по крайней мере идём. Но я думаю, что до реально масштабного обучения на учебниках, нам ещё надо сколько-то пройти. И попутно надо решить несколько вопросов:
1) Авторское право. Хорошие учебники кому-то принадлежат, защищены авторским правом и они не в опенсорсе с удобной лицензией. И нескоро там будут. Это сложная и многогранная тема и проблема требует системного решения, которое должно включать и экономические стимулы. Пользы от того, что кто-то сделал хороший учебник, а прибыль потом извлекает автор обученной на нём модели, тоже немного. Как-то должна перестроиться вся экономика вокруг таких моделей и данных.
2) Реально большой эффективный контекст, достаточный чтобы модель смогла интернализировать большие области знаний ничего не теряя, а также по ходу дела подтягивать свежие результаты, идеально без переобучения модели. Учебники скорее всего должны быть какого-то нового формата. Возможно частью решения будут являться knowledge graphs, но возможно не будут, большого их количества по разным областям как-то не появилось.
3) Зрелый RAG и иные тулы для работы с новой информацией. Тут вроде ничего нового, будет нужна верификация и оценка качества, оркестрация для регулярных обновлений и предобработки новых книг, статей и прочего, и в целом выстраивание системы, где интеграция старого и нового знания происходит более-менее автоматически.
4) Мультимодальность как минимум для текста + картинок, которых везде миллион и их надо хорошо понимать -- диаграммы, графики, схемы, математические и другие формулы. Видео тоже может быть полезно, но начать можно и без него. Интересно как бы могло выглядеть хорошее обучающее видео не для человека, а для модели?
На выходе получится модель, или даже скорее агент-помощник учёного, обладающий недюжинными способностями в разных областях знаний. Copilot для учёного, а со временем и авто-учёный, куда многие и так идут. А также заодно и тьютор или Букварь для благородных девиц.
Где-то рядом находится вопрос про safety, misuse, dual use и прочие опасные способности моделей. Тестирования моделей на такие способности уже давно есть (https://www.aisi.gov.uk/work/pre-deployment-evaluation-of-anthropics-upgraded-claude-3-5-sonnet) и описанное здесь обучение риски безусловно поднимет. Но бенефиты, я уверен, велики, и явно будет разделение на модели для людей проверенных и для всех остальных.
Большая и самая значимая часть проблем здесь, как видно, не совсем техническая.
Qwen3 models are supporting 119 languages and dialects.
И наконец-то есть полный список этих языков с разбивкой на семьи.
Новые оптимизаторы -- это вообще интересная тема, там тоже постоянно что-то появляется, и какая-то новая теория в том числе. Например, одна из недавних работ “Old Optimizer, New Norm: An Anthology” (https://arxiv.org/abs/2409.20325) обобщает несколько методов (Adam, Shampoo, Prodigy) и показывает их эквивалентность steepest descent с определённой нормой, а также намечает новое пространство (выбор нормы, выбор шага) для дизайна таких алгоритмов. Это всё идейно напоминает подход, который авторы SSM постоянно воспроизводят (/channel/gonzo_ML/2860, /channel/gonzo_ML/2718), сводя во всё более общем матаппарате разные методы (RNN, SSM, трансформеры) под один зонтик. Внимательно работу пока не изучал, но выглядит интересно. И про Newton-Schulz iteration там тоже есть.
Спасибо авторам мюона, нашёл прекрасную цитату в работе Ноама Шазира 2020 года (https://arxiv.org/abs/2002.05202):
“We offer no explanation as to why these architectures seem to work; we attribute their success, as all else, to divine benevolence.”
На этой оптимистической ноте и закончу.
Датасет DUMB500 — это тоже прекрасно, кстати!
Читать полностью…Just in case, бахнул авторазбор статьи про iCoT (https://arxiv.org/abs/2405.14838), которую упоминали в разборе Coconut'а (/channel/gonzo_ML/3567). По мне так довольно полезно уже.
/channel/gonzo_ML_podcasts/117
Тестируют подход на трёх датасетах с математическим (GSM8k) и логическим ризонингом (ProntoQA, и новый ProsQA).
Проверяют на предобученной GPT-2. Для математики используют две латентных мысли (c=2) на каждый шаг ризонинга, три этапа (stages, k=3) и обучают шесть эпох на первом этапе и три на остальных. На логике одна латентная мысль на шаг, шесть этапов, обучают пять эпох на этап.
В сравнении используются следующие бейзлайны:
1) обычный CoT с файнтюнингом модели на примерах
2) No-CoT, с обучением модели сразу выдавать ответ
3) iCoT, implicit CoT из https://arxiv.org/abs/2405.14838, который постепенно интернализировал промежуточные шаги рассуждений через последовательный файнтюнинг, там шаги по одному выбрасывались, а в Coconut вместо них появляются латентные шаги, что по идее даёт модели “подумать” побольше.
4) Pause token, когда между вопросом и ответом вставляются специальные токены <pause> (столько же, сколько continuous thoughts у кокоса) -- никакой цепочки размышлений тут нет, но дополнительные токены могут дать модели дополнительные вычислительные возможности.
Сам Coconut тоже проверяют в трёх режимах:
1) w/o curriculum без мультиэтапного обучения, сразу берутся данные с последнего этапа, где уже нет языковых мыслей, есть только латентные.
2) w/o thought с мультиэтапным обучением и постепенным убиранием языковых шагов рассуждения, но без использования непрерывных латентных мыслей -- по сути похоже на iCoT, но процедура обучения из Coconut
3) Pause as thought c заменой непрерывных мыслей на токены <pause> и сохранением мультиэтапной процедуры
🏁 Результаты
Coconut стабильно лучше LLM без CoT, и лучше CoT на логических задачах. На GSM8k обычный CoT лучше, но у Coconut растёт качество с увеличением числа мыслей на шаг (насыщения там не видно до двух мыслей на шаг, но в приложении попробовали три и там стало хуже, видимо из-за проблем в обучении, нужно что-то менять в процедуре).
Токенов у Coconut при этом меньше в разы.
Coconut с pause as thought в целом тоже неплохо работает, но обычный Coconut лучше.
На авторском датасете ProsQA, где предсказание следующего шага не очень помогает и надо планировать и искать по более сложному графу, обычный CoT не лучше No-CoT, зато Coconut или iCoT существенно улучшают ситуацию.
Без мультиэтапной процедуры с curriculum модель плохо выучивает ризонинг в латентном пространстве. В идеальном мире она бы сама выучила наиболее эффективные непрерывные мысли через бэкпроп, но чего-то не хватает.
Хоть Coconut и призван обходиться без перехода в пространство токенов, это по-прежнему можно делать, если хочется. В одном примере авторы декодировали первую непрерывную мысль и увидели там токены, которые ожидались в промежуточном рассуждении. Это прикольно в плане интерпретируемости.
🔍Анализ
У модели есть интересная возможность переключаться между ризонингом языковым и в латентном пространстве. Авторы дополнительно покопались в латентном ризонинге.
Проверили работу модели на датасете ProsQA с разным числом латентных мыслей, от нуля до шести. Разница здесь только в инференс тайме, модель одна и та же. Также дополнили мультиэтапную процедуру обучения, чтобы модель не забывала более ранние этапы, так что с вероятностью 0.3 замешиваются данные от других этапов.
Сделали более гранулярную классификацию качества ответа модели, теперь есть не просто корректность конечного ответа, а более детальные типы:
1) Correct Path — верный кратчайший путь в графе
2) Longer Path — верный, но не кратчайший
3) Hallucination — путь содержит несуществующие рёбра или несвязный
4) Wrong Target — путь валиден, но не к тому узлу
5) Correct Label и (6) Incorrect Label — для методов, где можно получить только финальный ответ
Ожидаемо, с увеличением количества непрерывных мыслей корректных результатов становится больше. Галлюцинации тоже уходят.
30 мая в Royal Institution в Лондоне будет лекция Хинтона. Есть онлайн.
Discourse: Digital intelligence vs biological intelligence
https://www.rigb.org/whats-on/discourse-digital-intelligence-vs-biological-intelligence
Tech headlines in the last couple of years have been dominated by Artificial Intelligence. But what do we mean by intelligence? What has AI learned from biological intelligence, and how do they still differ?
Acclaimed computer scientist, and winner of the 2024 Nobel Prize in Physics, Geoffrey Hinton will examine the similarities and differences between artificial and biological intelligence, following his decades of ground-breaking work which has enabled the neural networks of today.
Спасибо Мише Бурцеву за ссылку!
Что ждёт профессии, связанные с переводами, в ближайшие годы? Каким станет мышление и коммуникация в эпоху AI? Как LLM справляются с пониманием языка?
https://youtu.be/jWVbaCiN0Tc
Об этом — в подкасте с Григорием Сапуновым, соучредителем и техническим директором компании Intento, специалистом в области ИИ и анализа данных.
Вчера в разборе Multi-Token Attention упоминалась статья про Differential Transformer. До её разбора я всё-таки не доберусь, так что продолжаю эксперименты с автоматизированным разбором.
Результат тут.
В другой задаче применили 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, там не было эволюции кода, был сплошной язык (и риск галлюцинаций), но зато была мультиагентность.
[DeepMind] AlphaEvolve: A coding agent for scientific and algorithmic discovery
Alexander Novikov, Ngân Vu, Marvin Eisenberger, Emilien Dupont, Po-Sen Huang, Adam Zsolt Wagner, Sergey Shirobokov, Borislav Kozlovskii, Francisco J. R. Ruiz, Abbas Mehrabian, M. Pawan Kumar, Abigail See, Swarat Chaudhuri, George Holland, Alex Davies, Sebastian Nowozin, Pushmeet Kohli and Matej Balog
Статья
Пост
AlphaEvolve -- это coding agent агент, оркестрирующий пайплайн с вызовами LLM и выдающий алгоритм, решающий заданную пользователем задачу. Внутри процедуры оркестрации работает эволюционный алгоритм, постепенно создающий программы, улучшающие скор на автоматических метриках для заданной задачи.
Пользователь должен предоставить механизм автоматической оценки генерируемых решений -- это Python функция evaluate()
, мапящая решение в набор скалярных метрик для оценки, которые надо максимизировать. Она может быть как простой и лёгкой, отрабатывающей за доли секунды, так и очень тяжёлой, включающей, например, распределённое обучение сети. Соответственно, задачи требующие ручного экспериментирования, остаются здесь за бортом, текущая версия работает для того, что может быть автоматически оценено.
AlphaEvolve предоставляет API, куда можно отправить код, где часть требующая улучшения помечена комментариями # EVOLVE-BLOCK-START
и # EVOLVE-BLOCK-END
. Где-то там же в коде находится и функция evaluate()
, как и всё остальное, необходимое для связывания всех частей программы воедино.
Эволюционируемая программа не обязана быть финальным результатом, она может быть средством его достижения. Например, найденное решение может быть просто строкой (как часто бывает в эволюционных алгоритмах); функцией определённого вида, определяющей как должно быть создано решение; уникальным поисковым алгоритмом, могущим найти решение при заданном ограниченном бюджете; или ещё чем-то более сложным. Специфика задачи может влиять на выбор подхода, например, для проблем с очень симметричными решениями авторы советуют выводить функции-конструкторы, они получаются более краткими.
Внутри AlphaEvolve и его эволюционного цикла работают несколько компонентов.
Prompt sampler отвечает за шаблоны промптов, включая системные инструкции, а также вставляет в промпт предыдущие найденные решения, засэмпленные из базы программ. Здесь можно многое произвольно расширять: добавлять явные инструкции от пользователя, стохастическое форматирование с заданными извне распределениями, рендеринг результатов оценки, эволюционировать мета-промпт.
Ансамбль LLM, в статье комбинация Gemini 2.0 Flash и Gemini 2.0 Pro, используется для креативной генерации. Такой микс даёт возможность быстрой генерации множества гипотез через Flash и более качественные рекомендации от более медленной Pro. В целом система model-agnostic, можно использовать разное. LLM просят генерить изменения в коде в виде серии диффов, какой блок кода заменять на какой. Но можно и просить заменять код целиком, если так удобнее.
Evaluation содержит в себе набор оценщиков. В простом случае надо вызывать переданную пользователем функцию evaluate()
. В реальности есть также различные опциональные добавки: каскады от более простых примеров к более сложным; фибдек от LLM, когда проще описать желаемые свойства решения, нежели оценивать; параллелизация оценки. Может считаться сразу множество метрик (функция evaluate()
может возвращать несколько) и авторы утверждают, что даже если важна только единственная метрика, оптимизация по множеству метрик даёт лучше результат. Что мне немного удивительно, потому что в многокритриальной оптимизации вроде как не всё так просто, и редко когда получается увеличивать сразе все метрики, или хотя бы не ухудшать остальные при увеличении одной.
База программ или evolutionary database, хранящая найденные решения и оценки их качества. Здесь важно балансировать exploration и exploitation, так что база реализует алгоритм вдохновлённый комбинацией MAP elites и island-based population models.
Веса BLT опубликованы:
https://huggingface.co/facebook/blt
Пока я путешествую и обзоры писать некогда, давайте немного не про ML, а про историю криптографии.
Долгое время я считал, что немецкую шифровальную машину Энигма взломал Тьюринг, и "Бомбу" тоже построил он.
Впервые я узнал о том, что до Тьюринга были польские математики Генрик Зыгальский, Мариан Реевский и Ежи Ружицкий, из книги Turing's Vision от MIT Press. Потом уже и в Википедии обнаружил.
Они первые начали взламывать шифры Энигмы, Реевский первым создал свою Бомбу, а Тьюринг делал уже последующую для усложнённого шифра Энигмы.
И вот меня занесло в Познань, где всё это и происходило, и здесь я нашёл отличный музей Энигмы, где подробно рассказывается история этих польских математиков.
Вот вам немного фото из этого прекрасного музея, включая Бомбу Реевского.
В дополнение к посту о следующем майлстоуне — обучении LLM на актуальной учебной литературе — хочу обсудить конкретное проявление тренда: доменно-специфичные модели (DLLM).
DLLM могут стать самым заметным дизрапшном. По разным оценкам ежегодно выходит 2,8-3,3 млн новых научных статей — человек их не прочтёт, а копилот-модель сможет.
Вероятнее всего, в большинстве значимых областей появятся модели-эксперты, способные отвечать на вопросы по этой области, помогающие решать текущие задачи и дать человеку буст уровня x10 к текущей производительности. Можно будет иметь эксперта по современной физике, супер-интеллектуального помощника в области материаловедения, глубокого эксперта в software engineering, советника в медицине или сельском хозяйстве и так далее.
Между собой модели много чем будут отличаться — разные типы знаний, про многие из которых другим моделям знать не обязательно (физика твёрдого тела не требуется компилятору; медицинской модели не критично знание лицензий ПО), разные требования к лицензиям и безопасности, разные процедуры оценки качества и так далее. Будет и везде своя регуляторика, проверки и сертификации.
Нужна мультимодальность, но на более детальном уровне она будет разной — даже для картиночной модальности объекты будут сильно разными: 3D молекулы, медснимки, UML-диаграммы, фазовые графики — под каждую дисциплину своя суб-модальность.
Не думаю, что DLLM будут покрыты текущими производителями универсальных моделей. Их не хватит, чтобы глубоко копнуть во все эти области и заниматься постоянным обновлением и контролем качества. Но вероятно они предоставят хорошие базовые модели и инфраструктуру для их тюнинга и использования. А другие люди и организации, обладающие уникальными данными и экспертизой, будут DLLM создавать. Этот процесс, вероятно, придётся организовывать самим.
Важными измерениями здесь будут scale-диапазон (on-device → GPU-кластер), и открытая или закрытая (что и как ты контролируешь). В edge и on-device, думаю, будет особенно много интересного в ближайшие годы. Во многих местах надо уметь работать без интернета, особенно если это какой-то непрерывный техпроцесс.
Траектория с самостоятельным предобучением модели (уровня сотен миллиардов — триллионов токенов) останется для избранных и самых богатых, а совсем массовым сценарием будет адаптация базовой модели, в облаке или локально.
Данные по сути распадаются на три разных слоя:
1. Core corpus — стабилизированные источники (учебники, ГОСТы, review-статьи).
2. Dynamic feed — preprints, патенты, свежая пресса (auto-RAG-pipeline).
3. Telemetry (приватные логи и фидбек) — чтобы модель постепенно училась на контексте конкретной организации.
Особая ценность: способность держать эти слои в актуальном состоянии (а это уже SaaS-ниша под названием «DataOps for DLLM»). Core обновляется раз в квартал, Dynamic feed — ежедневный (или даже streaming) ingest препринтов и патентов через RAG-пайплайн, Telemetry — online fine-tuning / RLHF.
Отдельно поверх этих слоёв лежит слой комплаенса: для Core-корпуса важна лицензия, для Dynamic — проверка авторских прав, для Telemetry — GDPR/локальные законы.
Ну и в реальности это будет не просто DLLM, а агент с DLLM внутри, обвешанный специальными дополнительными инструкциями, тулами, да и другими агентами.
Большая тема — доменные бенчмарки, а может в пределе и сертификация. С одной стороны без бенчмарков доверия не будет, с другой стороны всё равно надо проверять на своих данных и задачах, так или иначе у каждой компании своя специфика и свои требования, и разные модели могут вести себя по-разному.
У DLLM профиль рисков отличается от общей модели — хорошая доменная модель ошибается реже, но цена ошибки выше: неправильная дозировка, некорректный отчёт. Отсюда — необходимость доменного аудита, traceable citations, где-то explainability. Вероятно, появится рынок независимого red-team-аудита, который регуляторы и страховщики будут учитывать при выводе модели в прод.
Хороший толк для прослушивания во время утренней прогулки.
Сотрудники Антропика, работающие над вопросами наличия сознания у моделей, рассуждают на тему.
https://youtu.be/pyXouxa0WnY?si=4MRs96pBHkzD3L50
Вау!
https://qwenlm.github.io/blog/qwen3/
Muon Optimizer Accelerates Grokking
Amund Tveit, Bjørn Remseth, Arve Skogvold
Статья: https://arxiv.org/abs/2504.16041
Любопытная история про гроккинг, здесь про влияние оптимизатора и конкретно про то, что переключение оптимизатора с AdamW на Muon существенно ускоряет наступление гроккинга.
Напомним, что гроккинг -- это весьма интересный феномен генерализации, когда модель сначала как бы переобучается (высокое качество на обучающем сете, но низкое на уровне рандома на валидационном), но если продолжать обучение дальше, то в какой-то момент перформанс на валидационном быстро датасете вырастает до высоких значений. Модель “врубается”.
Текущая работа определяет гроккинг следующим образом: это первая эпоха, на которой точность на валидации достигает или превосходит 95%, после того как точность на трейне стабилизировалась около 100%.
Если не читали разбор оригинальной статьи про гроккинг (/channel/gonzo_ML/831), очень рекомендую.
Вот ведь, было время, когда OpenAI публиковал интересные статьи, и эту, и про double descent, и много всего другого…
Muon (MomentUm Orthogonalized by Newton-Schulz) -- это свежий оптимизатор (https://github.com/KellerJordan/Muon), предназначенный для обучения внутренних слоёв моделей, работает с 2D+ матрицами параметров. Разные векторы и скаляры надо обучать чем-то другим, например, AdamW. Эмпирически нашли также, что и эмбеддинги с классификационными головами лучше обучать не Muon’ом, у них другая динамика оптимизации (по крайней мере у первых).
Алгоритм берёт градиенты из SGD-Nesterov-momentum (можно и без Нестерова, но с ним лучше) и делает их постпроцессинг через итерацию Newton-Schulz, которая приближённо ортогонализует матрицу апдейтов. Больше подробностей есть в описании алгоритма тут: https://kellerjordan.github.io/posts/muon/.
Muon родился осенью прошлого года (https://x.com/kellerjordan0/status/1842300916864844014) и уже показал себя хорошо на скейлинге MoE LLM c 3B/16B параметров (вариант deepseek-v3-small) в обучении на 5.7T токенов, будучи примерно в два раза эффективнее AdamW (https://arxiv.org/abs/2502.16982).
В текущей работе проверили несколько датасетов. Датасет как в оригинальной работе про гроккинг и арифметику по модулю 97, а также датасет про чётность 10-битных бинарных строк. Задачи выбраны потому что на них феномен хорошо демонстрируется.
Поскольку одна из свежих работ про гроккинг (https://arxiv.org/abs/2501.04697) показывала влияние нестабильности софтмакса (Softmax Collapse) на проявление феномена, попробовали несколько альтернатив: стандартный Softmax, кусочнолинейный Stablemax с лучшей стабильностью, и приводящий к разреженным результатам Sparsemax.
Проверяли на классическом трансформере, с identity эмбеддингами (токен “42” маппится в вектор 42), RoPE, RMSNorm, SiLU активации, с дропаутом.
Сравнивали AdamW (β1 = 0.9, β2 = 0.98) и Muon. Делали множественные запуски с разными случайными сидами.
Как результат, у Muon статистически значимо преимущество, он существенно раньше приводит к гроккингу, примерно на 100-й эпохе вместо 150-й. Ещё и распределение grokking times более узкое.
Так что хотите быстрого гроккинга, юзайте мюон!
Авторы немного рассуждают на тему, что именно в мюоне помогает гроккингу. Ограничения спектральных норм и сигналы второго порядка уводят модель в сторону от тупого запоминания и помогают обнаружить настоящий паттерн.
В целом требуется более широкое исследование на более крупных моделях и разнообразных задачах.
Ну и раз мы сегодня про терминаторов, то вот есть прекрасный свежий THOUGHTTERMINATOR (/channel/gonzo_ML_podcasts/123), заставляющий ризонинг модели не уходить в слишком глубокие обдумывания. Как полагается, обзор тоже сделан терминатором.
Читать полностью…Работы, на которые надо обратить внимание
https://blog.iclr.cc/2025/04/22/announcing-the-outstanding-paper-awards-at-iclr-2025/
Отдельный интересный результат в том, что Coconut с k=0, то есть когда он вынужден генерировать обычную языковую цепочку CoT без латентных мыслей (но уже с парой токенов <bot>/<eot>), качество выше, чем у CoT, меньше галлюцинирует. Видимо, помогает процедура обучения с замешиванием разных этапов (а может и пара дополнительных токенов тоже).
Латентный ризонинг можно интерпретировать как поиск по дереву, если опираться на интуицию, что непрерывные мысли могут содержать более одного шага рассуждения. Так, первая мысль кокоса может выбрать всех детей узла графа, следующая — детей детей. Получается похоже на поиск в ширину (BFS), но не равномерный, а с вероятностями или приоритетами. В работе посчитали эти вероятности для примеров, получается неявная value function для исследования графа. По ощущению тут где-то рядом MCTS. И вообще выглядит, что обучили не непрерывный CoT, а непрерывный ToT.
По полученным вероятностям можно оценить степень параллелизма мыслей, если смотреть на кумулятивные значения top-1/2/3 кандидатов. У первых мыслей такой параллелизм (разница между линиями для top-1/top-2/top-3) выше, чем у вторых.
Латентное рассуждение позволяет модели отложить выбор конкретных слов и «обдумывать» варианты глубже по дереву поиска, оценивая узлы уже у самых листьев, где ошибочные пути легко выявить. Экспериментально видно, что уверенность модели обратно пропорциональна высоте узла: на малых высотах она чётко отделяет правильные варианты от неправильных, тогда как на больших это различие размывается — поэтому планирование в непрерывном латентном пространстве оказывается выгодным.
---
Интересный подход, он сильно перекликается с LCM (/channel/gonzo_ML/3149), только в LCM сразу работали на уровне отдельных больших мыслей-предложений, а здесь скорее избавляются от токенов для промежуточных вычислений. Наверное, где-то посередине есть подход с латентными концептами для объектов, действий и свойств, пока вроде не видел такого. Верю глобально в это направление с латентным ризонингом и латентным всем. Thought vector is a thing.
In the meantime, прослушайте пение дрозда песню из шапки.
Training Large Language Models to Reason in a Continuous Latent Space
Shibo Hao, Sainbayar Sukhbaatar, DiJia Su, Xian Li, Zhiting Hu, Jason Weston, Yuandong Tian
Статья: https://arxiv.org/abs/2412.06769
Код: https://github.com/facebookresearch/coconut
Песня: https://www.youtube.com/watch?v=PKQPey6L42M
Статья, которую надо разобрать, про Coconut и ризонинг в латентном пространстве. Тем более даже Quanta уже написала, а мы всё нет.
📃TL;DR.
Идея проста: языковое пространство может быть не лучшим выбором для ризонинга через CoT (про CoT и ToT тут /channel/gonzo_ML/1885), и ризонинг можно делать не выходя в пространство токенов. Отсюда рождается Coconut (Chain Of CONtinUous Thought). Последнее скрытое состояние можно не декодировать в токен, а сразу подавать его на вход декодера в авторегрессионном процессе генерации как эмбеддинг для следующего шага.
💡Идея
Это интересный подход по нескольким причинам.
Во-первых, прогон всего ризонинга через токены создаёт узкое место. Из одного эмбеддинга могут быть сгенерированы разные токены, эквивалентные и не очень, и всё богатство оригинальной “мысли” может потеряться. Что если его не терять?
Дополнительный минус в том, что на каждый токен уходит одинаковый вычислительный бюджет, хотя токены неравнозначны. BLT (/channel/gonzo_ML/3109) отчасти решал эту проблему, но там и часть авторов та же, что у кокоса.
В общем, почему бы не попробовать ризонинг без языковых ограничений? Тем более, что, во-вторых, это соответствует некоторым данным по neuroimaging, когда в процессе ризонинга языковые области мозга не задействуются. В частности, одна из свежих работ (/channel/gonzo_ML/2797) говорит, что язык оптимизирован для коммуникации, а не для думания.
🛠Реализация
Она, как уже упоминалось в TL;DR, чрезвычайно проста. В процессе ризонинга мы не задействуем выходную голову модели и её слой эмбеддинга, а в качестве входного эмбеддинга на следующем шаге используем выходной эмбеддинг предыдущего шага.
LLM переключается между двумя режимами: языковым (language mode) и латентным (latent mode). Языковой режим — это стандартный режим для LLM с генерацией токенов. Латентный режим -- новый режим с переиспользованием эмбеддинга. Начало и окончание латентного режима обрамляется токенами <bot> и <eot>. Соответственно для всех токенов с индексами между индексами этих двух токенов включается новый режим. Весь процесс полностью дифференцируемый и позволяет обучать модель обычным бэкпропом.
Вопрос, где взять данные для такого обучения. Для этого берутся языковые данные для обычного CoT и реализуется мультиэтапный curriculum. На начальном этапе (stage) модель обучается обычному языковому CoT. На последующих этапах, для шага номер k, первые k шагов языкового размышления убираются, а внутри <bot>/<eot> тэгов появляются k позиций, в каждую из которых записываются эмбеддинги предыдущего шага. Состояние оптимизатора сбрасывается между отдельными этапами.
Во время обучения оптимизируется обычный negative log-likelihood loss, но маскируется и не учитывается лосс для вопроса и латентных мыслей (не буду кавычки каждый раз ставить вокруг слова мысль). Эта objective никак не стимулирует модель сжимать убираемые текстовые мысли, так что есть потенциал выучивания более эффективных репрезентаций ризонинга.
Для примера с N шагами рассуждения надо сделать N+1 forward pass. KV-кеш может помочь не пересчитывать одно и то же, но всё равно последовательная природа вычисления этих этапов не даёт эффективно распараллеливать весь процесс. Оптимизация является отдельным интересным направлением исследования, и я уверен, что за ней дело не станет.
При инференсе главный челлендж это решить, когда нужно уходить в латентный режим и выходить из него. С токеном <bot> всё просто, ставим сразу после вопроса, а для <eot> рассматриваются две стратегии: 1) обучить бинарный классификатор, решающий по эмбеддингу, когда надо переключаться, и 2) добивать паддингом латентные размышления до фиксированной длины. Оба подхода работают, так что по дефолту используют более простой второй.
🧪Оценка
Теперь признанная классика. Статьи про Adam и механизм внимания, ещё на базе RNN
https://blog.iclr.cc/2025/04/14/announcing-the-test-of-time-award-winners-from-iclr-2015/
Пообщались с Иваром Максутовым и Постнаукой о хренах и пряниках разном
Brand new 2025 AI Index Report is released!
https://hai.stanford.edu/ai-index/2025-ai-index-report