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

لم يكن نزول التدرج (Gradient Descent) مقدساً يوماً. كان مجرد سقالة، الأداة العامة الوحيدة التي امتلكناها لتشكيل مليارات الأرقام التي لا يستطيع إنسان قراءتها، فبنينا حولها ديانة التعلّم العميق بأكملها. فريق في MIT CSAIL ركل هذه السقالة للتو. سلّموا نموذجاً رائداً الأوزان الخام لشبكات عصبية مدرَّبة، وطلبوا منه بلغة طبيعية عادية أن يفسّرها ويصحّح أخطاءها ويعيد كتابتها، من دون حلقة تدريب ولا تدرّجات ولا تمريرات أمامية. ونجح الأمر. برمجة فضاء الأوزان، أي التفكير في المعاملات مباشرة بدلاً من دفعها نحو الأسفل تدريجياً، انتقلت من تجربة فكرية إلى عرض عملي، وأرى أنها تُنزل الضبط الدقيق بهدوء من مرتبة «الطريقة التي نكيّف بها النماذج» إلى خيار واحد من ثلاثة.
النتيجة الرئيسية تستحق الضجة التي تُثار حولها. طُلب من النموذج تحسين Qwen3.5-0.8B في الرياضيات دون أي تحديثات تدرّج، فتتبّع النموذج، وهو GPT-6 Astra، حلقة استدلال مرضية إلى اتجاه واحد مكتوب في طبقتَي MLP، ثم طرحه من 0.016% من الأوزان، فارتفعت دقة MATH-500 من 7.9% إلى 48.1%. بنفس إعدادات أخذ العينات، وبنفس كل شيء. وانتقل الإصلاح حتى إلى اتباع التعليمات فتضاعف الأداء ثلاث مرات في IFEval. هذا ليس ضبطاً لمعامل فائق، إنها جراحة. لكن قبل أن ندفن نزول التدرج، من الأجدر أن نكون دقيقين في ما أُثبت فعلاً، وأين يعمّم، وأين يفشل بالفعل.
ما هي برمجة فضاء الأوزان فعلياً
لسنوات كان لدينا طريقتان بالضبط لتغيير سلوك النموذج. الـ Prompting يغيّر المدخلات والأوزان تبقى مجمّدة. أما الضبط الدقيق فيغيّر الأوزان، لكن بشكل أعمى: تعرض على مشهد دالة الخسارة دفعة من الأمثلة، وتترك التدرجات تدفع المعاملات في أي اتجاه يقلل الخطأ، مع قدر ضئيل من التحكم في أي آليات داخلية تُعاد توصيلها في الطريق. تقترح برمجة فضاء الأوزان رافعة ثالثة: نتخلى عن دالة الخسارة تماماً، ويقرأ نظام استدلالي الأوزان، ويكوّن فرضية عمّا تحسبه، ثم يعدّلها لتطابق مواصفة بلغة طبيعية.
أغرب ما في النتائج هو جزء القراءة. درّب الباحثون أربع سياسات صغيرة باستخدام PPO لتلعب نسخاً شبكية من Breakout وPong وPac-Man وFreeway، بنفس البنية وقنوات الإدخال ومساحات الإجراءات، بحيث لا شيء يميّز بينها سوى الأوزان. وسمّى Astra الألعاب الأربع بشكل صحيح دون أن يُعطى قائمة المرشحين. وفعل الشيء نفسه مع نماذج الانتشار المدرّبة على توليد الدوائر والمربعات والمثلثات. والنسخة الأصعب: حدّد أيّ المحوّلات الثلاثة على مستوى الحروف دُرّب على بايثون أو الإنجليزية أو اليابانية المكتوبة بالحروف اللاتينية، وذلك اعتماداً على الطبقات الوسطى فقط، بعد إزالة طبقات التضمين والإخراج وكل بُعد بلا تسمية. وفي الطريق، عثر على كل رؤوس الاستنساخ (Induction Heads)، وهي دوائر النسخ التي تسمح للنموذج بتكرار نص سابق، وذلك بضرب مصفوفات الأوزان ببعضها. هذه تقنية معروفة من أدبيات قابلية التفسير لم يخبره أحد عنها. إذا كنت تتابع العمل البطيء في تفسير الآليات الميكانيكي، فمشاهدة نموذج عام يفعل ذلك بشكل أصيل تُصيب بشيء من الدوار.
ثم كتب الأوزان. أُعطي متحكّماً لسيارة مدرّباً بـ PPO وعلق في حد محلي، إذ قادت السياسة السيارة مباشرة نحو منحدر بدلاً من الرجوع للخلف أولاً لاكتساب السرعة، فشخّص Astra الفشل من الأوزان مع تسجيل حلقة واحدة، وجعل تعديله السيارة تنجح في جميع حلقات التقييم البالغة 1,024 بعد تغيير 3.5% من المعاملات. وعندما طُلب منه كتابة شبكات للعب من الصفر، دون أي تغذية راجعة من البيئة، أنتج سياسات تفوّقت على شبكات دُرّبت بـ PPO لمدة 100 مليون خطوة. اقرأ ذلك مرة أخرى: لا تفاعل، ولا إشارة مكافأة، فقط وصف بلغة طبيعية للعبة تحوّل بتفكير نموذج لغوي إلى أوزان تعمل.
كيف تعمل تعديلات الأوزان المباشرة على النماذج الحقيقية
إصلاح Qwen هو النتيجة الأهم للممارسين، لأن 0.8 مليار معامل نموذج حقيقي، من النوع الذي تضبطه الفرق فعلاً وتشحنه. والعطل موثّق جيداً: تقع النماذج الاستدلالية الصغيرة في الحلقات، فتكرر النص نفسه حتى تبلغ حد الرموز دون أن تقدّم إجابة أبداً. وتحذّر بطاقة نموذج Qwen نفسها من ذلك، وفي تجارب الباحثين، احترقت 85 إجابة من أول 96 بالكامل بسياق 32,768 رمزاً بهذه الطريقة. تشخيص Astra: طبقتا MLP رقم 15 و19 كانتا تكتبان اتجاهاً في الـ residual stream يبقي النموذج عالقاً في المسار التوليدي نفسه. وكان إصلاحه طرح هذا الاتجاه من 64 عموداً للإخراج في كل من طبقتي MLP، أي 131,072 وزناً في المجموع، أو 0.016% من النموذج.
الحساب بسيط إلى حد مُهين، وهذه هي النقطة. بمجرد أن تعرف أي اتجاه في فضاء التفعيل يقابل «اللف إلى ما لا نهاية»، تصبح إزالته إسقاطاً: لكل متجه وزن متأثر، اطرح المركبة الواقعة على الاتجاه السيئ. يستطيع أي شخص كتابة ذلك في عشرة أسطر.
import numpy as np
def subtract_direction(W, v, columns):
"""Remove the component of each chosen column that lies along v."""
v = v / np.linalg.norm(v)
W[:, columns] -= np.outer(v, v @ W[:, columns])
return W
# The Qwen repair, schematically: for the MLP output projections of
# layers 15 and 19, subtract the "loop" direction from 64 columns each.
# 2 layers x 64 columns x 1024 rows = 131,072 edited weights.
W_down[15] = subtract_direction(W_down[15], loop_dir[15], cols[15])
W_down[19] = subtract_direction(W_down[19], loop_dir[19], cols[19])
الجزء الصعب لم يكن يوماً عملية الطرح، بل معرفة أي اتجاه، في أي طبقة، من بين residual stream يمتد لآلاف الأبعاد. وهذا هو الجزء الذي كنا نحتاج فيه لنزول التدرج سابقاً، لأن التدرجات إجراء بحث في فضاء الأوزان لا يتطلب أي فهم على الإطلاق. استبدل Astra البحث بالتشخيص. الفرق كالفرق بين كهربائي يعيد توصيل الدارات بالتجربة والخطأ حتى يزول العطل، وآخر يقرأ المخطط ويقطع السلك الصحيح. والسبب نفسه يفسّر لماذا وجد النموذج رؤوس الاستنساخ بتركيب مصفوفات الأوزان: كان يطبّق طريقة منشورة في قابلية التفسير لم يُعرض عليها من قبل، وهذا يوحي بنقل حقيقي للاستدلال لا باسترجاع وصفات محفوظة.

