Подглядел у @j_links ссылку на невероятную историю (твиттер тред тут)
Исследователи обучали агента играть в игру NetHack. Это очень старая ролевая игра из времён (1987 г.), когда нормальных пользовательских интерфейсов не было, и всё происходило в консоли. Игрок проходит уровни, собирает вещи и награды, участвует в сражениях и набирает очки — и всё выражается самыми простыми символами.
Агент научился стабильно набирать примерно 5000 очков. Но однажды после запуска он достиг лишь ~3000, то есть показал результат существенно хуже. Отладка решений всегда дело весёлое, поэтому автор треда попробовал:
— найти проблему в коде загрузки модели агента
— откатить код на пару дней назад
— откатить код на несколько недель назад (ну там то ТОЧНО всё работает?)
— пересобрать окружение
— поменять версию CUDA (драйверов для запуска нейросетей на видеокарте)
— запустить код на персональном ноутбуке, а не сервере
...и ничего не помогало: агент предательски, но стабильно играл на 3000 очков.
После этого автор треда написал автору модели, тот ответил:
— А, да, вероятно, сегодня полнолуние 🌗
Что?? 😑
И да, в тот день и вправду было полнолуние. Чувак запустил игру, и увидел ... надпись «Ты — везунчик! Сегодня полнолуние»
Оказывается, в NetHack есть механика, которая немного меняет процесс игры каждый раз, когда наступает полнолуние (проверка происходит по времени вашей системы). В этот день у героя увеличивается удача, и меняется ещё пара вещей. Это не делает игру сложнее, но модель просто не понимает, как изменились правила, и старается играть так, как привыкла — отсюда и просадка в очках. Для проверки можно сменить время на компьютере — и агент снова набирает 5000 очков.
❓ вот так и сиди отлаживай программу
Исследователи обучали агента играть в игру NetHack. Это очень старая ролевая игра из времён (1987 г.), когда нормальных пользовательских интерфейсов не было, и всё происходило в консоли. Игрок проходит уровни, собирает вещи и награды, участвует в сражениях и набирает очки — и всё выражается самыми простыми символами.
Агент научился стабильно набирать примерно 5000 очков. Но однажды после запуска он достиг лишь ~3000, то есть показал результат существенно хуже. Отладка решений всегда дело весёлое, поэтому автор треда попробовал:
— найти проблему в коде загрузки модели агента
— откатить код на пару дней назад
— откатить код на несколько недель назад (ну там то ТОЧНО всё работает?)
— пересобрать окружение
— поменять версию CUDA (драйверов для запуска нейросетей на видеокарте)
— запустить код на персональном ноутбуке, а не сервере
...и ничего не помогало: агент предательски, но стабильно играл на 3000 очков.
После этого автор треда написал автору модели, тот ответил:
— А, да, вероятно, сегодня полнолуние 🌗
Что?? 😑
И да, в тот день и вправду было полнолуние. Чувак запустил игру, и увидел ... надпись «Ты — везунчик! Сегодня полнолуние»
Оказывается, в NetHack есть механика, которая немного меняет процесс игры каждый раз, когда наступает полнолуние (проверка происходит по времени вашей системы). В этот день у героя увеличивается удача, и меняется ещё пара вещей. Это не делает игру сложнее, но модель просто не понимает, как изменились правила, и старается играть так, как привыкла — отсюда и просадка в очках. Для проверки можно сменить время на компьютере — и агент снова набирает 5000 очков.
❓ вот так и сиди отлаживай программу