{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2609-15657","title":"Predictive Likelihood Ratios for Language Model Watermark Detection","arxiv_id":"2609.15657","date":"2026-09-14","proceeding":null,"authors":["Li Ma"],"abstract":"Keyed watermark detection tests dependence between observed tokens and pseudorandom variables reconstructed from a secret key. Building on the pivotal framework of Li et al. (2025), we construct predictive likelihood ratios that average over uncertain probability deficits and residual-tail distributions. The aim is robust detection power across alternative specifications without requiring a single signal-strength tuning. A mixture prior combines tail shape and effective width; hierarchical extensions allow within-document variation in deficit or width. The test maximizes prior-averaged power at a fixed size, but is not generally uniformly most powerful or minimax. Under the exact conditional pivot null, normalized predictive alternatives selected before each observation yield a Bayes factor that is also a test martingale: Type I error control is unaffected by alternative misspecification and remains valid under optional stopping. This guarantee does not cover violations of the conditional null, and the interpolated implementation has no certified anytime guarantee. Gumbel marginal likelihoods are evaluated by fixed quadrature. Across the evaluated tail-shape and tail-width alternatives and three horizons, the union-tail mixture has maximum observed Type II error regret .0080, compared with .0962 for the equal-tail mixture, relative to the best tested rule. On temperature-matched outputs from two open models, it improves AUC over the equal-tail baseline in all eight non-saturated model-temperature cells, although the leading reference score generally has higher AUC. Supplementary experiments show retained power under independent null-like replacement and smaller changes from hierarchical dependence modeling. The evidence supports robustness across the evaluated alternatives, not uniform power guarantees or resistance to arbitrary text edits.","url_abs":"https://arxiv.org/abs/2609.15657","url_pdf":"https://arxiv.org/pdf/2609.15657","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2609.15657","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2609.15657"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/MaStatLab/PLRWatermark","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":21},"by_repo_kind":{"found_in_text":{"samples":21,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"0d62387e56d267c5","entry":"beta_grid_prior","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/bayesian_watermark.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/bayesian_watermark.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0d62387e56d267c5"}},{"code_sha256_prefix":"3d1069cecaec3698","entry":"build","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/build_prompts.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/build_prompts.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3d1069cecaec3698"}},{"code_sha256_prefix":"a37526267894a76f","entry":"delta_grid","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/check_delta_learning.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/check_delta_learning.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a37526267894a76f"}},{"code_sha256_prefix":"b962cb2c40a0473b","entry":"effective_prior_support","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/benchmark_paper_experiment.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/benchmark_paper_experiment.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b962cb2c40a0473b"}},{"code_sha256_prefix":"63657202a66cac76","entry":"fetch_shard","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/build_prompts.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/build_prompts.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"63657202a66cac76"}},{"code_sha256_prefix":"199955359ab1bd15","entry":"identical_to_four_decimals","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/check_clean_quadrature.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/check_clean_quadrature.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"199955359ab1bd15"}},{"code_sha256_prefix":"ea0154500e106d6d","entry":"indicator_key","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/benchmark_contamination.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/benchmark_contamination.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ea0154500e106d6d"}},{"code_sha256_prefix":"6c4cde22d84f6fa6","entry":"instrument","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/check_figure_geometry.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/check_figure_geometry.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6c4cde22d84f6fa6"}},{"code_sha256_prefix":"2f8f5e75ac9d73f1","entry":"is_point_mass_method","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/benchmark_contamination.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/benchmark_contamination.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2f8f5e75ac9d73f1"}},{"code_sha256_prefix":"2a5ab900a8ddd7da","entry":"least_favorable_probabilities","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/bayesian_watermark.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/bayesian_watermark.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2a5ab900a8ddd7da"}},{"code_sha256_prefix":"ea708dfa2b17d157","entry":"logsumexp","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/bayesian_watermark.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/bayesian_watermark.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ea708dfa2b17d157"}},{"code_sha256_prefix":"a7ed6ccc4e9dbce6","entry":"panels","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/check_figure_geometry.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/check_figure_geometry.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a7ed6ccc4e9dbce6"}},{"code_sha256_prefix":"cb135715278b995d","entry":"parse_geometry","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/check_figure_geometry.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/check_figure_geometry.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cb135715278b995d"}},{"code_sha256_prefix":"049125724c2f4330","entry":"point_mass_method","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/benchmark_contamination.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/benchmark_contamination.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"049125724c2f4330"}},{"code_sha256_prefix":"6bd801e493fd8147","entry":"read_csv","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/check_manuscript_tables.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/check_manuscript_tables.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6bd801e493fd8147"}},{"code_sha256_prefix":"905fbfaea546ab77","entry":"read_json","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/check_manuscript_tables.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/check_manuscript_tables.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"905fbfaea546ab77"}},{"code_sha256_prefix":"683398569d564d3b","entry":"sha256","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/build_prompts.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/build_prompts.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"683398569d564d3b"}},{"code_sha256_prefix":"5591653eea552fbf","entry":"simulate_gumbel_pivots","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/check_delta_learning.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/check_delta_learning.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5591653eea552fbf"}},{"code_sha256_prefix":"1cbdaf288020b782","entry":"spike_log_density","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/contamination_asymmetry.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/contamination_asymmetry.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1cbdaf288020b782"}},{"code_sha256_prefix":"030536d64258273e","entry":"summarize","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/check_delta_learning.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/check_delta_learning.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"030536d64258273e"}},{"code_sha256_prefix":"3b25a3fe9619ed87","entry":"visible_tex","repo":"MaStatLab/PLRWatermark","repo_kind":"found_in_text","path":"code/check_manuscript_tables.py","file_url":"https://github.com/MaStatLab/PLRWatermark/blob/HEAD/code/check_manuscript_tables.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3b25a3fe9619ed87"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"stat.ML","source":"arxiv_backlog_21d_20260915.json"},"syntology_extracted_results":{"kind":"leaderboard_placements","source":"Syntology's leaderboard-shaped extractor over the paper's own arXiv-HTML tables: a model pointed at a cell, the number was read from that cell and checked against the board's metric, dataset, split and scale, and an independent check accepted the entry; not reviewed by the paper's authors or the archive's editors","extractor_model":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","verifier_model":null,"prompt_sha":"fa63d4bb9d755694","coverage":{"sentence":"Syntology has checked 6,264 of the 9,581 papers on this site that are newer than the archive; results from the others appear after they are checked.","papers_newer_than_archive":9581,"papers_checked":6264},"entries":[],"not_placed":{"boards":0,"rejected_by_independent_check":0,"refused_by_a_rule":0,"check_did_not_answer":0,"proposed_without_a_cell":0,"declined_by_site":0}}}