
अर्थगत वॉटरमार्किंग जिसमें उप-वाक्य इकाइयों पर क्रम-सहिष्णु पहचान होती है
SwordStamp एम्बेडिंग-आधारित सिमेंटिक वॉटरमार्क में ऑर्डर-रोबस्ट डिटेक्शन और सिमेंटिक-स्पैन यूनिट जोड़ता है। इस आर्टिफैक्ट में सटीक पेपर कॉन्फ़िगरेशन, जनरेशन और डिटेक्शन कोड, अपरिवर्तित अटैक सूट, क्वालिटी मूल्यांकन, और डिटरमिनिस्टिक रिज़ल्ट एक्सट्रैक्शन और प्लॉटिंग शामिल है।
पेपर: Semantic Watermarking with Order-Robust Detection over Sub-sentence Units (arXiv:2608.27666)
5% फ़ॉल्स-पॉज़िटिव रेट और 90% कंटेंट-प्रिज़र्वेशन आवश्यकता पर, स्कीम-विशिष्ट एम्बेडिंग डिस्प्लेसमेंट अटैक (EDA-S) निम्नलिखित प्राप्त करता है:
| वॉटरमार्क | EDA-S अटैक सक्सेस रेट |
|---|---|
| SemStamp | 47.9% |
| k-SemStamp | 33.3% |
| PMark | 46.1% |
| SAMark | 32.6% |
| SwordStamp | 18.7% |
| k-SwordStamp | 10.8% |
अपने प्रकाशित बेसलाइन की तुलना में, SwordStamp और k-SwordStamp EDA-S सक्सेस को 29.2 और 22.5 प्रतिशत अंकों तक कम करते हैं, जिसकी क्लीन-फिडेलिटी लागत 1.8 और 4.4 अंक है। उनकी क्लीन डिटेक्शन दरें 94.9% और 97.0% हैं। अधिक मज़बूत डिटेक्टर-एक्सेस EDA-D स्ट्रेस टेस्ट के तहत, अधिकतम क्वालिटी-गेटेड सक्सेस k-SwordStamp पर 39.7% है, जबकि k-SemStamp पर 65.5% है।


ये परिणाम अंग्रेज़ी न्यूज़ कंटिन्यूएशन, एक प्रोवाइडर मॉडल, दो प्रोवाइडर एनकोडर, और एक EDA पैराफ्रेज़र/सरोगेट जोड़ी को कवर करते हैं।
visualization केवल कंपाइल किए गए CSV/Parquet बंडल का उपभोग करता है। यह अनुपस्थित पेपर सेल पर विफल हो जाता है, आंशिक फ़िगर नहीं बनाता।
uv sync --frozen --only-group plot --no-install-project
uv run --no-sync python -m visualization extract \
--bundle results/paper --output results/paper
uv run --no-sync python -m visualization render \
--bundle results/paper --output results/paper
यह results/paper/tables/ के अंतर्गत ऑडिट-योग्य तालिकाएँ और results/paper/figures/ के अंतर्गत PNG और PDF में सात आकृतियाँ लिखता है। अनाम समीक्षा शाखा में संकलित बंडल शामिल है; रिलीज़ शाखा पर पूर्ण रन python -m visualization compile के साथ वही फ़ाइलें बनाता है।
एम्बेडिंग विस्थापन आक्रमण (EDA) एक अनुकूली पूर्ण-पाठ पैराफ्रेज़िंग आक्रमण है। प्रत्येक आउटपुट इकाई पर यह K निरंतरताओं का नमूना लेता है और सरोगेट एनकोडर के अंतर्गत अपने स्रोत एंकर से सबसे बड़े कोसाइन विस्थापन वाले उम्मीदवार को रखता है। चूँकि प्रत्येक उम्मीदवार पूर्ण पुनर्लेखन उपसर्ग को जारी रखता है, एक उद्देश्य सामग्री को पुनःशब्दित कर सकता है, उसे पुनःक्रमित कर सकता है, और डिटेक्टर इकाइयों को विभाजित या विलय कर सकता है।
नो-बॉक्स EDA चिह्नित पाठ और सार्वजनिक वॉटरमार्क डिज़ाइन देखता है। यह डिटेक्टर या जनरेटर को क्वेरी नहीं करता और इसे कोई गुप्त कुंजी, प्रदाता एनकोडर, या गुणवत्ता ऑरेकल प्राप्त नहीं होता।
| प्रकार | एंकर और इकाई | कॉन्फ़िगरेशन |
|---|---|---|
| EDA-P | स्थितीय वाक्य | adaptive, anchor=positional, आक्रमणकर्ता इकाई sentence |
| EDA-S | लक्ष्य का सार्वजनिक डिज़ाइन | SemStamp, k-SemStamp, और PMark के लिए स्थितीय वाक्य; SAMark के लिए bag/sentence; दोनों SwordStamp प्रकारों के लिए bag/semspan |
| EDA-D | प्रदाता डिटेक्टर | oracle; रक्षक एनकोडर, विभाजन, और विभाजन-खंड को विरासत में लेता है |
bag एंकरिंग के लिए, पेपर attack.bag_agg=min का उपयोग करता है: निकटतम स्रोत एंकर से दूरी को अधिकतम करें। रिपोर्ट किए गए नो-बॉक्स रन Qwen/Qwen2.5-3B-Instruct, BAAI/bge-base-en-v1.5, K={1,2,4,8,16,32,64}, तापमान 1.0, top-p 0.95, प्रति उम्मीदवार अधिकतम 96 टोकन, और अधिकतम 512 पुनर्लेखन टोकन का उपयोग करते हैं।
अन्य वॉटरमार्क डिज़ाइनर EDA को सीधे कॉल कर सकते हैं:
from attacks.paraphrasing.adaptive import adaptive_attack_paraphrase
attacked = adaptive_attack_paraphrase(
texts,
base_model="Qwen/Qwen2.5-3B-Instruct",
surrogate_model="BAAI/bge-base-en-v1.5",
num_candidates=32,
anchor="positional", # EDA-P; use "bag" for an order-robust design
bag_agg="min",
segmentation_type="sentence",
segmentation_backend="nltk",
)
पेपर के SwordStamp-सचेत EDA-S के लिए, anchor="bag", segmentation_type="semspan", semcut_max_words=15, और semcut_window=5 सेट करें। इस रिपॉज़िटरी के भीतर समतुल्य CLI है:
uv run python -m attacks DATA_PATH --config PRESET \
--set attack.paraphraser=adaptive \
--set attack.custom_model=Qwen/Qwen2.5-3B-Instruct \
--set attack.surrogate_model=BAAI/bge-base-en-v1.5 \
--set attack.num_candidates=32 \
--set attack.anchor=bag --set attack.bag_agg=min \
--set segmentation.attacker_type=semspan \
--set segmentation.attacker_backend=nltk
DATA_PATH हमेशा आधार कॉर्पस होता है और PRESET वॉटरमार्क वाले
सेल की पहचान करता है। सभी बनाए रखे गए हमलों और कॉन्फ़िगरेशन फ़ील्ड के लिए attacks/README.md देखें।

