
भाषा मॉडलों के लिए पूर्णतः स्वचालित सेंसरशिप हटाना
Heretic एक उपकरण है जो ट्रांसफ़ॉर्मर-आधारित भाषा मॉडलों से सेंसरशिप (उर्फ़ "सुरक्षा संरेखण") को महंगे पोस्ट-ट्रेनिंग के बिना हटाता है। यह दिशात्मक एब्लेशन (जिसे "abliteration" भी कहा जाता है) के एक उन्नत कार्यान्वयन को जोड़ता है (Arditi et al. 2024, 1, Lai 2025 (1, 2)) Optuna द्वारा संचालित TPE-आधारित पैरामीटर ऑप्टिमाइज़र के साथ।
यह दृष्टिकोण Heretic को पूरी तरह से स्वचालित रूप से काम करने में सक्षम बनाता है। Heretic अस्वीकृतियों की संख्या और मूल मॉडल से KL विचलन को सह-न्यूनतम करके उच्च गुणवत्ता वाले abliteration पैरामीटर ढूंढता है। इसका परिणाम एक डिसेंसर्ड मॉडल होता है जो मूल मॉडल की यथासंभव अधिक बुद्धिमत्ता बनाए रखता है। Heretic का उपयोग करने के लिए ट्रांसफ़ॉर्मर आंतरिक की समझ की आवश्यकता नहीं है। वास्तव में, कोई भी जो कमांड-लाइन प्रोग्राम चलाना जानता है वह Heretic का उपयोग करके भाषा मॉडल को डिसेंसर कर सकता है।
Heretic अधिकांश डेंस मॉडलों का समर्थन करता है, जिसमें कई मल्टीमॉडल मॉडल, कई अलग-अलग MoE आर्किटेक्चर, और यहां तक कि कुछ हाइब्रिड मॉडल जैसे Qwen3.5 भी शामिल हैं। शुद्ध स्टेट-स्पेस मॉडल और कुछ अन्य शोध आर्किटेक्चर अभी तक आउट-ऑफ-द-बॉक्स समर्थित नहीं हैं।
डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ अप्रशिक्षित चलने पर, Heretic ऐसे डिसेंसर्ड मॉडल तैयार कर सकता है जो मानव विशेषज्ञों द्वारा मैन्युअल रूप से बनाए गए abliterations की गुणवत्ता के बराबर हों:
Heretic संस्करण, बिना किसी मानवीय प्रयास के उत्पन्न, अन्य abliterations के समान स्तर की
अस्वीकृति दमन प्राप्त करता है, लेकिन बहुत कम KL विचलन पर, जो मूल मॉडल की क्षमताओं को कम नुकसान का संकेत देता है।
(आप उन संख्याओं को Heretic की अंतर्निहित मूल्यांकन कार्यक्षमता का उपयोग करके पुन: उत्पन्न कर सकते हैं,
जैसे heretic --model google/gemma-3-12b-it --evaluate-model p-e-w/gemma-3-12b-it-heretic।
ध्यान दें कि सटीक मान प्लेटफ़ॉर्म- और हार्डवेयर-निर्भर हो सकते हैं।
उपरोक्त तालिका RTX 5090 पर PyTorch 2.8 का उपयोग करके संकलित की गई थी।)
बेशक, गणितीय मीट्रिक्स और स्वचालित बेंचमार्क कभी भी पूरी कहानी नहीं बताते, और मानव मूल्यांकन का कोई विकल्प नहीं हैं। Heretic के साथ उत्पन्न मॉडलों को उपयोगकर्ताओं द्वारा अच्छी तरह से प्राप्त किया गया है (लिंक और जोर जोड़ा गया):
"मुझे पहले संदेह था, लेकिन मैंने अभी-अभी GPT-OSS 20B Heretic मॉडल डाउनलोड किया और बाप रे। यह संवेदनशील विषयों पर उचित रूप से स्वरूपित लंबे प्रतिक्रिया देता है, ठीक उन्हीं अनसेंसर्ड शब्दों का उपयोग करते हुए जिनकी आप एक अनसेंसर्ड मॉडल से अपेक्षा करेंगे, विवरण और वगैरह के साथ मार्कडाउन प्रारूप तालिकाएँ बनाता है। ऐसा लगता है कि यह अब तक इस मॉडल का सबसे अच्छा abliterated संस्करण है..." (टिप्पणी का लिंक)
"[Heretic GPT 20b अब तक का सबसे अच्छा अनसेंसर्ड मॉडल लगता है जिसे मैंने आज़माया है। यह मॉडल की बुद्धिमत्ता को नष्ट नहीं करता और यह सामान्य प्रॉम्प्ट का उत्तर दे रहा है जिन्हें आमतौर पर बेस मॉडल द्वारा अस्वीकार कर दिया जाएगा।" (टिप्पणी का लिंक)
"[[**Qwen3-4B-Instruct-2507-heretic**] अब तक का सबसे अच्छा अनक्वांटाइज्ड abliterated मॉडल रहा है जिसे मैं 16gb vram पर चलाने में सक्षम हूँ।" (टिप्पणी का लिंक)
Heretic मॉडलों को मानक मीट्रिक्स जैसे MMLU और GSM8K का उपयोग करके स्वतंत्र रूप से बेंचमार्क भी किया गया है, और प्रतिस्पर्धी abliteration टूल द्वारा उत्पादित मॉडलों के साथ अनुकूल तुलना पाई गई है: 1, 2।
समुदाय ने Heretic के साथ 4000 से अधिक मॉडल बनाए और प्रकाशित किए हैं।
अपने हार्डवेयर के अनुसार PyTorch 2.2+ स्थापित के साथ Python 3.10+ वातावरण तैयार करें। फिर चलाएँ:
pip install -U heretic-llm
heretic Qwen/Qwen3-4B-Instruct-2507
Qwen/Qwen3-4B-Instruct-2507 को उस मॉडल से बदलें जिसे आप डिसेंसर करना चाहते हैं।
[!IMPORTANT]
जबकि Heretic के काम करने के लिए PyTorch 2.2 न्यूनतम संस्करण है, कुछ मॉडलों और कॉन्फ़िगरेशन को बाद के संस्करणों में ही पाई जाने वाली सुविधाओं की आवश्यकता हो सकती है। उदाहरण के लिए, gpt-oss जैसे MXFP4-क्वांटाइज़्ड मॉडल लोड करने के लिए
torch.acceleratorका उपयोग होता है, जो PyTorch 2.6 में जोड़ा गया था।
[!TIP]
Heretic निर्भरता प्रबंधन के लिए uv का उपयोग करता है, और रिपॉजिटरी में प्रत्येक पैकेज संस्करण को पिन करने वाली एक
uv.lockफ़ाइल शामिल है। यदि आप पहले से ही uv का उपयोग करते हैं (और आपको शायद करना चाहिए!), तो आप बस रेपो को क्लोन कर सकते हैं और Heretic कोuv run hereticके साथ चला सकते हैं, जो सुनिश्चित करता है कि आपकी निर्भरताएँ डेवलपर्स द्वारा उपयोग की गई निर्भरताओं से मेल खाती हैं, जिससे विश्वसनीयता और सुरक्षा में सुधार होता है।
प्रक्रिया पूरी तरह से स्वचालित है और इसे कॉन्फ़िगरेशन की आवश्यकता नहीं है; हालाँकि,
Heretic में विभिन्न कॉन्फ़िगरेशन पैरामीटर हैं जिन्हें अधिक नियंत्रण के लिए बदला जा सकता है।
उपलब्ध कमांड-लाइन विकल्प देखने के लिए heretic --help चलाएँ,
या यदि आप कॉन्फ़िगरेशन फ़ाइल का उपयोग करना पसंद करते हैं तो config.default.toml देखें।
प्रोग्राम रन की शुरुआत में, Heretic उपलब्ध हार्डवेयर का अधिकतम लाभ उठाने के लिए इष्टतम बैच आकार निर्धारित करने के लिए सिस्टम को बेंचमार्क करता है।
RTX 3090 पर, डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ,
Qwen3-4B-Instruct-2507 को डिसेंसर करने में
लगभग 20-30 मिनट लगते हैं। ध्यान दें कि Heretic bitsandbytes के साथ मॉडल क्वांटाइज़ेशन का समर्थन करता है,
जो मॉडल को संसाधित करने के लिए आवश्यक VRAM की मात्रा को काफी कम कर सकता है। क्वांटाइज़ेशन सक्षम करने के लिए
quantization विकल्प को bnb_4bit पर सेट करें।
Heretic द्वारा मॉडल को डिसेंसर करने के बाद, आपको मॉडल को सहेजने, इसे Hugging Face पर अपलोड करने, यह जांचने के लिए इसके साथ चैट करने कि यह कितनी अच्छी तरह काम करता है, इस पर मानक बेंचमार्क चलाने, या उन क्रियाओं के किसी भी संयोजन का विकल्प दिया जाता है।
अपने प्राथमिक कार्य के अलावा, Heretic मॉडल आंतरिक (interpretability) के शब्दार्थ में अनुसंधान का समर्थन करने के लिए डिज़ाइन की गई सुविधाएँ भी प्रदान करता है। उन सुविधाओं का उपयोग करने के लिए, आपको वैकल्पिक research एक्स्ट्रा के साथ Heretic स्थापित करने की आवश्यकता है:
pip install -U heretic-llm[research]
यह आपको निम्नलिखित कार्यक्षमता तक पहुंच प्रदान करता है:
--plot-residuals पास करके अवशिष्ट वैक्टर के प्लॉट उत्पन्न करेंजब इस फ़्लैग के साथ चलाया जाता है, तो Heretic:
उत्पन्न प्लॉट के विभिन्न पहलुओं को नियंत्रित करने वाले विकल्पों के लिए कॉन्फ़िगरेशन फ़ाइल देखें।
ध्यान दें कि PaCMAP एक महंगा ऑपरेशन है जो CPU पर किया जाता है। बड़े मॉडलों के लिए, सभी परतों के लिए प्रक्षेपणों की गणना करने में एक घंटे या उससे अधिक समय लग सकता है।
--print-residual-geometry पास करके अवशिष्ट ज्यामिति के बारे में विवरण प्रिंट करेंयदि आप इस बात के मात्रात्मक विश्लेषण में रुचि रखते हैं कि "हानिकारक" और "हानिरहित" प्रॉम्प्ट के लिए अवशिष्ट वैक्टर एक दूसरे से कैसे संबंधित हैं, तो यह फ़्लैग आपको निम्नलिखित तालिका देता है, जो उसी को समझने में सुविधा प्रदान करने वाले मीट्रिक्स से भरी हुई है (इस मामले में gemma-3-270m-it के लिए):
┏━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┓
┃ परत ┃ S(g,b) ┃ S(g*,b*) ┃ S(g,r) ┃ S(g*,r*) ┃ S(b,r) ┃ S(b*,r*) ┃ |g| ┃ |g*| ┃ |b| ┃ |b*| ┃ |r| ┃ |r*| ┃ Silh ┃
┡━━━━━━━╇━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━┩
│ 1 │ 1.0000 │ 1.0000 │ -0.4311 │ -0.4906 │ -0.4254 │ -0.4847 │ 170.29 │ 170.49 │ 169.78 │ 169.85 │ 1.19 │ 1.31 │ 0.0480 │
│ 2 │ 1.0000 │ 1.0000 │ 0.4297 │ 0.4465 │ 0.4365 │ 0.4524 │ 768.55 │ 768.77 │ 771.32 │ 771.36 │ 6.39 │ 5.76 │ 0.0745 │
│ 3 │ 0.9999 │ 1.0000 │ -0.5699 │ -0.5577 │ -0.5614 │ -0.5498 │ 1020.98 │ 1021.13 │ 1013.80 │ 1014.71 │ 12.70 │ 11.60 │ 0.0920 │
│ 4 │ 0.9999 │ 1.0000 │ 0.6582 │ 0.6553 │ 0.6659 │ 0.6627 │ 1356.39 │ 1356.20 │ 1368.71 │ 1367.95 │ 18.62 │ 17.84 │ 0.0957 │
│ 5 │ 0.9987 │ 0.9990 │ -0.6880 │ -0.6761 │ -0.6497 │ -0.6418 │ 766.54 │ 762.25 │ 731.75 │ 732.42 │ 51.97 │ 45.24 │ 0.1018 │
│ 6 │ 0.9998 │ 0.9998 │ -0.1983 │ -0.2312 │ -0.1811 │ -0.2141 │ 2417.35 │ 2421.08 │ 2409.18 │ 2411.40 │ 43.06 │ 43.47 │ 0.0900 │
│ 7 │ 0.9998 │ 0.9997 │ -0.5258 │ -0.5746 │ -0.5072 │ -0.5560 │ 3444.92 │ 3474.99 │ 3400.01 │ 3421.63 │ 86.94 │ 94.38 │ 0.0492 │
│ 8 │ 0.9990 │ 0.9991 │ 0.8235 │ 0.8312 │ 0.8479 │ 0.8542 │ 4596.54 │ 4615.62 │ 4918.32 │ 4934.20 │ 384.87 │ 377.87 │ 0.2278 │
│ 9 │ 0.9992 │ 0.9992 │ 0.5335 │ 0.5441 │ 0.5678 │ 0.5780 │ 5322.30 │ 5316.96 │ 5468.65 │ 5466.98 │ 265.68 │ 267.28 │ 0.1318 │
│ 10 │ 0.9974 │ 0.9973 │ 0.8189 │ 0.8250 │ 0.8579 │ 0.8644 │ 5328.81 │ 5325.63 │ 5953.35 │ 5985.15 │ 743.95 │ 779.74 │ 0.2863 │
│ 11 │ 0.9977 │ 0.9978 │ 0.4262 │ 0.4045 │ 0.4862 │ 0.4645 │ 9644.02 │ 9674.06 │ 9983.47 │ 9990.28 │ 743.28 │ 726.99 │ 0.1576 │
│ 12 │ 0.9904 │ 0.9907 │ 0.4384 │ 0.4077 │ 0.5586 │ 0.5283 │ 10257.40 │ 10368.50 │ 11114.51 │ 11151.21 │ 1711.18 │ 1664.69 │ 0.1890 │
│ 13 │ 0.9867 │ 0.9874 │ 0.4007 │ 0.3680 │ 0.5444 │ 0.5103 │ 12305.12 │ 12423.75 │ 13440.31 │ 13432.47 │ 2386.43 │ 2282.47 │ 0.1293 │
│ 14 │ 0.9921 │ 0.9922 │ 0.3198 │ 0.2682 │ 0.4364 │ 0.3859 │ 16929.16 │ 17080.37 │ 17826.97 │ 17836.03 │ 2365.23 │ 2301.87 │ 0.1282 │
│ 15 │ 0.9846 │ 0.9850 │ 0.1198 │ 0.0963 │ 0.2913 │ 0.2663 │ 16858.58 │ 16949.44 │ 17496.00 │ 17502.88 │ 3077.08 │ 3029.60 │ 0.1611 │
│ 16 │ 0.9686 │ 0.9689 │ -0.0029 │ -0.0254 │ 0.2457 │ 0.2226 │ 18912.77 │ 19074.86 │ 19510.56 │ 19559.62 │ 4848.35 │ 4839.75 │ 0.1516 │
│ 17 │ 0.9782 │ 0.9784 │ -0.0174 │ -0.0381 │ 0.1908 │ 0.1694 │ 27098.09 │ 27273.00 │ 27601.12 │ 27653.12 │ 5738.19 │ 5724.21 │ 0.1641 │
│ 18 │ 0.9184 │ 0.9196 │ 0.1343 │ 0.1430 │ 0.5155 │ 0.5204 │ 190.16 │ 190.35 │ 219.91 │ 220.62 │ 87.82 │ 87.59 │ 0.1855 │
└───────┴────────┴──────────┴─────────┴──────────┴─────────┴──────────┴──────────┴──────────┴──────────┴──────────┴─────────┴─────────┴────────┘
g = अच्छे प्रॉम्प्ट के लिए अवशिष्ट वैक्टर का माध्य
g* = अच्छे प्रॉम्प्ट के लिए अवशिष्ट वैक्टर का ज्यामितीय माध्यिका
b = बुरे प्रॉम्प्ट के लिए अवशिष्ट वैक्टर का माध्य
b* = बुरे प्रॉम्प्ट के लिए अवशिष्ट वैक्टर का ज्यामितीय माध्यिका
r = माध्यों के लिए अस्वीकृति दिशा (अर्थात, b - g)
r* = ज्यामितीय माध्यिकाओं के लिए अस्वीकृति दिशा (अर्थात, b* - g*)
S(x,y) = x और y की कोसाइन समानता
|x| = x का L2 मानदंड
Silh = अच्छे/बुरे क्लस्टर के लिए अवशेषों का माध्य सिल्हूट गुणांक
Heretic दिशात्मक एब्लेशन का एक पैरामीट्रीकृत प्रकार लागू करता है। प्रत्येक समर्थित ट्रांसफ़ॉर्मर घटक (वर्तमान में, अटेंशन आउट-प्रोजेक्शन और MLP डाउन-प्रोजेक्शन) के लिए, यह प्रत्येक ट्रांसफ़ॉर्मर परत में संबंधित मैट्रिस को पहचानता है, और उन्हें प्रासंगिक "अस्वीकृति दिशा" के संबंध में ऑर्थोगोनलाइज़ करता है, जिससे उस मैट्रिक्स के साथ गुणाओं के परिणाम में उस दिशा की अभिव्यक्ति को रोका जा सके।
अस्वीकृति दिशाओं की गणना प्रत्येक परत के लिए "हानिकारक" और "हानिरहित" उदाहरण प्रॉम्प्ट के लिए पहले-टोकन अवशेषों के बीच अंतर-माध्य के रूप में की जाती है।
एब्लेशन प्रक्रिया कई अनुकूलन योग्य मापदंडों द्वारा नियंत्रित होती है:
direction_index: या तो अस्वीकृति दिशा का सूचकांक, या विशेष मान per layer, यह इंगित करता है कि प्रत्येक परत को उस परत से जुड़ी अस्वीकृति दिशा का उपयोग करके एब्लेट किया जाना चाहिए।max_weight, max_weight_position, min_weight, और min_weight_distance: प्रत्येक घटक के लिए, ये पैरामीटर परतों पर एब्लेशन भार कर्नेल के आकार और स्थान का वर्णन करते हैं। निम्नलिखित आरेख इसे दर्शाता है:
मौजूदा abliteration प्रणालियों पर Heretic के मुख्य नवाचार हैं:
मुझे abliteration तकनीकों के निम्नलिखित सार्वजनिक रूप से उपलब्ध कार्यान्वयनों के बारे में पता है:
ध्यान दें कि Heretic को खरोंच से लिखा गया था, और उन परियोजनाओं में से किसी से भी कोड का पुन: उपयोग नहीं करता है।
Heretic के विकास को निम्नलिखित द्वारा सूचित किया गया था:
यदि आप अपने शोध के लिए Heretic का उपयोग करते हैं, तो कृपया निम्नलिखित BibTeX प्रविष्टि का उपयोग करके इसे उद्धृत करें:
@misc{heretic,
author = {Weidmann, Philipp Emanuel},
title = {Heretic: Fully automatic censorship removal for language models},
year = {2025},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/p-e-w/heretic}}
}
कॉपीराइट © 2025-2026 Philipp Emanuel Weidmann ([email protected]) + योगदानकर्ता
यह प्रोग्राम मुफ्त सॉफ्टवेयर है: आप इसे पुनर्वितरित और/या संशोधित कर सकते हैं GNU Affero General Public License की शर्तों के तहत, जैसा कि Free Software Foundation द्वारा प्रकाशित किया गया है, या तो लाइसेंस का संस्करण 3, या (आपकी पसंद पर) कोई बाद का संस्करण।
यह प्रोग्राम इस आशा में वितरित किया जाता है कि यह उपयोगी होगा, लेकिन बिना किसी वारंटी के; यहां तक कि व्यापारिकता या किसी विशेष उद्देश्य के लिए उपयुक्तता की निहित वारंटी के बिना भी। अधिक जानकारी के लिए GNU Affero General Public License देखें।
आपको इस प्रोग्राम के साथ GNU Affero General Public License की एक प्रति प्राप्त होनी चाहिए थी। यदि नहीं, तो https://www.gnu.org/licenses/ देखें।
इस परियोजना में योगदान करके, आप अपने योगदान को समान लाइसेंस के तहत जारी करने के लिए सहमत होते हैं।
| मॉडल | "हानिकारक" प्रॉम्प्ट के लिए अस्वीकृतियाँ | "हानिरहित" प्रॉम्प्ट के लिए मूल मॉडल से KL विचलन |
|---|
| google/gemma-3-12b-it (मूल) | 97/100 | 0 (परिभाषा के अनुसार) |
| mlabonne/gemma-3-12b-it-abliterated-v2 | 3/100 | 1.04 |
| huihui-ai/gemma-3-12b-it-abliterated | 3/100 | 0.45 |
| p-e-w/gemma-3-12b-it-heretic (हमारा) | 3/100 | 0.16 |