{"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/three-bricks-to-consolidate-watermarks-for","title":"Three Bricks to Consolidate Watermarks for Large Language Models","arxiv_id":"2308.00113","date":"2023-07-26","proceeding":null,"authors":["Pierre Fernandez","Antoine Chaffin","Karim TIT","Vivien Chappelier","Teddy Furon"],"abstract":"The task of discerning between generated and natural texts is increasingly challenging. In this context, watermarking emerges as a promising technique for ascribing generated text to a specific model. It alters the sampling generation process so as to leave an invisible trace in the generated output, facilitating later detection. This research consolidates watermarks for large language models based on three theoretical and empirical considerations. First, we introduce new statistical tests that offer robust theoretical guarantees which remain valid even at low false-positive rates (less than 10$^{\\text{-6}}$). Second, we compare the effectiveness of watermarks using classical benchmarks in the field of natural language processing, gaining insights into their real-world applicability. Third, we develop advanced detection schemes for scenarios where access to the LLM is available, as well as multi-bit watermarking.","url_abs":"https://arxiv.org/abs/2308.00113v2","url_pdf":"https://arxiv.org/pdf/2308.00113v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"three-bricks-to-consolidate-watermarks-for","repo_url":"https://github.com/facebookresearch/three_bricks","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"three-bricks-to-consolidate-watermarks-for","repo_url":"https://github.com/jwkirchenbauer/lm-watermarking","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"three-bricks-to-consolidate-watermarks-for","repo_url":"https://huggingface.co/spaces/NohTow/LLM_watermarking","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[{"task_slug":null,"task_name":"valid"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2308.00113","atlas_url":"https://app.syntology.ai/?focus=2308.00113","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2308.00113"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/jwkirchenbauer/lm-watermarking","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://huggingface.co/spaces/NohTow/LLM_watermarking","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/facebookresearch/three_bricks","reach":null}],"summary":{"ran_draft_wrong":5,"ran_violates":1},"by_repo_kind":{"official":{"samples":4,"ran":4,"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":6,"samples":[{"code_sha256_prefix":"694c2ab8d8cd558c","entry":"format_prompts","repo":"facebookresearch/three_bricks","repo_kind":"official","path":"main_watermark.py","file_url":"https://github.com/facebookresearch/three_bricks/blob/HEAD/main_watermark.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"694c2ab8d8cd558c"}},{"code_sha256_prefix":"e43d8e6c09e3a48a","entry":"load_prompts","repo":"facebookresearch/three_bricks","repo_kind":"official","path":"main_watermark.py","file_url":"https://github.com/facebookresearch/three_bricks/blob/HEAD/main_watermark.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"e43d8e6c09e3a48a"}},{"code_sha256_prefix":"1ab299a3c4b402f6","entry":"load_results","repo":"facebookresearch/three_bricks","repo_kind":"official","path":"main_watermark.py","file_url":"https://github.com/facebookresearch/three_bricks/blob/HEAD/main_watermark.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"1ab299a3c4b402f6"}},{"code_sha256_prefix":"00e11ed69501d334","entry":"load_results","repo":"facebookresearch/three_bricks","repo_kind":"official","path":"main_eval.py","file_url":"https://github.com/facebookresearch/three_bricks/blob/HEAD/main_eval.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"00e11ed69501d334"}},{"code_sha256_prefix":"173c14a0656644b7","entry":"ngrams","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"173c14a0656644b7"}},{"code_sha256_prefix":"678874b625786116","entry":"str2bool","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"678874b625786116"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}