Model Editing
يغيّر تحرير النموذج حقيقة أو سلوكًا محددًا في نموذج مدرّب، مثل إجابة واحدة لنموذج لغة كبير، دون إعادة التدريب أو التأثير في المخرجات غير المرتبطة.
تحرير النماذج هو تغيير موجّه لحقيقة واحدة محددة أو لسلوك واحد محدد في نموذج مدرّب، مثل الإجابة التي يقدّمها نموذج لغوي كبير (LLM) عن العبارة "يقع برج Space Needle في مدينة"، من دون إعادة تدريب النموذج أو تغيير مخرجاته للمدخلات غير ذات الصلة. ويُستخدم هذا الأسلوب غالبًا لتصحيح المعرفة الواقعية في نماذج LLMs أو تحديثها أو إدراجها، حيث تكون إعادة التدريب الكاملة باهظة للغاية، في حين يميل الضبط الدقيق المعتاد على مثال واحد إلى فرط التكيّف أو الإضرار بمعارف أخرى. فإما أن يحسب المحرر تغييرًا صغيرًا وموضعيًا في أوزان النموذج، أو يخزّن التعديل خارج الأوزان ويوجّه المدخلات ذات الصلة إليه. وأشهرها طريقة تحرير النموذج أحادي الرتبة (ROME)، التي قدّمها Kevin Meng وDavid Bau وAlex Andonian وYonatan Belinkov في البحث تحديد مواضع الارتباطات الواقعية وتحريرها في GPT، والذي عُرض في NeurIPS 2022.
آلية عمل تحرير النماذج#
يحدد طلب التحرير مدخلًا، غالبًا ما يكون موضوعًا وعلاقة، والمخرج الجديد؛ مثل تغيير مدينة Space Needle من Seattle إلى Paris. وتنقسم المحررات إلى بضع فئات:
- التحديد ثم التحرير: يستخدم ROME أولًا التتبّع السببي، وهو أسلوب في قابلية التفسير يفسد الحالات المخفية ثم يستعيدها، لتحديد الموضع الذي تسترجع فيه نماذج GPT حقيقة ما. يقع الحساب الحاسم في طبقات التغذية الأمامية (MLP) بمنتصف الشبكة، عند الرمز الأخير للموضوع. ويتعامل ROME مع إسقاط المخرجات في إحدى طبقات MLP بوصفه ذاكرة مفاتيح وقيم، ويدرج الحقيقة الجديدة بتحديث مغلق الصيغة من الرتبة الأولى؛ ففي GPT-2 XL يحرر الطبقة 18 من أصل 48. أما MEMIT فيوزع التحديث على عدة طبقات لإدراج آلاف الحقائق دفعة واحدة.
- المحررات المتعلّمة: يدرّب MEND شبكةً فائقة صغيرة تحوّل تدرج مثال التحرير إلى تحديث أوزان منخفض الرتبة، ما يحافظ على سرعة التحرير في النماذج ذات مليارات المعاملات.
- المحررات القائمة على الذاكرة: يخزّن SERAC التعديلات في ذاكرة صريحة، ويستخدم مصنف نطاق لإرسال المدخلات المتعلقة بتعديل إلى نموذج مضاد للواقع صغير، مع إبقاء أوزان النموذج الأساسي دون تغيير. ويدرج GRACE دفتر رموز من موائمات المفاتيح والقيم المتقطعة في طبقة واحدة للتعامل مع سلاسل طويلة من التعديلات. ويُعد وضع الحقيقة الجديدة في الموجّه، كما يفعل التوليد المعزز بالاسترجاع، أبسط محرر من هذا النوع.
يعتمد تحديث ROME على خاصية للطبقات الخطية: تحوّل مصفوفة الأوزان W المفاتيح المخزنة إلى قيم، ويمكن إعطاء مفتاح جديد k* قيمة جديدة v* بإضافة مصفوفة من الرتبة الأولى. ويوازن ROME التحديث باستخدام معكوس التغاير C للمفاتيح التي تراها الطبقة بالفعل، والمقدّر من عينة من نصوص ويكيبيديا، ما يوجّه التغيير بعيدًا عن الاتجاهات التي تستخدمها المفاتيح الحالية. يطبّق مثال PyTorch هذا التحديث على طبقة عشوائية تخزّن 5,000 مفتاح، ويقارنه بتحديث عادي من الرتبة الأولى يتجاهل التغاير:
import torch
torch.manual_seed(0)
scales = torch.logspace(0, -2, 256) # key dimensions with very different variances, as in real activations
keys = torch.randn(5000, 256) * scales # keys of 5,000 facts the layer already stores
W = torch.randn(128, 256) # the layer maps each key to a value
C = keys.T @ keys / len(keys) # second-moment statistics of the stored keys
k_new = torch.randn(256) * scales # key of the subject to edit
v_new = W @ keys[0] # new value: one already stored for another subject, as in "Seattle" -> "Paris"
# Plain rank-one update vs. ROME's update, which steers the change away from directions stored keys use
plain = W + torch.outer(v_new - W @ k_new, k_new) / (k_new @ k_new)
c_inv_k = torch.linalg.solve(C, k_new)
rome = W + torch.outer(v_new - W @ k_new, c_inv_k) / (k_new @ c_inv_k)
for name, edited in [("Plain rank-one", plain), ("ROME", rome)]:
error = (edited @ k_new - v_new).norm() / v_new.norm()
drift = ((keys @ (edited - W).T).norm(dim=1) / (keys @ W.T).norm(dim=1)).median()
print(f"{name}: new-fact error {error:.4f}, median change on stored facts {drift:.2%}")يحوّل التحديثان المفتاح الجديد إلى قيمته الجديدة بدقة، مع خطأ مقداره 0.0000. ويغيّر التحديث العادي وسيط المخرجات للمفاتيح المخزنة وعددها 5,000 بمقدار 10.99%، بينما يغيّره تحديث ROME الموزون بالتغاير بمقدار 5.02%، لذا لا يخلّ التعديل إلا بجزء أقل مما تعرفه الطبقة مسبقًا.
تقييم التعديل#
تُقيّم التعديلات وفق عدة خصائص في آن واحد. تسأل الموثوقية عمّا إذا كان المدخل الذي عُدّل يعطي الإجابة الجديدة الآن؛ ويسأل التعميم عمّا إذا كانت الصيغ المعادَة تعطيها أيضًا؛ وتسأل المحلية، وتُسمّى كذلك الخصوصية، عمّا إذا كانت المدخلات غير ذات الصلة تحتفظ بإجاباتها القديمة؛ أما قابلية النقل فتسأل عمّا إذا كان الاستدلال المعتمد على الحقيقة يتبعها. أنشأ مؤلفو ROME مجموعة بيانات CounterFact التي تضم 21,919 تعديلًا مضادًا للواقع لقياس هذه الخصائص مجتمعة، لأن المعايير المرجعية السابقة كانت تسمح للطرق بالمفاضلة بين التعميم والخصوصية دون ملاحظة ذلك.
غالبًا ما تخفق التعديلات في الاختبارات الأصعب. ففي تعديلات RippleEdits المرجعية البالغ عددها 5,000، أخفقت المحررات البارزة في إحداث تغييرات متسقة في الحقائق المرتبطة منطقيًا بالحقيقة التي عُدّلت، وكان أداء خط أساس بسيط للتحرير ضمن السياق هو الأفضل. ووجد Gupta وزملاؤه أن تطبيق ROME وMEMIT بالتتابع يجعل النموذج ينسى التعديلات السابقة والمهارات اللاحقة، أولًا تدريجيًا ثم على نحو مفاجئ، ما يحدّ من عدد التعديلات التي يستطيع النموذج استيعابها.
تحرير نماذج الرؤية#
تنطبق الآلية نفسها القائمة على الرتبة الأولى على الصور. فقد حرّر Santurkar وزملاؤه مصنفات الصور بإعادة كتابة القاعدة التي تطبقها إحدى الطبقات على مفهوم بصري؛ مثل تحويل تمثيل الثلج إلى تمثيل الطريق كي يتعامل النموذج مع المركبات على الطرق الثلجية، من دون جمع بيانات تدريب جديدة. ويجري Ultralytics YOLOE تعديلًا لا يعتمد على التدرج لرأس الكشف الخاص به عند التصدير: إذ تُضرب الفئات المهيأة باستخدام set_classes() في الالتفاف النهائي لكل فرع تصنيف، بحيث يكشف النموذج المُصدّر المفردات الجديدة من دون تدريب أو مُرمّز نصي.
تحرير النماذج مقابل المفاهيم ذات الصلة#
- الضبط الدقيق: يحدّث أوزانًا كثيرة انطلاقًا من مجموعة بيانات لتغيير السلوك العام. أما التحرير فيستهدف زوجًا واحدًا من المدخلات والمخرجات، مع تقييد التغييرات الأخرى.
- التوليد المعزز بالاسترجاع (RAG): يزوّد الموجّه بالحقائق الحالية عند كل طلب، ويُبقي النموذج دون تغيير، ما يسهّل التراجع عن التغييرات ويتيح التوسع للتعامل مع حقائق كثيرة.
- إلغاء التعلّم الآلي: يزيل أثر بيانات تدريب محددة. أما التحرير فيستبدل حقيقة أو يضيفها، ويُعد حذف حقيقة عبر التحرير أحد أشكال إلغاء التعلّم.
- حساب المهام: يجمع تغييرات الأوزان أو يطرحها لمهام كاملة ضُبطت نماذجها بدقة. يعمل تحرير النماذج على مستوى حقيقة واحدة.
- قابلية التفسير الآلي: تشرح كيفية إجراء النموذج للحسابات. وينتمي التتبّع السببي في ROME إلى هذا المجال، ويحدد الطبقة التي يستهدفها التعديل.










