Composer autoinstall: كيف تساعد الإصدارات القديمة في تدريب الإصدارات الجديدة

طوّرت Cursor نظام Composer autoinstall، وفيه تُجهّز الإصدارات الأقدم من النموذج بيئات التدريب للإصدارات الأحدث بصورة تلقائية. وخلال تدريب Composer 2 استُخدم الإصدار 1.5 لضمان عمل البيئات وتوفير الحوسبة.

معالج بواسطة الذكاء الاصطناعي من Cursor Blog؛ بتحرير Hamidun News
Composer autoinstall: كيف تساعد الإصدارات القديمة في تدريب الإصدارات الجديدة
المصدر: Cursor Blog. كولاج: Hamidun News.
استمع للمقال
بطاقة الحقائق والأرقام
المعيارالتفاصيل
المصدر الأصليCursor Blog ↗
رئيس التحرير
حقيقة رئيسية #1يستكشف النموذج الشيفرة ويشغّل أدوات البحث
حقيقة رئيسية #2يثبّت الاعتماديات عبر مدير الحزم (package manager)
حقيقة رئيسية #3ينفّذ الإعداد (الضبط ومتغيرات البيئة)

قدّمت Cursor نظام Composer autoinstall، وهو نظام يستخدم الإصدارات الأقدم من نموذج Composer لتجهيز بيئات التعلّم المعزَّز تلقائيًا. وخلال تطوير Composer 2 استعان الفريق بالإصدار 1.5 لإدارة هذه العملية. وتستند الفكرة إلى تجربة Cursor مع وكلاء السحابة (cloud agents)، لكنها هنا تُطبَّق على التعلّم المعزَّز (RL) لتدريب النماذج نفسها.

لماذا تُفسد البيئات المعطوبة تدريب RL؟

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

عملية bootstrap على مرحلتين

يعمل Autoinstall وفق مخطط بسيط لكنه بارع.

المرحلة 1: وكيل الاستطلاع يحدد الهدف. يحصل الإصدار الأول من النموذج (Composer 1.5) على مستودع في حالة ثابتة. وعليه أن يقترح 10 أوامر ووصفًا عالي المستوى لمخرجاتها في حال كانت البيئة مُعدّة بشكل صحيح. يدرس النموذج ملفَّي README وMakefile، ويجرّب أوامر خاصة بكل لغة (`uv` و`npm install` و`clippy` و`pytest`)، ويستكشف بنية المشروع. والنتيجة قائمة بأوامر الإعداد والاختبارات وسكربتات التشغيل.

المرحلة 2: وكيل ثانٍ ينفّذ ذلك. يحصل الإصدار الثاني (Composer 2) على الحالة الأولية للمشروع مع ثلاثة أوامر مستهدفة اختيرت من الأوامر العشرة المقترحة. ومهمته استدعاء الأدوات (البحث والتجميع وأداة linter) واستكشاف الشيفرة وإعداد البيئة بحيث تعمل الأوامر الثلاثة كلها ويطابق مخرجها الوصف الذي وُضع في المرحلة 1. وإذا لم يتطابق، تتكرر العملية. وبعد خمس محاولات فاشلة تُستبعد البيئة.

  • يستكشف النموذج الشيفرة ويشغّل أدوات البحث
  • يثبّت الاعتماديات عبر مدير الحزم (package manager)
  • ينفّذ الإعداد (الضبط ومتغيرات البيئة)
  • يقارن المخرجات بالوصف المستهدف
  • يكرر المحاولة حتى النجاح أو بلوغ حدّ المحاولات

كيف يتغلب النموذج على المكوّنات الناقصة

يذهب Composer بعيدًا في سبيل الحصول على بيئة عاملة. فهو يحاكي (mock) الملفات المفقودة، وينشئ بدائل مؤقتة للصور، بل جداول وهمية في قاعدة البيانات. وإذا كان المشروع يحتاج إلى خدمات سحابية مثل S3 أو حاويات جانبية (sidecar)، ينشئ Composer ما يعادلها: ملفات إعداد MinIO بديلًا عن S3، وحاويات Docker للخدمات. أما العمليات طويلة الأمد فيولّد النظام لها سكربت بدء يشغّل هذه المكوّنات في مطلع جلسة RL.

«ستبذل النماذج اللغوية الحديثة جهدًا كبيرًا لإعداد البيئة بنجاح، ومحاكاة الاعتماديات، والتحقق من أن الإعداد يعمل»، بحسب فريق

Cursor.

ماذا يعني هذا للمستقبل

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

القصة

أسئلة وأجوبة حول الخبر

لماذا تُفسد البيئات المعطوبة تدريب RL؟

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

ما أبرز التفاصيل حول عملية bootstrap على مرحلتين؟

يعمل Autoinstall وفق مخطط بسيط لكنه بارع. المرحلة 1: وكيل الاستطلاع يحدد الهدف. يحصل الإصدار الأول من النموذج (Composer 1.5) على مستودع في حالة ثابتة. وعليه أن يقترح 10 أوامر ووصفًا عالي المستوى لمخرجاتها في حال كانت البيئة مُعدّة بشكل صحيح. يدرس النموذج ملفَّي README وMakefile، ويجرّب أوامر خاصة بكل لغة (`uv` و`npm install` و`clippy` و`pytest`)، ويستكشف بنية المشروع. والنتيجة قائمة بأوامر الإعداد والاختبارات وسكربتات التشغيل. المرحلة 2: وكيل ثانٍ ينفّذ ذلك. يحصل الإصدار الثاني (Composer 2) على الحالة الأولية للمشروع مع ثلاثة أوامر مستهدفة اختيرت من الأوامر العشرة المقترحة.

ما أبرز التفاصيل حول كيف يتغلب النموذج على المكوّنات الناقصة؟

يذهب Composer بعيدًا في سبيل الحصول على بيئة عاملة. فهو يحاكي (mock) الملفات المفقودة، وينشئ بدائل مؤقتة للصور، بل جداول وهمية في قاعدة البيانات. وإذا كان المشروع يحتاج إلى خدمات سحابية مثل S3 أو حاويات جانبية (sidecar)، ينشئ Composer ما يعادلها: ملفات إعداد MinIO بديلًا عن S3، وحاويات Docker للخدمات. أما العمليات طويلة الأمد فيولّد النظام لها سكربت بدء يشغّل هذه المكوّنات في مطلع جلسة RL. «ستبذل النماذج اللغوية الحديثة جهدًا كبيرًا لإعداد البيئة بنجاح، ومحاكاة الاعتماديات، والتحقق من أن الإعداد يعمل»، بحسب فريق Cursor.

ZK
جمال حميدون — مدير المنتجات في Alpina Digital ومدير منتج AlpinaGPT. يبني منتجات الذكاء الاصطناعي منذ 2019. بدأ Hamidun News كمشروع شخصي ثم أصبح مُجمِّعًا إنتاجيًا بأكثر من 6000 قارئ.
✦ Hands-On AI Engineering

Build & Ship Production AI Apps with Vibe Coding

Join Zhemal Khamidun's hands-on Vibe Coding Intensive at hamidun.com/vibecoding — master Claude Code, Cursor, and autonomous agentic workflows.

Explore Vibe Coding →Vibe Academy Platform
ما رأيك؟
جارٍ تحميل التعليقات…