Large Language Models (LLMs) are producing increasingly natural text which can be difficult to distinguish from human created text. One way to make LLM generated text identifiable is by applying a watermark in the generation process. Often this is done by introducing some form of pseudo-random noise into the logits produced by an LLM before applying the soft-max and sampling from the distribution of tokens. This makes the text identifiable using a detector function to check for this embedded pseudo-random noise which is unlikely to exist in human text.
While watermarks are an important step towards text provenance, they face certain limitations which makes them difficult to be effective in practice. Detector functions are prone to misidentifying both human and LLM generated text; watermarked text which has been even slightly modified by a human after generation may be difficult to identify; applying a watermark may degrade the text quality of the LLM. Here, I analyze and compare numerous watermarks such as the Green-list, Gumbel-max and SynthID to see how each counteracts the problems above. Using the Llama 3 LLM I generated text with and without watermarks using diverse prompts and varied token limits to be used as data for computing statistics such as perplexity and detection accuracy to evaluate each watermark's effectiveness.