config/paper.py एकमात्र सत्य-स्रोत है। LSH और k-means में से प्रत्येक के लिए,
scripts/experiments/swordstamp.sh 64 प्रदाता उम्मीदवारों के साथ यह पाँच-चरणीय योगात्मक
सीढ़ी चलाता है:
ग्रिड में केवल ये दस सेल और एक बिना-वॉटरमार्क आधाररेखा है। PMark
केवल-ऑनलाइन है; SAMark प्रति रन एक फ़्लैग पैटर्न का उपयोग करता है। EDA-D बजट
K={4,8,16,32,64} हैं।
तुलना सबमॉड्यूल सार्वजनिक PMark और SAMark मूल्यांकन स्रोतों को केवल उनके डेटासेट/परिणाम सीमाओं और साझा गलत-सकारात्मक कैलिब्रेशन पर अनुकूलित करते हैं; वॉटरमार्क एल्गोरिद्म अपरिवर्तित हैं।
पूर्वापेक्षाएँ हैं Git, uv, Python 3.11, मॉडल रन के लिए CUDA, पिन किए गए मॉडल संशोधनों तक पहुँच, और स्क्रैच स्टोरेज।
git clone --recurse-submodules [email protected]:D-Diaa/SwordStamp.git
cd SwordStamp
bash scripts/setup.sh
uv run --frozen python scripts/check_artifact.py
नियतात्मक, असंयुक्त C4 विभाजन तैयार करें:
uv run --frozen python scripts/prepare_c4.py --output-dir data
पिन किए गए शेड्यूलर को इंस्टॉल और कॉन्फ़िगर करें। इंस्टॉलर कुछ भी बदलने से पहले अपने उपयोगकर्ता-स्तरीय साइड इफ़ेक्ट्स प्रिंट करता है:
bash scripts/install_gpu_scheduler.sh --print-plan
bash scripts/install_gpu_scheduler.sh --yes
gpu-scheduler init --gpus 0,1
gpu-scheduler start
पूर्वावलोकन करें, फिर प्रत्येक भौतिक शार्ड सबमिट करें:
for shard in c4-val-def-256 c4-val-def-256b c4-val-def-512; do
BASE="data/$shard" DRY_RUN=1 bash scripts/experiments/swordstamp.sh
BASE="data/$shard" DRY_RUN=1 bash scripts/experiments/pmark.sh
BASE="data/$shard" DRY_RUN=1 bash scripts/experiments/samark.sh
done
# Remove DRY_RUN=1 after inspecting the exact DAGs.
संकलित करें, निकालें, और रेंडर करें:
uv run --frozen python -m visualization all \
--bundle results/paper --output results/paper
शेड्यूलर CUDA_VISIBLE_DEVICES प्रदान करता है; nvidia-smi की जाँच करके GPU न चुनें। पूर्ण पुनरुत्पादन एक बहु-दिवसीय GPU वर्कलोड है। ARTIFACT.md हार्डवेयर, मॉडल रिवीज़न, अपेक्षित आउटपुट और क्लेम-टू-कमांड मैप को सूचीबद्ध करता है। scripts/experiments/README.md रिज़्यूम और फ़ोर्स व्यवहार का दस्तावेज़ीकरण करता है।