
إزالة الرقابة التلقائية الكاملة لنماذج اللغة
Heretic هي أداة تزيل الرقابة (المعروفة أيضًا باسم "محاذاة السلامة") من نماذج اللغة القائمة على المحولات دون الحاجة إلى تدريب لاحق مكلف. تجمع الأداة بين تطبيق متقدم للاستئصال الاتجاهي، المعروف أيضًا باسم "الاستئصال" (Arditi et al. 2024، Lai 2025 (1، 2))، ومحسّن معلمات قائم على TPE يُشغله Optuna.
هذا النهج يتيح لـ Heretic العمل بشكل تلقائي بالكامل. تجد Heretic معلمات استئصال عالية الجودة عن طريق تقليل كل من عدد حالات الرفض وتباعد KL عن النموذج الأصلي. ينتج عن ذلك نموذج غير مراقَب يحتفظ بأكبر قدر ممكن من ذكاء النموذج الأصلي. لا يتطلب استخدام Heretic فهمًا لدواخل المحولات. في الواقع، يمكن لأي شخص يعرف كيفية تشغيل برنامج سطر أوامر استخدام Heretic لنزع الرقابة عن نماذج اللغة.
يدعم Heretic معظم النماذج الكثيفة، بما في ذلك العديد من النماذج متعددة الوسائط، والعديد من بنى MoE المختلفة، وحتى بعض النماذج الهجينة مثل Qwen3.5. لا تُدعم نماذج الحالة الخالصة وبعض البنى البحثية الأخرى بشكل فوري خارج الصندوق.
عند تشغيله دون إشراف وبالإعدادات الافتراضية، يمكن لـ Heretic إنتاج نماذج غير مراقبة تنافس جودة عمليات الاستئصال التي أُنجزت يدويًا بواسطة خبراء بشريين:
النسخة المنتجة بواسطة Heretic، والتي تم توليدها دون أي جهد بشري، تحقق نفس مستوى قمع الرفض مثل عمليات الاستئصال الأخرى، ولكن مع تباعد 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 والله العظيم. إنه يعطي ردودًا طويلة منسقة بشكل صحيح حول مواضيع حساسة، باستخدام الكلمات غير المراقبة تمامًا التي تتوقعها من نموذج غير مراقَب، وينتج جداول بتنسيق ماركداون تحتوي على تفاصيل وما إلى ذلك. يبدو أن هذه هي أفضل نسخة مستأصلة من هذا النموذج حتى الآن..." (رابط للتعليق)
"Heretic GPT 20b يبدو أنه أفضل نموذج غير مراقَب جربته حتى الآن. إنه لا يدمر ذكاء النموذج ويجيب على المطالبات التي كان النموذج الأساسي سيرفضها عادةً بشكل طبيعي." (رابط للتعليق)
"[Qwen3-4B-Instruct-2507-heretic] كان أفضل نموذج غير مراقَب وغير مضغوط تمكنت من تشغيله على ذاكرة وصول عشوائي للفيديو سعتها 16 جيجابايت." (رابط للتعليق)
كما تم اختبار نماذج Heretic بشكل مستقل باستخدام مقاييس معيارية مثل MMLU وGSM8K، وتبين أنها تتفوق بشكل إيجابي على النماذج المنتجة بواسطة أدوات الاستئصال المنافسة: 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 هو الحد الأدنى من الإصدار المطلوب لـ 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، مما يمكن أن يقلل بشكل كبير من كمية VRAM المطلوبة لمعالجة
النماذج. اضبط خيار quantization على bnb_4bit لتفعيل الضغط.
بعد أن ينهي Heretic نزع الرقابة عن نموذج، يُعطى لك خيار حفظ النموذج، رفعه إلى Hugging Face، الدردشة معه لاختبار مدى جودة عمله، تشغيل اختبارات معيارية عليه، أو أي مزيج من هذه الإجراءات.
بالإضافة إلى وظيفته الرئيسية المتمثلة في إزالة الرقابة عن النماذج، يوفر Heretic أيضًا
ميزات مصممة لدعم البحث في دلالات البنى الداخلية للنماذج
(قابلية التفسير). لاستخدام هذه الميزات، تحتاج إلى تثبيت Heretic مع
الملحق الاختياري research:
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*| ┃ سيليو ┃
┡━━━━━━━╇━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━┩
│ 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| = معيار L2 لـ x
سيليو = متوسط معامل الصورة الظلية للبقايا لمجموعات الجيد/السيئ
ينفذ Heretic متغيرًا معلميًا من الاستئصال الاتجاهي. لكل مكون محول مدعوم (حاليًا، الإسقاط الخارجي للانتباه والإسقاط السفلي لـ MLP)، يحدد المصفوفات المرتبطة به في كل طبقة محول، ويقوم بتعامدها بالنسبة لـ "اتجاه الرفض" ذي الصلة، مما يمنع التعبير عن هذا الاتجاه في نتيجة الضربات مع تلك المصفوفة.
يتم حساب اتجاهات الرفض لكل طبقة كفرق بين المتوسطات لبقايا الرمز الأول للمطالبات "الضارة" و"غير الضارة".
يتم التحكم في عملية الاستئصال بواسطة عدة معاملات قابلة للتحسين:
direction_index: إما فهرس اتجاه رفض، أو القيمة الخاصة
per layer، مما يشير إلى أنه يجب استئصال كل طبقة باستخدام
اتجاه الرفض المرتبط بتلك الطبقة.max_weight, max_weight_position, min_weight, و min_weight_distance:
لكل مكون، تصف هذه المعاملات شكل وموضع نواة وزن الاستئصال
عبر الطبقات. يوضح الرسم البياني التالي ذلك:
الابتكارات الرئيسية لـ Heretic على أنظمة الاستئصال الموجودة هي:
أنا على علم بالتطبيقات العامة التالية لتقنيات الاستئصال:
لاحظ أن 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 العامة كما نشرتها Free Software Foundation، إما الإصدار 3 من الرخصة، أو (حسب اختيارك) أي إصدار لاحق.
يتم توزيع هذا البرنامج على أمل أن يكون مفيدًا، ولكن دون أي ضمان؛ حتى بدون الضمان الضمني لـ القابلية للتسويق أو الملاءمة لغرض معين. راجع رخصة GNU Affero العامة لمزيد من التفاصيل.
يجب أن تكون قد تلقيت نسخة من رخصة GNU Affero العامة مع هذا البرنامج. إذا لم يكن الأمر كذلك، فانظر 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 |