Как занять последнее место в соревновании агентовСегодня я принял участие в сорвеновании по разработке агентов
BITGN-PAC1 от
@llm_under_hood. И занял последнее место в локальном лидерборде в Белграде. Мой слон правильно решил 9/104 задач. Как прийти к успеху, как я:
Первый ключ к успеху – тайминг. У меня была довольно тяжелая неделя и я добрался до того чтобы запилить первую версию агента в ночь с четверга на пятницу. А это, если что, соревнование, где заранее открыт тестовый датасет и вы упорно пилите агента пару недель до соревнования, а на самом мероприятии запускаете их на продовом датасете.
Второй ключ к успеху – запустить агента как джина с указанием в плане "выбить 43/43 тестового датасета". Утром пятницы у меня был готов "агент" выбивающий 43/43. Но было две проблемы:
1. там не было ни одного вызова LLM
2. Выбивал он их регулярками на датасете который он скачал, чтобы быстрее итерироваться
Третий ключ к успеху – незнакомая архитектура. Помните я писал
про RLM и pi? Я подумал что соревнование – отличный повод опробовать на практике штуку, с которой я раньше не работал. У меня не было достаточно опыта, чтобы хорошо описать архитектуру и времени, чтобы много итерироваться. Например, только сегодня я обнаружил, что агент всё время пытается решить задачу за один проход, игнорируя точки останова, которые я ему дал чтобы исследовать проблему и потом уже придумывать алгоритм решения.
Четвертый ключ к успеху – отсутствие инструментов наблюдения и мониторинга, что же там агент делает на самом деле, какие тулы вызывает и где спотыкается. Это я всё сделал в день соревнования и только тогда смог найти своим взглядом баг выше.
Что я сделаю по-другому, когда буду принимать участие в следующем соревновании:
- начну сильно заранее и высвобожу под это больше времени
- сразу накидаю репортилку в которой будет удобно смотреть процесс и результаты
- запущу как можно быстрее версию которую просто сделает нейронка как ей понравится
- посмотрю на репорты и выведу ключевые идеи на основании которых выброшу всё и перепишу на v2
- на основе тестового датасета попрошу нагенерировать дополнительных кейсов
- дальше итеративно буду улучшать агента, отслеживая генерализацию, чтобы не было оверфита на тестовых задачах
Ещё один классный инсайт от одного из участников Виталия – поговорить с агентом на тему "как мыслить о такой задаче". Заметапромптить самого себя, так сказать. Это бы помогло подсветить заранее риски, возможные проблемы и, например, указать мне на тот факт, что задачи можно сабмитить на платформу параллельными воркерами.