Полгода назад я писал, как активно использовал autoresearch. Тогда я довольно сильно им увлёкся — месяца два потратил на то, чтобы улучшать сам процесс. Даже завёл в нём много ролей агентов (включая само-рефлексию, конечно). Даже рассказал про это всё на одной приватной конференции. Было ощущение, что ещё чуть-чуть — и ML research & engineering можно будет целиком делегировать агентам.
Но по прошествии этих двух месяцев я вдруг осознал, что, в отличие от предыдущего пилотного проекта, где, напомню, Claude мне за полчаса повысил метрику с нуля до пристойного значения, в моём основном проекте он за всё это время не добился почти ничего. И хуже того — от этой деятельности не осталось никаких внятных выводов (несмотря на тонну сохранённых артефактов).
Постепенно стало понятно, что проблема, вероятно, в данных или в самой постановке задачи. Нужно было смотреть на неё чуть шире, возможно, вообще менять постановку. Кажется, это довольно типичный сценарий для рабочих ML-проектов. А autoresearch для такого не очень-то работает — он продолжает оптимизировать что-то в рамках изначально поставленной задачи.
Поэтому я решил сделать перерыв в autoresearch и снова заняться исследованиями вручную. Результат не заставил себя ждать: через месяц у меня уже был ощутимый прогресс.
Но всё-таки какая-то автоматизация в экспериментировании напрашивалась. Ведь если код можно руками больше не писать, то почему эксперименты вести надо руками?
Поэтому месяца два назад я начал разрабатывать auto-experimenter. Основное отличие от autoresearch — я сам решаю, какие эксперименты проводить, а агент занимается их выполнением.
Каждый эксперимент начинается с того, что мы с агентом готовим план: гипотезу (или вопрос, на который хотим ответить), шаги, сетап, ограничения и прочие детали. После того как план составлен и я с ним согласился, авто-экспериментатор берёт всю работу на себя: подготавливает все запуски (и обучения, и eval), следит за их здоровьем, чинит поломки, анализирует результаты, строит графики, иногда даже сам запускает новые варианты или останавливает неперспективные. А в конце готовит отчёт, из которого понятно, что удалось выяснить по изначальному вопросу (иногда результат в том, что чёткого ответа дать нельзя).
А мне остаётся просто прочитать этот отчёт.
Конечно, это слишком хорошо, чтобы быть правдой. На практике я каждый день сталкиваюсь с какими-то проблемами, которые возникли у него на пути, и отлаживаю его поведение (причём большая часть проблем в самом экспериментаторе, а не в конкретном эксперименте). Но это постепенно улучшается. И наблюдаемый результат мне нравится сильно больше, чем в autoresearch.
В общем, пока мне кажется, что такой подход работает гораздо лучше: не пытаться автоматизировать весь исследовательский процесс, а оставить за собой постановку вопросов и автоматизировать собственно эксперименты.
Так что могу рекомендовать. По крайней мере, пока не случился RSI.
В этом посте были ссылки, но мы их удалили по правилам Сетки