
إزالة الرقابة تلقائيًا بالكامل لنماذج اللغة
Heretic هي أداة تزيل الرقابة (المعروفة أيضًا باسم "مواءمة السلامة") من نماذج اللغة القائمة على المحولات دون الحاجة إلى تدريب لاحق مكلف. تجمع بين تنفيذ متقدم للإزالة الاتجاهية (directional ablation)، المعروفة أيضًا باسم "abliteration" (Arditi et al. 2024، Lai 2025 (1، 2))، ومحسِّن معاملات قائم على TPE مدعوم من Optuna.
يتيح هذا النهج لـ Heretic العمل بشكل تلقائي بالكامل. تعثر Heretic على معاملات abliteration عالية الجودة من خلال التقليل المتزامن لعدد حالات الرفض وتباعد KL عن النموذج الأصلي. ينتج عن ذلك نموذج غير خاضع للرقابة يحتفظ بأكبر قدر ممكن من ذكاء النموذج الأصلي. لا يتطلب استخدام Heretic فهمًا للبنى الداخلية للمحولات. في الواقع، يمكن لأي شخص يعرف كيفية تشغيل برنامج سطر أوامر أن يستخدم Heretic لإزالة الرقابة عن نماذج اللغة.
يدعم Heretic معظم النماذج الكثيفة، بما في ذلك العديد من النماذج متعددة الوسائط، وعدة بنى MoE مختلفة، وحتى بعض النماذج الهجينة مثل Qwen3.5. أما النماذج النقية القائمة على فضاء الحالة وبعض البنى البحثية الأخرى فغير مدعومة بعد بشكل مباشر.

عند تشغيله دون إشراف بالإعدادات الافتراضية، يمكن لـ Heretic إنتاج نماذج غير خاضعة للرقابة تضاهي في الجودة نماذج abliteration التي أنشأها خبراء بشريون يدويًا:
| النموذج | حالات الرفض للمطالبات "الضارة" | تباعد 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 |
نسخة Heretic، التي أُنشئت دون أي جهد بشري، تحقق المستوى نفسه من قمع حالات الرفض الذي تحققه نماذج abliteration الأخرى، ولكن مع تباعد KL أقل بكثير، مما يشير إلى ضرر أقل لقدرات النموذج الأصلي.
(يمكنك إعادة إنتاج هذه الأرقام باستخدام وظيفة التقييم المدمجة في Heretic، مثل heretic --model google/gemma-3-12b-it --evaluate-model p-e-w/gemma-3-12b-it-heretic. لاحظ أن القيم الدقيقة قد تعتمد على المنصة والعتاد. الجدول أعلاه أُعد باستخدام PyTorch 2.8 على بطاقة RTX 5090.)
بالطبع، لا تروي المقاييس الرياضية والاختبارات المعيارية الآلية القصة كاملة أبدًا، ولا تُغني عن التقييم البشري. لاقت النماذج التي أنشأتها Heretic استحسانًا من المستخدمين (الروابط والتشديد مضافان):
"كنتُ متشككًا من قبل، لكنني حمّلت للتو نموذج GPT-OSS 20B Heretic ويا للهول! إنه يقدّم ردودًا طويلة منسقة بشكل صحيح حول مواضيع حساسة، باستخدام الكلمات غير الخاضعة للرقابة تمامًا التي تتوقعها من نموذج غير خاضع للرقابة، وينتج جداول بتنسيق markdown مع التفاصيل وما إلى ذلك. يبدو أن هذه أفضل نسخة abliterated من هذا النموذج حتى الآن..." (رابط التعليق)
"Heretic GPT 20b يبدو أنه أفضل نموذج غير خاضع للرقابة جربته حتى الآن. إنه لا يدمر ذكاء النموذج، بل يجيب على الاستفسارات التي كان النموذج الأساسي سيرفضها عادةً." (رابط التعليق)
"[Qwen3-4B-Instruct-2507-heretic] هو أفضل نموذج abliterated غير مكمّم تمكنت من تشغيله على ذاكرة فيديو سعتها 16 جيجابايت." (رابط التعليق)
كما خضعت نماذج Heretic لاختبارات معيارية مستقلة باستخدام مقاييس قياسية مثل MMLU وGSM8K، وتبيّن أنها تنافس بشكل إيجابي النماذج التي تنتجها أدوات abliteration المنافسة: 1، 2.
وقد أنشأ المجتمع ونشر أكثر من 4000 نموذج باستخدام Heretic.
جهّز بيئة Python 3.10+ مع تثبيت PyTorch 2.2+ بما يناسب عتادك. ثم نفّذ:
pip install -U heretic-llm
heretic Qwen/Qwen3-4B-Instruct-2507
استبدل Qwen/Qwen3-4B-Instruct-2507 بأي نموذج تريد إزالة الرقابة عنه.
[!IMPORTANT]
على الرغم من أن PyTorch 2.2 هو الحد الأدنى لإصدار PyTorch المطلوب لكي يعمل Heretic، فقد تتطلب بعض النماذج والإعدادات ميزات غير موجودة إلا في الإصدارات الأحدث. على سبيل المثال، يستخدم تحميل النماذج المكمّمة بـ MXFP4 مثل gpt-oss ميزة
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، وهو ما يمكن أن يقلل بشكل كبير من مقدار ذاكرة الفيديو المطلوبة لمعالجة النماذج. اضبط خيار quantization على bnb_4bit لتفعيل التكميم.
بعد انتهاء Heretic من إزالة الرقابة عن نموذج، يُعرض عليك خيار حفظ النموذج، أو رفعه إلى Hugging Face، أو الدردشة معه لاختبار مدى جودة عمله، أو تشغيل اختبارات معيارية قياسية عليه، أو أي مجموعة من هذه الإجراءات.
بالإضافة إلى وظيفته الأساسية المتمثلة في إزالة رقابة النماذج، يوفّر Heretic أيضًا ميزات مصممة لدعم البحث في دلالات البنى الداخلية للنماذج (قابلية التفسير). لاستخدام هذه الميزات، تحتاج إلى تثبيت Heretic مع الحزمة الاختيارية research:
pip install -U 'heretic-llm[research]'
يمنحك هذا إمكانية الوصول إلى الوظائف التالية:
--plot-residualsعند تشغيله مع هذا العلم، سيقوم Heretic بما يلي:

