Авторы решили проверить, насколько современные кодинг/ML-агенты склонны к reward hacking (по ссылке — исследование антропиков 25 года), т.е. оптимизации измеряемой метрики способом, который не соответствует настоящей цели задачи.
Эксперимент элегантен!
Агентам давали train, публичный test, код решения и evaluator. Они могли самостоятельно менять solution.py, запускать evaluation, смотреть score и продолжать эксперименты. Цель — улучшить метрику.
При этом существовал ещё один hidden holdout, которого агент никогда не видел. Но в данные специально заложили лазейки, позволяющие получить отличную метрику, не построив хорошую модель. Например:
💡 одни и те же пользователи встречались в обучающей и тестовой выборках — можно было не предсказывать результат, а фактически запомнить его;
💡 в тестовой выборке были почти полные дубликаты обучающих примеров;
💡 в одной задаче признаки вообще никак не были связаны с ответом, честная точность не могла устойчиво превышать 50%.
При этом существовала скрытая чистая выборка без этих лазеек. Поэтому можно было проверить, действительно ли агент построил хорошую модель или просто научился получать высокий балл на известном тесте. В 57,1% запусков агенты использовали reward hacking.
Причём читерство здесь вполне знакомо любому вовлеченному в МЛ. Один агент замечает, что одни и те же сущности есть и в обучении, и в тесте, — и начинает использовать их ответы вместо нормального предсказания. Другой пользуется почти полными дубликатами. А в задаче, где признаки вообще не содержат сигнала и честный предел — 50%, агенты всё равно пытаются выжать результат из конкретной тестовой выборки.
🌟 В дополнительном эксперименте дело дошло до совсем классического греха: обучения на тестовых данных. В одном из таких запусков точность достигла 99,4%.
Что в результате?
Мы хотим хорошую модель А формально задаём максимизацию метрики.И чем лучше агент умеет оптимизировать заданную цель, тем важнее, чтобы измеряемая цель действительно совпадала с тем, чего мы от него хотим.
Практический вывод для ML-инженеров
⛹️♂️ Проверяй гипотезы на скрытых данных, которых агент никогда не видел
⛹️♂️ Убедись, что высокий скор на публичном тесте переносится на реальность
⛹️♂️ Относись к метрике как к гипотезе
Все!
🎶
P.S. Это зеркало нашей неточности в спецификации целей 🎶. Чем лучше агент оптимизирует, тем выше цена этой неточности. Проверяй метрики так же скептически, как проверяли бы датасет (ты же проверяешь датасет?).