
अर्थगत वॉटरमार्किंग जिसमें उप-वाक्य इकाइयों पर क्रम-सहिष्णु पहचान होती है
SwordStamp एम्बेडिंग-आधारित सिमेंटिक वॉटरमार्क में ऑर्डर-रोबस्ट डिटेक्शन और सिमेंटिक-स्पैन इकाइयाँ जोड़ता है। इस आर्टिफैक्ट में सटीक पेपर कॉन्फ़िगरेशन, जनरेशन और डिटेक्शन कोड, अपरिवर्तित अटैक सूट, गुणवत्ता मूल्यांकन, और निर्धारणात्मक परिणाम निष्कर्षण और प्लॉटिंग शामिल है।
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 चिह्नित पाठ और सार्वजनिक वॉटरमार्क डिज़ाइन देखता है। यह डिटेक्टर या जनरेटर को क्वेरी नहीं करता है और कोई गुप्त कुंजी, प्रदाता एनकोडर, या गुणवत्ता ओरेकल प्राप्त नहीं करता है।
बैग एंकरिंग के लिए, पेपर 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; ऑर्डर-रोबस्ट डिज़ाइन के लिए "bag" का उपयोग करें
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
# सटीक DAG का निरीक्षण करने के बाद DRY_RUN=1 हटाएँ।
संकलित करें, निकालें, और रेंडर करें:
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 फिर से शुरू और फोर्स व्यवहार का दस्तावेजीकरण करता है।
config/, segmentation/, sampling/, watermarking/: SwordStamp।attacks/: EDA और बनाए रखा अटैक सूट।quality/: निष्ठा और सामग्री-संरक्षण मूल्यांकन।visualization/: केवल-पेपर संकलन, तालिकाएँ, और Matplotlib आकृतियाँ।scripts/experiments/: शेड्यूलर-समर्थित सटीक पेपर वर्कफ़्लो।external/: पिन किए गए PMark और SAMark तुलना सबमॉड्यूल।प्रथम-पक्ष कोड MIT लाइसेंस के तहत जारी किया गया है। मॉडल, डेटासेट, उत्पन्न पाठ, और तुलना सबमॉड्यूल अपनी स्वयं की शर्तों को बनाए रखते हैं; THIRD_PARTY.md देखें।
SwordStamp सॉफ्टवेयर Abdulrahman Diaa द्वारा लिखा गया है। पेपर के लेखक Abdulrahman Diaa, Jonathan Petit, और Florian Kerschbaum हैं। मशीन-पठनीय उद्धरण मेटाडेटा CITATION.cff में है।
| वैरिएंट | एंकर और इकाई | कॉन्फ़िगरेशन |
|---|
| EDA-P | स्थितीय वाक्य | adaptive, anchor=positional, हमलावर इकाई sentence |
| EDA-S | लक्ष्य का सार्वजनिक डिज़ाइन | SemStamp, k-SemStamp, और PMark के लिए स्थितीय वाक्य; SAMark के लिए bag/sentence; दोनों SwordStamp वैरिएंट के लिए bag/semspan |
| EDA-D | प्रदाता डिटेक्टर | oracle; रक्षक एनकोडर, विभाजन, और सेगमेंटेशन विरासत में लेता है |