
पाठ के लिए SynthID की रिवर्स इंजीनियरिंग
इस निर्देशिका में AI-जनित टेक्स्ट से SynthID वॉटरमार्क का विश्लेषण और हटाने के उपकरण शामिल हैं। यह वॉटरमार्क Google DeepMind द्वारा विकसित किया गया था और Nature (2024) में प्रकाशित हुआ था।
N-gram संदर्भ: प्रत्येक टोकन स्थिति के लिए, SynthID पिछले ngram_len - 1 टोकन (डिफ़ॉल्ट: 4 टोकन) को संदर्भ के रूप में मानता है।
हैश गणना: यह निम्न का हैश गणना करता है:
G-मान असाइनमेंट: हैश का उपयोग प्रत्येक कुंजी परत के लिए प्रत्येक संभावित अगले टोकन को एक बाइनरी g-मान (0 या 1) निर्दिष्ट करने के लिए किया जाता है।
प्रायिकता संशोधन: g-मान = 1 वाले टोकन को प्राथमिकता देने के लिए टोकन प्रायिकताओं को संशोधित किया जाता है:
new_prob[i] = prob[i] * (1 + g[i] - mean(g * prob))
नमूनाकरण: मॉडल संशोधित वितरण से नमूना लेता है।
प्रभावशीलता: 90-100%
वॉटरमार्क विशिष्ट टोकन अनुक्रम में अंतर्निहित है, अर्थ में नहीं। गैर-वॉटरमार्क किए गए मॉडल के साथ पैराफ़्रेज़िंग पूरी तरह से टोकन अनुक्रम को पुनर्जीवित करती है।
from reverse_synthid import ParaphrasingAttack
attack = ParaphrasingAttack(model_name="gpt2")
clean_text = attack.paraphrase(watermarked_text)
प्रभावशीलता: 50-70%
टोकन को समानार्थी शब्दों से बदलने से n-gram पैटर्न टूट जाते हैं:
from reverse_synthid import TokenPerturbationAttack
attack = TokenPerturbationAttack()
clean_text = attack.substitute_synonyms(text, rate=0.3)
प्रभावशीलता: 95-100%
वर्णों को दृश्य रूप से समान यूनिकोड वर्णों से बदलने से हैश टूट जाता है:
from reverse_synthid import HomoglyphAttack
attack = HomoglyphAttack()
clean_text = attack.apply_homoglyphs(text, rate=0.1)
प्रभावशीलता: 30-50%
शब्दों को सम्मिलित या हटाने से बाद के सभी n-gram सीमाएँ स्थानांतरित हो जाती हैं:
from reverse_synthid import TokenPerturbationAttack
attack = TokenPerturbationAttack()
clean_text = attack.insert_fillers(text, rate=0.1)
reverse_synthid.py - एकाधिक विधियों वाला मुख्य हमला टूलकिटanalyze_watermark.py - वॉटरमार्क पहचान और विश्लेषण उपकरणtest_removal.py - वॉटरमार्क हटाने का परीक्षण स्क्रिप्टpython analyze_watermark.py --input text.txt --verbose
# पैराफ़्रेज़िंग का उपयोग करना (सबसे प्रभावी, मॉडल आवश्यक है)
python analysis/reverse_synthid.py --input text.txt --output clean.txt --method paraphrase
# परिवर्तन का उपयोग करना (कोई मॉडल आवश्यक नहीं)
python analysis/reverse_synthid.py --input text.txt --output clean.txt --method perturb
# संयुक्त हमले का उपयोग करना
python reverse_synthid.py --input text.txt --output clean.txt --method combined
python analysis/test_removal.py
वॉटरमार्क निम्न पर निर्भर करता है:
जब आप टेक्स्ट को पैराफ़्रेज़ करते हैं:
लंबाई N और वॉटरमार्क शक्ति W वाले टेक्स्ट के लिए:
1 - (1-r)^(ngram_len) से सिग्नल कम करती हैN*r n-gram सीमाओं को स्थानांतरित करती हैयह कोड केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए है। यह अधिक मज़बूत विधियाँ विकसित करने में मदद करने के लिए वॉटरमार्किंग योजनाओं में कमजोरियों को प्रदर्शित करता है।