AR ▾
احصل على مفتاح API

كيف تُصنع نماذج Abliterated؟ شرحٌ مبسّط

نماذج Abliterated هي نماذج لغوية كبيرة تم إزالة الآليات التي تفرض رفض السلامة منها، مما يسمح للنموذج بالإجابة على الأسئلة المثيرة للجدل أو المتعلقة بالبالغين أو المتخصصة دون مواجهة فلتر محتوى. يمنح هذا النهج المطورين تحكمًا كاملًا في نبرة النموذج وحدود معرفته، وهو أمر قيّم بشكل خاص في البرمجة، ولعب الأدوار، والكتابة الإبداعية حيث قد تمنع الحواجز القياسية المخرجات المفيدة.

كرة زجاجية تمثل شبكة عصبية مع شعاع كهرماني يُزال بواسطة ذراع ميكانيكية

نقاط رئيسية

  • تقيس Abliteration اتجاه الرفض داخل النموذج وتخرجه من الأوزان.
  • إنها تعديل وليس إعادة تدريب، لذا فهي رخيصة لكنها قد تقلل جودة الإجابة قليلاً.
  • يغيّر الضبط الدقيق السلوك عبر التدريب على أمثلة؛ بينما تُغيّر الأبليتريشن السلوك بطرح اتجاه واحد.
  • يمكنك تقييم أي نموذج من هذا القبيل بمجموعة اختبار قصيرة قبل البناء عليه.

النسخة المختصرة

نماذج اللغة التي خضعت لتدريب السلامة تميل إلى رفض بعض الطلبات. اكتشف الباحثون أن سلوك الرفض هذا يُنظَّم عبر اتجاه واحد في التنشيطات الداخلية للنموذج. أزل هذا الاتجاه، ويتوقف النموذج عن الرفض في معظم الأوقات. اسم "الأبليتريشن" مزيج من "الأبليشن" (إزالة مكون) و"أوبليتريت" (إبادة).

إذن، كيف تُصنع نماذج الأبليتريشن عملياً؟ هناك أربع خطوات: جمع مجموعتين من الموجّهات، تسجيل تنشيطات النموذج على كل مجموعة، حساب الفرق للحصول على اتجاه، وتعديل الأوزان بحيث لم يعد النموذج قادراً على الكتابة على طول هذا الاتجاه. تتناول الأقسام التالية كل خطوة دون الرياضيات الثقيلة.

الخطوة 1: مجموعتان من الموجّهات

تحتاج إلى مجموعة من الموجّهات يرفضها النموذج عادةً ومجموعة يجيب عليها بشكل طبيعي. تحتوي كل مجموعة على بضع مئات من التعليمات القصيرة. يجب أن تكون المجموعات متشابهة في الطول والأسلوب، بحيث يكون الاختلاف المنهجي الوحيد بينهما هو ما إذا كان النموذج يريد الرفض. إذا كانت المجموعة الضارة كلها طويلة والمجموعة غير الضارة كلها قصيرة، فإن الاتجاه الناتج سيحتوي جزئياً على طول، وهذا يضيف ضوضاء.

الموجّهات هي مدخلات للقياس فقط. لا يتم التدريب عليها، ولا يتم استخدام إجابات النموذج لها.

الخطوة 2: العثور على اتجاه الرفض

يعالج المحوّل النص كمتجهات تمر عبر العديد من الطبقات. في طبقة مختارة، تسجل المتجه عند رمز الموجّه الأخير لكل موجّه في كلتا المجموعتين. ثم تحسب متوسط المتجهات لكل مجموعة وتطرح متوسطاً من الآخر. النتيجة هي متجه واحد يشير من "الإجابة بشكل طبيعي" نحو "الرفض". قم بتطبيعها إلى طول واحد وستحصل على اتجاه الرفض.

عادةً ما يحاول الناس عدة طبقات ويختارون تلك التي يعمل فيها إزالة الاتجاه بشكل أفضل على مجموعة موجّهات محفوظة. اختيار الطبقة هو الجزء الأكثر تفاعلاً في العملية.

import numpy as np

# acts_bad, acts_good: arrays of shape (n_prompts, hidden_size)
direction = acts_bad.mean(axis=0) - acts_good.mean(axis=0)
direction = direction / np.linalg.norm(direction)

# remove the direction from a weight matrix W that writes into the residual stream
W_edited = W - np.outer(direction, direction) @ W

