MarkTune: Improving the Quality-Detectability Trade-off in Model-Embedded LLM Watermarking
Organizations: University of Pennsylvania · Carnegie Mellon University · Columbia University
Abstract
Language model watermarking schemes fall into two broad categories: inference-time methods, which modify the decoding process at generation time, and model-embedded methods, which encode a secret signal directly into the model weights. Inference-time watermarking methods incur additional inference overhead and are not applicable in the increasingly prevalent open-weight model settings. In contrast, model-embedded watermarks introduce no additional inference latency-generation uses the standard sampling pipeline-and are particularly well-suited to open-weight settings. However, existing model-embedded approaches such as GaussMark face a fundamental quality-detectability trade-off: achieving strong detection power typically requires weight perturbations that noticeably degrade generation quality. Our key insight is that regularizing toward a high-quality reference distribution decouples quality preservation from proximity to the base model, enabling a better quality-detectability trade-off. Building on this insight, we introduce MarkTune, a theoretically grounded on-policy fine-tuning framework that uses the GaussMark detection statistic as a reward while preserving generation quality through cross-entropy on high-quality human text or KL divergence to a stronger oracle model. Empirically, MarkTune substantially improves the quality-detectability frontier of GaussMark, approaching the detectability of strong inference-time schemes while preserving generation quality and downstream task performance. Marktune also remains robust under the evaluated text-editing and open-weight attacks and generalizes across datasets, retaining substantial detection power on corpora unseen during training. Code is available at https://github.com/zhyzmath/MarkTune-LLM-Watermarking.
Figures & tables
| Method | C4-RealNewsLike | ELI5 | ||||||||
| AUC | TPR | PPL | Seq-rep-3 | MAUVE | AUC | TPR | PPL | Seq-rep-3 | MAUVE | |
| Qwen3-4B-Base, T=0.7 | ||||||||||
| No Watermark | 0.500 | 0.010 | 0.04 | 0.98 | 0.500 | 0.010 | 0.03 | 0.94 | ||
| KGW-1 | 0.996 | 0.964 | 0.04 | 0.98 | 0.971 | 0.710 | 0.04 | 0.92 | ||
| KGW-2 | 1.000 | 0.998 | 0.04 | 0.96 | 0.996 | 0.988 | 0.03 | 0.87 | ||
| Gumbel-max | 0.995 | 0.980 | 0.18 | 0.74 | 0.991 | 0.938 | 0.13 | 0.77 | ||
| Method | Del-0.2 | Del-0.5 | Sub-0.2 | Sub-0.5 | Dipper-1 | Dipper-2 | Translate | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AUC | TPR | AUC | TPR | AUC | TPR | AUC | TPR | AUC | TPR | AUC | TPR | AUC | TPR | |
| Qwen3-4B-Base, T=0.7 | ||||||||||||||
| KGW-1 | 0.881 | 0.330 | 0.617 | 0.040 | 0.873 | 0.324 | 0.638 | 0.048 | 0.771 | 0.142 | 0.573 | 0.026 | 0.831 | 0.242 |
| KGW-2 | 0.975 | 0.746 | 0.697 | 0.082 | 0.986 | 0.826 | 0.747 | 0.106 | 0.884 | 0.372 | 0.616 | 0.038 | 0.928 | 0.552 |
| Gumbel-max | 0.993 | 0.948 | 0.778 | 0.162 | 0.993 | 0.922 | 0.840 | 0.348 | 0.945 | 0.748 | 0.721 | 0.146 | 0.955 | 0.846 |
| SynthID | 0.987 | 0.890 | 0.780 | 0.094 | 0.986 | 0.846 | 0.834 | 0.182 | 0.941 | 0.576 | 0.700 | 0.074 | 0.968 | 0.818 |
Appendix figures & tables13 assets
Supplementary material from the paper’s appendix.
Appendix
| Model | Qwen3-4B-Base on OpenWebText |
|---|---|
| Training steps | 200 |
| GRPO inner steps | 3 |
| Regularization term | Cross-entropy (CE) regularization |
| Regularization coefficient | 0.01 |
| Optimizer | AdamW |
| maximal learning rate | 5e-6 |
| Model | Llama2-7B on OpenWebText |
|---|---|
| Training steps | 300 |
| GRPO inner steps | 3 |
| Regularization term | Cross-entropy (CE) regularization |
| Regularization coefficient | 0.005 |
| Optimizer | AdamW |
| maximal learning rate | 4e-6 |
| Method | Generation (ms) | Detection (ms) |
|---|---|---|
| Qwen3-4B-Base | ||
| GaussMark | ||
| MarkTune (ours) | ||
| KGW | ||
| Gumbel-max | ||
| SynthID | ||
| Method | AUC | TPR | PPL | Seq-rep-3 | MAUVE |
|---|---|---|---|---|---|
| Base | 0.999 | 0.992 | 0.06 | 0.89 | |
| + CE-0.005 | 0.997 | 0.976 | 0.05 | 0.94 | |
| + CE-0.01 | 0.995 | 0.964 | 0.03 | 0.97 | |
| + CE-0.05 | 0.989 | 0.902 | 0.03 | 0.97 | |
| + KL-0.001 | 0.997 | 0.986 | 0.06 | 0.93 | |
| + KL-0.005 | 0.993 | 0.930 | 0.06 | 0.95 |
| Method | AUC | TPR | PPL | Seq-rep-3 | MAUVE |
|---|---|---|---|---|---|
| GaussMark | 0.983 | 0.788 | 0.04 | 0.98 | |
| MarkTune + KL-to-base (quality-matched) | 0.986 | 0.796 | 0.03 | 0.98 | |
| MarkTune + KL-to-base (detectability-matched) | 0.993 | 0.940 | 0.03 | 0.94 | |
| MarkTune + CE-human (default) | 0.995 | 0.964 | 0.03 | 0.97 |
| Method | AUC | TPR | PPL | Seq-rep-3 | MAUVE |
|---|---|---|---|---|---|
| No Watermark | 0.500 | 0.010 | 0.04 | 0.98 | |
| GaussMark ( , init) | 0.995 | 0.970 | 0.05 | 0.93 | |
| w/o (CE only, 200 steps) | 0.990 | 0.888 | 0.05 | 0.93 | |
| w/o (CE only, 1000 steps) | 0.973 | 0.726 | 0.03 | 0.95 | |
| MarkTune (default) | 0.995 | 0.964 | 0.03 | 0.97 |
| G | T | AUC | TPR | PPL | Seq-rep-3 | MAUVE |
|---|---|---|---|---|---|---|
| 8 | 0.7 | 0.995 | 0.964 | 0.03 | 0.97 | |
| 4 | 0.7 | 0.992 | 0.900 | 0.03 | 0.98 | |
| 16 | 0.7 | 0.996 | 0.968 | 0.03 | 0.97 | |
| 8 | 0.5 | 0.983 | 0.820 | 0.06 | 0.92 | |
| 8 | 1.0 | 0.992 | 0.940 | 0.03 | 0.94 |
| Method | AUC | TPR | PPL | Seq-rep-3 | MAUVE |
|---|---|---|---|---|---|
| No Watermark | 0.500 | 0.010 | 0.04 | 0.98 | |
| KGW ( ) | 0.935 | 0.513 | 0.04 | 0.98 | |
| KGW ( ) | 0.987 | 0.861 | 0.05 | 0.98 | |
| MarkTune (KGW reward) | 0.991 | 0.906 | 0.06 | 0.98 | |
| MarkTune ( GaussMark reward, default) | 0.995 | 0.964 | 0.03 | 0.97 |
| Target | TPR | PPL | Seq-rep-3 |
| Qwen3-4B-Base | |||
| L26 mlp.up_proj | 0.822 | 0.04 | |
| L28 mlp.up_proj (default) | 0.788 | 0.04 | |
| L30 mlp.up_proj | 0.808 | 0.05 | |
| L28 mlp.down_proj | 0.610 | 0.05 | |
| Llama2-7B | |||
| Mismatched key | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| TPR@1%FPR | 0.012 | 0.008 | 0.014 | 0.014 | 0.010 | 0.012 | 0.012 | 0.014 | 0.010 | 0.012 |
| Method | AUC | TPR | PPL | Seq-rep-3 | MAUVE |
|---|---|---|---|---|---|
| No Watermark | 0.500 | 0.010 | 0.01 | 0.98 | |
| MarkTune (teacher) | 0.997 | 0.982 | 0.01 | 0.96 | |
| Distilled student | 0.991 | 0.916 | 0.01 | 0.96 |
| Attack | Metric | KGW-1 | KGW-2 | Gumbel-max | SynthID | KGW-D | GaussMark | MarkTune |
|---|---|---|---|---|---|---|---|---|
| Qwen3-4B-Base, T=0.7 | ||||||||
| Del-0.2 | AUC | 0.881 | 0.975 | 0.993 | 0.987 | 0.947 | 0.908 | 0.921 |
| TPR | 0.330 | 0.746 | 0.948 | 0.890 | 0.582 | 0.366 | 0.484 | |
| PPL | 20.50 | 25.19 | 18.82 | 19.15 | 21.23 | 19.49 | 19.39 | |
| Del-0.5 | AUC | 0.617 | 0.697 | 0.778 | 0.780 | 0.851 | 0.622 | 0.744 |
| TPR | 0.040 | 0.082 | 0.162 | 0.094 | 0.196 | 0.048 | 0.068 | |
LLM Watermarking
Large language model watermarking embeds or detects signals in text and models to trace provenance, ownership, and unauthorized use.
See all 111 papers