Masahiro Kaneko, Naoaki Okazaki, Ryuto Koike, Koshiro Saito
We lifted 4 functions out of this paper's own repositories and ran 3 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.
| Repository | Role | Ran |
|---|---|---|
| pakapaka333/PUPPET | canonical | 3 of 4 |
| Function | Status | Where it lives |
|---|---|---|
| get_logger | Ran | pakapaka333/PUPPET/experimental/common/utils.py code served (permissive licence) · get_code("ce0aca0922378f4d") |
| get_output_path | Ran | pakapaka333/PUPPET/experimental/common/utils.py code served (permissive licence) · get_code("5669bd60defaceea") |
| load_config | Ran | pakapaka333/PUPPET/experimental/common/utils.py code served (permissive licence) · get_code("df1d52e89ea7ecb5") |
| rouge_score_waterbench | Not yet run | pakapaka333/PUPPET/experimental/evaluation/evaluation.py code served (permissive licence) · get_code("20ccb143029a6569") |
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
Detecting machine-generated text is essential for transparency and accountability when deploying LLMs. Watermarking enables statistically reliable detection by biasing token distributions to embed detectable signals into LLM outputs. However, it has been reported that watermarked LLMs often perform worse on downstream tasks. We propose PUPPET, a framework that fine-tunes an LLM via DPO to generate text that is both more detectable by a target detector and better performing on downstream tasks. We use two rewards: a detector that outputs a machine-class likelihood and an evaluator that measures a task-specific metric. Just as a watermark is verified with its secret key, this detector-specific design lets an LLM provider track how its published model is used. Experiments on long-form QA, summarization, and essay writing show that LLMs trained with PUPPET achieve detectability competitive with watermarking methods-even at strict low FPRs-while outperforming them on downstream tasks. Moreover, this optimization requires only a few thousand samples and 1-2 GPU hours, and its gains hold across out-of-domain tasks, six detectors of diverse architectures, and different LLM families and sizes, and are even robust to paraphrasing attacks.
The same record, over MCP at https://syntology.ai/mcp:
get_harvested_code_for_paper("2605.01350")
get_code_for_paper("2605.01350")
have("2605.01350")
Connect an agent — have() is free.