متى تتفوق تعديلات الأوزان المباشرة على الضبط الدقيق
هذا رأيي، وأنا مستعد للدفاع عنه: بالنسبة للأعطال الضيقة القابلة للتحديد في النماذج الصغيرة والمتوسطة، فإن تعديل الأوزان المباشر هو الأداة الأفضل بالفعل، وليس الأمر قريباً. تأمّل البديل بالضبط الدقيق لعطل الحلقات. ستجمع مجموعة بيانات من مسارات استدلال غير مكرّرة، وتشغّل SFT أو RL، وتأمل أن يزيل ضغط الخسارة السلوك دون أن يُفسد بقية ما يعرفه النموذج. وستحرق ساعات من وحدات GPU وأنت تتسلق نحو وكيل (proxy)، أي مزيد من بيانات الرياضيات، بدلاً من النية الفعلية، وهي «توقّف عن تكرار نفسك». برمجة فضاء الأوزان تتيح لك التصريح بالنية. لمس التعديل جزءاً من مئة من النموذج؛ أما الضبط الدقيق فيلمس كله، وتظهر الأضرار الجانبية لاحقاً على هيئة تراجعات غريبة لا يربطها أحد بجولة التدريب.
الضبط الدقيق يتسلّق نحو وكيل لنيّتك. برمجة فضاء الأوزان تتيح لك التصريح بالنية.
الحالة الثانية هي الهروب من الحدود المحلية التي لا تستطيع طرق التدرج مغادرتها بنيوياً. علق PPO السيارة عند المنحدر لأن التعلّم المعزز يستكشف بتحريك السياسة الحالية قليلاً، ولا يكتشف أي اضطراب صغير لـ«قُد للأمام» أن «ارجع للخلف لثانيتين أولاً». الاستدلال لا يتحرك بهذه الطريقة. يستطيع القفز إلى حل مختلف نوعياً لأنه يعمل على نموذج للمشكلة، لا على اضطراب للإجابة الحالية. مليار خطوة PPO لم تكن قادرة على إيجاد ما وجده استدلال واحد، وهذا ليس فجوة كفاءة، بل فرق في الفئة.
ثالثاً، تنهار حلقة التكرار. فالضبط الدقيق له ذيل لوجستي، من تنظيم البيانات وجولات التدريب ومسوحات التقييم وفحوص التراجع، يحوّل «تغيير سلوك صغير» إلى مشروع يستغرق أياماً. ومن شغّل نموذجاً كبيراً على عتاده الخاص يعرف كم من الجهد هو سباكة لا نمذجة. تعديل الأوزان أقرب إلى إصلاح عاجل للكود: شخّص، ورقّع، وشغّل التقييمات، وارجع إن كان خاطئاً. وعندما يكون التشخيص صحيحاً، تتخطى خط التدريب بالكامل. وتتركز المكاسب الواضحة في أربع حالات:
- العطل مشخّص لكن ليس لديك بيانات تدريب تعبّر عن الإصلاح
- تحتاج نطاقاً جراحياً: تغيير سلوك واحد دون أن ينجرف الباقي
- النموذج عالق في حد محلي لا يستطيع الاستكشاف العشوائي الهروب منه
- لا تقدر على تحمّل خط تدريب، لا بوحدات GPU ولا بالوقت التقويمي
لماذا تبقى برمجة فضاء الأوزان هشّة
الآن الماء البارد، لأن فيه الكثير. أكثر نقطة بيانات مفيدة رأيتها ليست من الورقة البحثية، بل من ممارس جرّب الحيلة نفسها على نموذج صغير يحوّل اللغة الطبيعية إلى bash، فلم يحصل على أي صافي مكاسب. تعديل 1,920 وزناً أصلح بعض أخطاء grep وكسر أوامر أخرى. هذه النتيجة المتوقعة، وهذه هي المشكلة العميقة: السلوكيات في الشبكات المدرّبة متشابكة. نجح تعديل Qwen لأن سلوك الحلقة كان يعيش صدفةً في اتجاه مدمج وقابل للإزالة. كثير من السلوكيات ليست كذلك. إنها منتشرة عبر التراكب (Superposition)، إذ تحمل الأعمدة نفسها ميزات غير مرتبطة متعددة، لذا فطرح «اتجاه» أشبه بمحاولة إزالة نوتة واحدة من وتر. ستقطع الباقي حتماً. لا أحد لديه نظرية للتنبؤ مسبقاً بالأعطال المدمجة هندسياً وتلك المنتشرة. حتى ذلك الحين، كل تعديل للأوزان مقامرة.
عروض القراءة تستحق خصماً أيضاً. استدلال Astra عن شبكات الألعاب اعتمد على إحصاءات سطحية، مثل أين تتركز أوزان الطبقة الأولى وأي logits الإخراج تفصل، وتحديد اللغة كان فعلياً اختياراً من متعدد بثلاثة خيارات، وأحدها، اليابانية بالحروف اللاتينية، له توزيع حروف غير عادي بشكل صارخ (لا q ولا l ولا v ولا x). مطابقة أنماط مبهرة؟ بالتأكيد. دليل على فهم أصيل عميق لفضاء الأوزان؟ أقل وضوحاً. نتيجة الانتشار تُحسب في الاتجاهين: رسم Astra كل شكل كمخطط عام بينما النماذج تولّد أشكالاً ممتلئة، وهو خطأ يثبت أنه كان يقرأ الهندسة لا يحاكي الشبكة، لكنه يُظهر أيضاً أن «فهمه» قد يكون خاطئاً بنيوياً بطرق لا تزال تجتاز الاختبار.
ثم هناك الحجم والمصدر. كل النتائج النظيفة تقع بين 17,000 و7 ملايين وزن، مع 0.8 مليار لنموذج Qwen كاستثناء، وحتى تجربة قراءة الطبقات الوسطى احتاجت إلى ما يصل إلى مئة تشغيل تحليل بايثون للوصول إليها. لم يُظهر أحد أن هذا يعمل على نموذج 70 مليار، فضلاً عن نموذج رائد، والنهج الساذج، أي لصق الأوزان في نافذة سياق، ينهار قبل ذلك بكثير. وثمة سؤال مزعج يخيّم على كل شيء: من أين جاءت هذه القدرة؟ النماذج اللغوية التي تبدو جيدة بشكل مريب في الشطرنج تتضح غالباً أنها التهمت كمية كبيرة من تدوين الشطرنج أثناء التدريب. إذا دُرّب Astra عن قصد على بيانات الأوزان، فهذه النتائج تقول عن الفهم الناشئ أقل، وعن منهج دراسي جيد جداً أكثر. نحن فعلاً لا نعرف.
أخيراً، قفزة MATH-500 تحتاج إلى علامة نجمية. ذلك المعيار أشبعته بيانات التدريب منذ سنوات، والنموذج الأساسي الذي سجّل 7.9% يفشل على الأرجح في الحلقات والتنسيق لا في قدرة الرياضيات، ما يعني أن التعديل فكّ قدرة كامنة ولم يخلق مهارة. هذا لا يزال قيّماً؛ فكّ الحجب مكسب حقيقي. لكنه ادعاء مختلف عن «جعل التعديل النموذج أفضل في الرياضيات»، ويتناسب مع نمط مألوف تفوّت فيه المعايير معظم ما يبدو عليه العمل الحقيقي.