تطبق التطبيقات الواقعية هذا على عدة مصفوفات أوزان في كل طبقة، لكن الفكرة هي تلك الموجودة في هذه الأسطر الثلاثة.

الخطوة 3: تعديل الأوزان

بمجرد الحصول على الاتجاه، هناك طريقتان لاستخدامه. يمكنك طرحه من التنشيطات أثناء تشغيل النموذج، مما يتطلب كود استنتاج مخصص. أو يمكنك دمجه في الأوزان عن طريق تعامد كل مصفوفة تكتب في تيار الباقي ضد الاتجاه. النهج الثاني هو الشائع، لأن النموذج المعدل هو نقطة تفتيش عادية يمكن لأي وقت تشغيل تحميلها. هذا هو السبب في ظهور نماذج الأبليريشن كتنزيلات عادية.

التعديل حتمي وسريع. يستغرق دقائق على بطاقة رسوميات يمكنها استيعاب النموذج، مقارنة بالساعات أو الأيام لإجراء تدريب.

الأبليريشن مقابل الضبط الدقيق

كلاهما يمكن أن ينتج نموذجاً يرفض أقل، لكنهما يعملان بشكل مختلف.

Abliterationضبط دقيق
ما يتغيرتُسقط الأوزان بعيداً عن اتجاه واحدتُحدّث الأوزان عن طريق نزول التدرج على الأمثلة
البيانات المطلوبةمجموعتا موجّهات صغيرتان للقياسمجموعة تدريبية منتقاة
الحوسبةدقائق إلى ساعةساعات إلى أيام
الآثار الجانبيةقد تُضعف الاستدلال أو تُغيّر النبرةيعتمد على البيانات؛ قد تُعلّم أسلوباً أو معرفة جديدة
التحكمخشن: اتجاه واحد (تفعيل أو تعطيل)دقيق: أنت تُشكّل السلوك باستخدام البيانات

يجمع بعض المطوّرين بين الطريقتين: يقومون بإزالة الاتجاه أولاً، ثم يشغّلون ضبطاً دقيقاً قصيراً لاستعادة أي جودة مفقودة. تقوم الأدوات الأحدث أيضاً بأتمتة البحث عن الطبقة والقوة المثلى، بحيث يزيل التعديل الرفض مع تغيير النموذج بأقل قدر ممكن. عادةً ما يُذكر النهج الذي أنتج نموذجاً معيناً في بطاقة النموذج الخاصة به.

ما يكلفه من جودة

إزالة اتجاه ما هي تعديل خشن. اتجاه الرفض ليس منفصلاً تماماً عن الميزات الأخرى، لذا فإن إسقاطه قد يُغيّر سلوكاً آخر. تشمل الآثار الجانبية المُبلغ عنها أداءً أضعف قليلاً في اختبارات الاستدلال، وتنسيقاً غريباً، وفي بعض الحالات نموذجاً يجيب على الطلبات الضارة بإهمال بدلاً من التفاصيل المفيدة. يختلف التأثير حسب النموذج الأساسي ودرجة تطبيق التعديل.

أمران يقللان من الضرر. الأول هو اختيار الطبقة والقوة التي تزيل الرفض في مجموعة الاختبار الخاصة بك بأقل تغيير ممكن في الجوانب الأخرى. والثاني هو الضبط الدقيق الإصلاحي المذكور أعلاه. لا يجعل أي منهما التعديل خالياً من التكاليف، ولهذا السبب يجب عليك اختبار نموذج على مهامك الخاصة بدلاً من الاعتماد على الوصف.

مفاهيم خاطئة شائعة

"يضيف معرفة جديدة." لا يفعل. التعديل يزيل سلوكاً فقط. إذا لم يكن النموذج الأساسي يعرف موضوعاً معيناً، فلن يعرفه الإصدار المُزال الاتجاه أيضاً. قد يحاول ببساطة الإجابة حيث رفضت النسخة الأصلية.

"يزيل جميع ضوابط الأمان." يزيل اتجاه الرفض الذي تم قياسه. العادات المتعلمة الأخرى، مثل لغة الحذر أو التعليقات الوعظية، قد تبقى، لأنها موزعة عبر ميزات أخرى. لا تزال بعض النماذج تضيف إخلاء مسؤولية بعد التعديل.

