Scott Aaronson, while working at OpenAI, largely solved AI text watermarking together with Hendrik Kirchner.
Here is how his solution works, or see Tenobrus’s version.
- AI outputs are not deterministic. The AI’s job is to pick the probability of each potential next token. The token is then chosen at random.
- By default you use a source of pseudo-randomness for each choice, since actual true randomness is annoying.
- To apply the watermark, you use an otherwise identical private source of pseudo-randomness derived from a secret key.
- Then, given enough text, a score is derived for howe well the choices fit with that particular pseudo-randomness source, versus a different source.
