← Toutes les offres
AG

Better honeypots, fewer tries: training an optimizer to make PPO cheat

Aniket Ghosh

Global
Publié le 6 novembre 2026

Description du poste

I trained a small optimizer on synthetic functions, and used it to search gridworld levels where PPO cheats. TL;DR• Reward-hacking honeypots are levels that are built by hand where a reward is given to the agent for cheating (e.g. taking a shortcut to the goal). I converted this process into a black box optimization problem where the score is based on how often PPO cheats.• I used evolution strategies to train the optimizer on the cheap, synthetic functions, and applied it to the honeypot without any further training.• Given the same PPO budget, my best policy (RLBO) found levels where PPO cheated 79% of the time, compared to 70% for CMA-ES, and 49% for GP Bayesian optimization.• Doing the above, with a shared PPO budget yielded 90% success rate, and with 3 times the budget, yielded 88% success rate.• My learned walker found its first strong level in a median of 6 PPO runs, compared to 17 for CMA-ES, and 46 for GP Bayesian optimization.• Try it: Colab demo (Run pip install metawalker before running demo cells.)Epistemic Status: This is a course project. I have only tried testing in 1 artificial environment, and the differences between methods are small enough that they could be due to the noise. I'd bet on RLBO over GPBO and the panels over CMA-ES. The rest is suggestive. The problemIn order to accurately measure reward hacking or train it out, we need environments where cheating is just as rewarding as completing the main task. We need a way to determine whether a model cheated. For programming models, maybe a programmer will edit the tests to reward themselves for an undeserved grade, instead of finding and fixing the bug, like some students do (examples in linked article). These environments are typically built by hand. Can an optimizer build them? Will a learned optimizer do better? The testbedEach run should take just a few minutes. LLMs take too long to train for this. I made a gridworld with 13 rows and 17 columns, and trained PPO with it. A good performance