"النماذج الأكبر أسهل في التعديل." النتائج متباينة. غالباً ما تتحمل النماذج الأكبر التعديل بشكل أفضل لأنها تمتلك سعة احتياطية أكبر، لكن جودة مجموعتي الموجهات الخاصة بك أهم من الحجم الخام.

"تخبرك بطاقة النموذج بكل شيء." تصف البطاقات النية. نادراً ما تتضمن معدلات الرفض لمجموعة الموجهات الخاصة بك. يستغرق اختبار 40 موجهًا خاصًا بك عشر دقائق ويخبرك أكثر من البطاقة.

"النتيجة دائماً نفسها لنموذج أساسي معين." ليست كذلك. مجموعات الموجهات المختلفة، والطبقات والقوى المختلفة تُنتج تعديلات مختلفة، لذا يمكن لنموذجين مبنيين على نفس الأساس أن يتصرفا بشكل مختلف تماماً. قارنها مباشرة بدلاً من افتراض تطابقها، وسجّل النسخة عند تسجيل نتائج الاختبار.

ينطبق حدّ واحد على أي خدمة مسؤولة، سواء كانت مستضافة أو محلية: المحتوى الذي يضفي طابعاً جنسياً على القاصرين غير متاح، ولا يغيّر تعديل الرفض هذه القاعدة على هذا الموقع.

كيف تقيّم نموذجاً قبل البناء عليه

اكتب ملف اختبار قصير يحتوي على 30 إلى 50 موجهًا تتطابق مع استخدامك الفعلي: نوع الخيال، التحليل أو الكود الذي تخطط لإنتاجه. أضف بعض المهام العادية، مثل التلخيص أو الإجابة على سؤال واقعي، لرؤية ما إذا كانت الجودة العامة قد انخفضت. شغّل الملف نفسه ضد كل مرشح واقرأ المخرجات. احسب عدد حالات الرفض، ولكن اقرأ أيضاً من أجل الاتساق، واتباع التعليمات والتكرار.

إذا كنت تفضل عدم تنزيل واستضافة الأوزان للقيام بذلك، يمكنك تشغيل الملف ضد نقطة نهاية مستضافة. واجهة برمجة التطبيقات في هذا الموقع متوافقة مع OpenAI وتقدم نموذجاً واحداً مفتوح الأوزان، مُضبط للإجابة بدون رفض المحتوى للاستخدام القانوني للبالغين، تحت المعرف uncensored:

curl https://api.abliterated.cc/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"Summarize the plot of Hamlet in three sentences."}]}'

اطّلع على نظرة عامة على نماذج Abliterated لمزيد من المعلومات حول اختيار واحد، أو صفحة أفضل نموذج LLM من نوع Abliterated للعب الأدوار إذا كان عمل الشخصيات هو هدفك. تفاصيل الطلب موجودة في توثيق API. يمكن للحسابات الجديدة استلام رصيد تجريبي بقيمة $0.50 بدون بطاقة، وهو كافٍ لتشغيل ملف اختبار بهذا الحجم.

أسئلة وأجوبة

هل تحتاج الأبليتريشن إلى بيانات تدريب جديدة؟

لا. تحتاج إلى مجموعتين صغيرتين من الموجّهات لقياس التنشيطات، لكن النموذج لا يُدرَّب عليهما. التغيير هو تعديل مباشر للأوزان.

هل نموذج الأبليتريشن نفسه مثل الاختراق؟

لا. اختراق القيود هو موجه يحاول إخراج النموذج من الرفض. إزالة الاتجاه تغير النموذج نفسه، لذا لا يلزم موجه خاص.

هل تجعل الأبليتريشن النموذج أسوأ؟

غالباً قليلاً. يمكن أن تتغير درجات الاستدلال والأسلوب. يعد الاختبار على موجهاتك الخاصة الطريقة الوحيدة الموثوقة لمعرفة ذلك لنموذج معين.

هل يمكنني استخدام واحد دون تشغيله بنفسي؟

نعم. يتيح لك API مستضاف ومتوافق مع OpenAI استدعاء نموذج بدون الحاجة إلى GPU. عنوان URL الأساسي هو https://api.abliterated.cc/v1 ومعرف النموذج هو uncensored.

مفتاحك على بُعد نموذج واحد

أنشئ حساباً، وانسخ المفتاح، ثم غيّر عنوان URL الأساسي. هذا هو الإعداد الكامل.