نجمّع مرة واحدة، ونشتق في كل مكان ✛

الأصل: "Compile Once, Differentiate Everywhere: A Differentiable Meta-Circular Interpreter"
· Lucas Sheneman
arXiv:2606.09930 · 2026-06-07 · CC BY 4.0 · 1 دقيقة
مفسّر Scheme مُجمَّع في رسم بياني قابل للاشتقاق يتيح تحسين أي برنامج بوصفه بيانات.

المترجم الفوري يتعلم من كل كلمة. يجلس في قاعة الاجتماعات ويترجم. لكن بدلًا من مجرد الترجمة، يتذكر العبارات التي سبّبت سوء فهم ويغيّرها. بعد ساعة يصبح ترجمته أكثر دقة. وهكذا هنا: مفسّر لغة Scheme، بعد أن يُجمَّع مرة واحدة، يمكنه تنفيذ أي برنامج يُمرَّر إليه كبيانات، وفي الوقت نفسه حساب التدرجات لتحسين تلك البرامج.

سابقًا، كان لا بد من إعادة كتابة كل نموذج علمي يدويًا بصيغة قابلة للاشتقاق لتطبيق تحسين التدرج. هذا يشبه الاضطرار إلى توظيف مترجم جديد لكل نص جديد. أما الآن، فالمترجم نفسه يصبح قابلاً للتعلم: فهو لا يترجم فحسب، بل يفهم أيضًا كيف يعدّل النص ليصبح أفضل. ابتكر مؤلفو الدراسة مترجمًا يحوّل الكود المصدري بلغة Scheme إلى تمثيل وسيط يسمى ComputeGraph، ثم إلى وحدات PyTorch أو JAX. السمة الأساسية هي أن المفسِّر نفسه يصبح قابلاً للاشتقاق، وليس البرامج الفردية.

مفسّر Scheme المكتوب بلغة Scheme نفسها يتألف من 288 سطرًا فقط. ومع ذلك، فهو يدعم الإغلاقات (closures)، والاستدعاء الذاتي (recursion)، والقوائم (lists)، والاستدعاءات الذيلية (tail calls)، بما يكفي ليكون قابلاً للتطبيق على نفسه.

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

مفسّر Scheme المكتوب بلغة Scheme نفسها يتألف من 288 سطرًا فقط. ومع ذلك، فهو يدعم الإغلاقات، والاستدعاء الذاتي، والقوائم، والاستدعاءات الذيلية، بما يكفي ليكون قابلاً للتطبيق على نفسه.

فكرة برنامج يمكنه تعديل وتحسين نفسه عبر التدرجات تذكّر بمفهوم آلات غودل (Gödel machines) التي اقترحها يورغن شميدهوبر في أعماله حول التحسين الذاتي الشامل.

\frac{\|\nabla_{\theta} L_{\text{DMCI}} - \nabla_{\theta} L_{\text{direct}}\|_2}{\|\nabla_{\theta} L_{\text{direct}}\|_2} \approx 0
الخطأ النسبي للتدرج قريب من الصفر، مما يؤكد صحته.
\text{throughput speedup} = \frac{\text{time sequential}}{\text{time batched}}
نسبة زمن التنفيذ التسلسلي إلى زمن التنفيذ بالدفعات.
L(\theta) = \ell(\pi(\text{eval}(P(\theta), x)))
تُحسب الخسارة كدالة قابلة للاشتقاق لمخرجات المفسِّر.
العلماء
Niels BohrPascual JordanWerner HeisenbergJoseph Fourier
المفاهيم
مصنف المشفر الذاتي مفكك ترميز إعادة بناء البيانات بالشبكات العصبية التصحيح الذاتي للذكاء الاصطناعي تحليل المكونات المستقلة الذكاء الاصطناعي القابل للتفسير (XAI) حساب نموذج توليدي واجهة دماغ-حاسوب إكس جي بوست شبكة عصبية عميقة معالجة متوازية الشكل التفاضلي تقليل الأبعاد معالجة اللغة الطبيعية