راجع ملف الإعداد للاطلاع على الخيارات التي تتيح لك التحكم في جوانب مختلفة من الرسوم البيانية المُنشأة.
لاحظ أن PaCMAP عملية مكلفة تُنفَّذ على المعالج المركزي. بالنسبة إلى النماذج الأكبر حجمًا، قد يستغرق حساب الإسقاطات لجميع الطبقات ساعة أو أكثر.
--print-residual-geometryإذا كنت مهتمًا بتحليل كمّي لكيفية ترابط متجهات البقايا لمطالبات "الضارة" و"غير الضارة" مع بعضها البعض، فإن هذا العلم يمنحك الجدول التالي، المليء بالمقاييس التي يمكن أن تسهّل فهم ذلك (بالنسبة إلى gemma-3-270m-it في هذه الحالة):
┏━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┓
┃ Layer ┃ 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 = mean of residual vectors for good prompts
g* = geometric median of residual vectors for good prompts
b = mean of residual vectors for bad prompts
b* = geometric median of residual vectors for bad prompts
r = residual direction for means (i.e., b - g)
r* = residual direction for geometric medians (i.e., b* - g*)
S(x,y) = cosine similarity of x and y
|x| = L2 norm of x
Silh = Mean silhouette coefficient of residuals for good/bad clusters
تنفّذ Heretic نسخة مُعاملات من الإزالة الاتجاهية. بالنسبة إلى كل مكوّن محول مدعوم (حاليًا، إسقاط مخرجات الانتباه والإسقاط التنازلي لـ MLP)، تحدّد المصفوفات المرتبطة به في كل طبقة محول، وتعامدها بالنسبة إلى "اتجاه البقايا" ذي الصلة، مما يمنع التعبير عن ذلك الاتجاه في نتائج عمليات الضرب بتلك المصفوفة.
تُحسب اتجاهات البقايا لكل طبقة على أنها الفرق بين متوسطي بقايا الرمز الأول لمطالبات الأمثلة "الضارة" و"غير الضارة".
تتحكم عدة معاملات قابلة للتحسين في عملية الإزالة:
direction_index: إما فهرس اتجاه بقايا، أو القيمة الخاصة per layer، التي تشير إلى أنه يجب إزالة كل طبقة باستخدام اتجاه البقايا المرتبط بتلك الطبقة.max_weight وmax_weight_position وmin_weight وmin_weight_distance: تصف هذه المعاملات، لكل مكوّن، شكل وموضع نواة أوزان الإزالة عبر الطبقات. يوضح المخطط التالي ذلك:
تتمثل أبرز ابتكارات Heretic مقارنةً بأنظمة abliteration الحالية في:
أنا على علم بالتنفيذات المتاحة للعموم التالية لتقنيات 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]) + المساهمون
هذا البرنامج برمجيات حرة: يمكنك إعادة توزيعه و/أو تعديله بموجب شروط رخصة جنو أفيرو العمومية كما نشرتها مؤسسة البرمجيات الحرة، سواء الإصدار 3 من الرخصة أو (حسب اختيارك) أي إصدار لاحق.
يُوزَّع هذا البرنامج على أمل أن يكون مفيدًا، ولكن دون أي ضمان؛ حتى دون الضمان الضمني للقابلية للتسويق أو الملاءمة لغرض معين. راجع رخصة جنو أفيرو العمومية لمزيد من التفاصيل.
كان ينبغي أن تكون قد تسلمت نسخة من رخصة جنو أفيرو العمومية مع هذا البرنامج. إذا لم تكن قد تسلمتها، فراجع https://www.gnu.org/licenses/.
بمساهمتك في هذا المشروع، فإنك توافق على إصدار مساهماتك بموجب الرخصة نفسها.