{"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/segmenting-watermarked-texts-from-language","title":"Segmenting Watermarked Texts From Language Models","arxiv_id":"2410.20670","date":"2024-10-28","proceeding":null,"authors":["Xingchi Li","Guanxun Li","Xianyang Zhang"],"abstract":"Watermarking is a technique that involves embedding nearly unnoticeable statistical signals within generated content to help trace its source. This work focuses on a scenario where an untrusted third-party user sends prompts to a trusted language model (LLM) provider, who then generates a text from their LLM with a watermark. This setup makes it possible for a detector to later identify the source of the text if the user publishes it. The user can modify the generated text by substitutions, insertions, or deletions. Our objective is to develop a statistical method to detect if a published text is LLM-generated from the perspective of a detector. We further propose a methodology to segment the published text into watermarked and non-watermarked sub-strings. The proposed approach is built upon randomization tests and change point detection techniques. We demonstrate that our method ensures Type I and Type II error control and can accurately identify watermarked sub-strings by finding the corresponding change point locations. To validate our technique, we apply it to texts generated by several language models with prompts extracted from Google's C4 dataset and obtain encouraging numerical results. We release all code publicly at https://github.com/doccstat/llm-watermark-cpd.","url_abs":"https://arxiv.org/abs/2410.20670v1","url_pdf":"https://arxiv.org/pdf/2410.20670v1.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":"segmenting-watermarked-texts-from-language","repo_url":"https://github.com/doccstat/llm-watermark-cpd","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"change-point-detection","task_name":"Change Point Detection"},{"task_slug":"language-modelling","task_name":"Language Modelling"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2410.20670","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.20670"}},"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":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/doccstat/llm-watermark-cpd","reach":null}],"summary":{"ran_fixture":2,"ran":1},"by_repo_kind":{"official":{"samples":3,"ran":3,"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":3,"samples":[{"code_sha256_prefix":"a17f9d5c2e5d27a5","entry":"ks_statistic","repo":"doccstat/llm-watermark-cpd","repo_kind":"official","path":"4.1-seedbs.py","file_url":"https://github.com/doccstat/llm-watermark-cpd/blob/HEAD/4.1-seedbs.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a17f9d5c2e5d27a5"}},{"code_sha256_prefix":"e077270a988bb9d5","entry":"permute_pvalues","repo":"doccstat/llm-watermark-cpd","repo_kind":"official","path":"4.1-seedbs.py","file_url":"https://github.com/doccstat/llm-watermark-cpd/blob/HEAD/4.1-seedbs.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e077270a988bb9d5"}},{"code_sha256_prefix":"bee16184ad671c01","entry":"segment_significance","repo":"doccstat/llm-watermark-cpd","repo_kind":"official","path":"4.1-seedbs.py","file_url":"https://github.com/doccstat/llm-watermark-cpd/blob/HEAD/4.1-seedbs.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bee16184ad671c01"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}