تعديلات الأوزان في الإنتاج: عاملها كإصلاحات عاجلة
إذا أردت تجربة هذا، وعلى النماذج الصغيرة يجب عليك، فعامل تعديلات الأوزان بالانضباط نفسه الذي تطبّقه على رقعة طارئة في قاعدة بيانات تعمل. وثّق كل شيء: سجّل بدقة أي موترات تغيّرت وبأي مقدار، لأن 0.016% صغيرة بما يكفي لكي يختبئ خطأ صامت في سكربت التعديل إلى الأبد. قيّم على نطاق واسع، لا على السلوك المستهدف وحده؛ فإصلاح Qwen صادف أنه حسّن اتباع التعليمات، لكن اتجاه هذا الأثر الجانبي كان حظاً، والمرة القادمة قد ينعكس. احتفظ بنقطة الأساس مقدسة، وأدرج كل تعديل كرقعة قابلة للتراجع. وحدّد طموحك بدقة: المنطقة المثبتة المناسبة هي أعطال صغيرة مفهومة جيداً في نماذج يمكنك تقييمها بالكامل. وإذا كان حدسك أن تصلح مشكلة «إحساس» غامضة في نموذج 70 مليار بـ«إزالة الاتجاه السيئ»، فأنت على وشك أن تتعلّم عن التراكب بالطريقة الصعبة.
- ثبّت نقطة الأساس، واحفظ التعديلات كفروقات (diffs)، ولا تكتب فوقها أبداً
- شغّل تقييمات واسعة قبل التعديل وبعده، لا المعيار المستهدف وحده
- فضّل الأعطال ذات البصمة الحادة القابلة للتكرار على الإحساس العام
- خصّص ميزانية للتراجعات، وافترض أن نسبة من التعديلات ستكسر شيئاً ما
موقفي الصادق: اليوم هذه أداة لقابلية التفسير ومشرط تصحيح، لا خط نشر. الفرق التي ستستخرج القيمة أولاً لن تكون تلك التي تشحن تعديلات الأوزان إلى الإنتاج. بل ستكون التي تستخدم نموذجاً رائداً لـتفسير ما تعلّمته نماذجها الصغيرة، أي قراءة نقاط الحفظ كما قرأنا مسارات الاستدلال من قبل، ثم التصرف بناءً على هذه المعرفة بأدوات عادية ومملة وموثوقة.
التدرجات لم تمت، بل خُفِّضت رتبتها
وهنا تنكسر مقدمتي، وأريد أن أكون صادقاً بشأنها. فنزول التدرج يفعل شيئاً لا تستطيعه برمجة فضاء الأوزان: يتعلم من البيانات على نطاق واسع. كل قدرة استخدمها Astra لإجراء هذه التعديلات نفسها تم تركيبها بالتدرجات عبر مجموعة تدريب ضخمة. يستطيع الاستدلال أن يجري جراحة على ما تعرفه الشبكة، لكنه لا يستطيع أن يعلّم الشبكة مجموع النص البشري. المستقبل الواقعي ليس استبدال التدرجات، بل تقسيم للعمل: التدرجات تصبّ الخرسانة، وبرمجة فضاء الأوزان تتولى التشطيب الدقيق. لأربعين عاماً تعاملنا مع الأوزان المدرّبة كأثر مبهم، صندوق أسود لا يُوجَّه إلا من الخارج. الفكرة الجديدة حقاً هنا أن الصندوق يصبح مقروءاً، والذي يقرؤه ليس نحن. سواء كان ذلك مطمئناً أو مقلقاً، يعتمد على مقدار ثقتك بالتدرجات.


