نظرة داخل slime، إطار التعلّم المعزّز مفتوح المصدر الذي بنى GLM-5.2
صورة تجسّد تصميم slime للتعلّم المعزّز غير المتزامن، الذي يفصل التوليد عن التدريب لرفع الإنتاجية.
نظرة عامة
GLM-5.2، الذي أصدرته Z.ai (المعروفة سابقًا باسم Zhipu AI) في يونيو 2026، نموذج مفتوح الأوزان بسياق يبلغ مليون رمز وبرخصة MIT. لفت الانتباه لمنافسته النماذج التجارية المغلقة في مهام البرمجة ومهام الوكلاء طويلة المدى. لكنّ هذا الإصدار يأتي بشيء يكاد يضاهي أهمية أوزان النموذج نفسها: فقد تم فتح مصدر slime، البنية التحتية للتعلّم المعزّز التي شغّلت مرحلة التدريب اللاحق للنموذج، إلى جانبه.
تطلق معظم النماذج الرائدة أوزانها المدرَّبة مسبقًا، لكنها تُبقي خط أنابيب التعلّم المعزّز الذي يحوّل تلك الأوزان إلى وكيل مفيد فعلًا سرّيًا. فالبنية التحتية التي تربط تصميم المكافأة وتوليد الـ rollout وحلقة التدريب هي بالضبط الخبرة الخاصة التي تحدّد جودة النموذج. يفتح slime هذا المجال بأكمله. تذكر Z.ai أن GLM-5.2، بل أيضًا GLM-5.1 وGLM-5 وGLM-4.7 وGLM-4.6 وGLM-4.5، خضعت جميعها للتدريب اللاحق على الإطار نفسه. ومرور إطار واحد عبر عدة إصدارات من فئة الأحدث عالميًا يعني أن هذه بنية تحتية مُثبَتة في الإنتاج، لا شيفرة مختبرية.
تشغّل ThakiCloud منصة SaaS متعددة المستأجرين للذكاء الاصطناعي والتعلّم الآلي قائمة على K8s، فتخدم النماذج وتشغّل الوكلاء عبر بيئات عملاء متنوعة. لذا فإن السؤال “أي نموذج جيد” يهمّنا بقدر السؤال “أي بنية تحتية بنته وتشغّله”. وبوصفه مرجعًا عامًا للجانب الثاني، يستحق slime التمعّن. في هذه التدوينة نعرض بنية slime وفلسفته التصميمية، ونتأمّل دلالاته لجدولة GPU عبر Kueue ولمنظومة الخدمة SGLang/vLLM في منصتنا.
ما هو slime
slime إطار للتدريب اللاحق لنماذج اللغة الكبيرة من أجل توسيع التعلّم المعزّز، بناه فريق THUDM (من سلالة جامعة تسينغهوا / Z.ai). الفكرة الجوهرية بسيطة: Megatron-LM بارع في التدريب، وSGLang بارع في الاستدلال عالي الإنتاجية (الـ rollout)، فلنربط الاثنين في تدفّق بيانات واحد. يكرّر التدريب اللاحق للتعلّم المعزّز بلا نهاية حلقةً قوامها “يولّد النموذج إجابة (rollout)، ثم تُقيَّم الإجابة، ثم تُحدِّث تلك المكافأة النموذج”، ولذا فإن مدى سلاسة ربط محرّك التوليد بمحرّك التدريب هو ما يحدّد الإنتاجية الإجمالية.
يفكّك slime هذه الحلقة إلى ثلاثة مكوّنات.
flowchart TB
subgraph ROLLOUT["롤아웃 (SGLang + Router)"]
SGL["SGLang 추론 엔진<br/>응답 생성"]
RT["sgl-router<br/>OpenAI 호환 단일 엔드포인트"]
RW["보상 / verifier<br/>점수 계산"]
end
subgraph BUFFER["Data Buffer (브리지)"]
DB["프롬프트 초기화<br/>커스텀 데이터<br/>롤아웃 생성 전략 관리"]
end
subgraph TRAIN["학습 (Megatron-LM)"]
MG["Megatron 학습 루프<br/>가중치 업데이트"]
end
RT --> SGL
SGL --> RW
RW -->|"생성 데이터 + 보상 기록"| DB
DB -->|"학습 배치 공급"| MG
MG -.->|"파라미터 동기화"| SGL
- التدريب (Megatron-LM): يتولّى عملية التدريب الرئيسية. يقرأ البيانات من Data Buffer لتحديث النموذج، ويزامن المعاملات مع وحدة الـ rollout بعد اكتمال التدريب.
- الـ Rollout (SGLang + Router): يولّد بيانات جديدة، تشمل المكافآت ومخرجات الـ verifier، ويكتبها إلى Data Buffer. وهنا يوفّر sgl-router واجهة برمجية متوافقة مع OpenAI لتتفاعل بيئات الوكلاء المعقّدة مع النموذج عبر نقطة وصول HTTP واحدة.
- Data Buffer: الجسر بين العالمين. يدير تهيئة الموجِّهات (prompts) والبيانات المخصّصة واستراتيجية توليد الـ rollout.
تتولّى Ray إدارة الموارد. ونتيجةً لذلك، يمكن التبديل بعَلَم واحد بين وضع تتشارك فيه عمليتا التدريب والـ rollout وحدات GPU نفسها، ووضع يفصلهما على وحدات GPU منفصلة.
وضعا التشغيل: colocated وdisaggregated
أكثر قرارات slime التصميمية عمليةً هو أن الشيفرة نفسها تدعم وضعَي نشر اثنين.
الوضع المتشارك (colocated) / المتزامن يضع التدريب والـ rollout على مجمّع GPU نفسه. يُفعَّل بعَلَم واحد --colocate. وهو مناسب لاستخلاص أقصى استفادة من بيئات GPU المحدودة، حيث يتقاسم التوليد والتدريب الموارد نفسها زمنيًا.
الوضع المفصول (disaggregated) / غير المتزامن يفصل وحدات GPU الخاصة بالتدريب عن تلك الخاصة بالـ rollout. فيمكن للتوليد أن يستمر دون انتظار التدريب، مما يرفع الإنتاجية. و”التعلّم المعزّز غير المتزامن للوكلاء” الذي أبرزه GLM-5.2 يعمل فوق هذا الوضع تحديدًا. ففصل التوليد عن التدريب يقلّص بشدّة زمن خمول GPU في الأحمال التي تكون فيها كل حلقة طويلة وغير منتظمة، مثل التفاعلات متعددة الأدوار ومتعددة الأدوات.
هذا الخيار مهمّ للمشغّلين. فبالإطار نفسه يمكنك تشغيل تجارب صغيرة بتكلفة زهيدة في الوضع المتشارك، ودفع الإنتاجية في الوضع المفصول للتدريب الإنتاجي واسع النطاق، بما يتيح التوسّع التدريجي.
التصميم من أجل التعلّم المعزّز للوكلاء
ثمّة سبب لاستخدام slime في تدريب نماذج الوكلاء مثل GLM-5.x: فهو يتضمّن ميزات موجَّهة مباشرةً لأحمال الوكلاء متعددة الأدوار.
- PD Disaggregation: يفصل مرحلتَي prefill وdecode لأحمال الوكلاء متعددة الأدوار حيث تختلف احتياجات الموارد بين المرحلتين.
- انتماء الجلسة في الـ Router: يوفّر سياسة توجيه تُبقي الوكيل متعدد الأدوار على الجلسة نفسها، فتستمرّ أدوار الوكيل الواحد المتعدّدة في حالة متّسقة.
- Delta Weight Sync: في بيئة مفصولة بين التدريب والاستدلال، يُزامَن فرق الأوزان فقط، مما يخفض كلفة الاتصال.
- نقطة وصول واحدة متوافقة مع OpenAI: بفضل sgl-router، تتفاعل بيئات الوكلاء المعقّدة مع النموذج عبر طلبات HTTP بسيطة. فلا حاجة لحشر شيفرة البيئة داخل إطار التعلّم المعزّز.
البند الأخير عمليّ على نحو خاص. فإذا جرّدت بيئة المهام طويلة المدى مثل تحرير الشيفرة واستخدام الأدوات وحلّ المشكلات متعدد الخطوات إلى استدعاءات لواجهة OpenAI، أمكنك ربط بيئات الوكلاء القائمة بحلقة تدريب التعلّم المعزّز كما هي تقريبًا. وتضيف Z.ai آلية “مكافحة الالتفاف” (anti-hacking) فوق ذلك لكبح اختراق المكافأة، حيث يستغلّ النموذج المكافأة بطرق التفافية في المهام طويلة المدى.
نظرة عامة على التثبيت والاستخدام
slime متاح على GitHub (THUDM/slime)، ولكونه أصيلًا لـ SGLang فهو يفترض منظومة استدلال SGLang ومنظومة تدريب Megatron-LM. كما نُشر دعم اليوم الأول (Day-0) لوحدات AMD Instinct GPU عبر مدوّنة ROCm، مما يؤكد عمله على مسرّعات خارج NVIDIA.
لكن بصدق، يتطلّب إعادة إنتاج حلقة التدريب اللاحق للتعلّم المعزّز في slime بشكل ذي معنى عنقود GPU متعدّد (عادةً ثمانية مسرّعات من فئة مراكز البيانات أو أكثر) وبيئة تُهيَّأ فيها Megatron وSGLang وRay معًا. لم تُشغّل هذه التدوينة تدريبًا كاملًا للتعلّم المعزّز في صندوق رمل أحادي العقدة لالتقاط الأرقام. لذا لا نقدّم أي أرقام قياس مثل إنتاجية التدريب أو سرعة التقارب، وحالات التحقق الإنتاجية أدناه مبنيّة على مصادر أوّلية منشورة. وعدم اختلاق أرقام أداء اعتباطية مبدأ من مبادئ مدوّنتنا.
من الناحية البنيوية، الأسطح التي يلمسها المشغّل واضحة. فأنت تحدّد أسلوب النشر بعَلَم وضعٍ مثل --colocate، وتركّب استراتيجية الـ rollout الخاصة بمجالك عبر واجهة توليد البيانات المخصّصة في Data Buffer، وتربط بيئات الوكلاء بنقطة وصول sgl-router. ولهذا يؤكّد الإطار على المرونة: فلأن واجهة الـ rollout قابلة للتخصيص بالكامل، يمكن تهيئة كل شيء على الهيكل نفسه، من خوارزميات التعلّم المعزّز العامة إلى تدريب الوكلاء المتخصّص بمجال بعينه.
التحقق عبر GLM-5.x
يُعدّ slime من أكثر أطر التدريب اللاحق المفتوحة للتعلّم المعزّز اختبارًا في الميدان. فقد مرّت عدة إصدارات من فئة الأحدث عالميًا (GLM-5.2 وGLM-5.1 وGLM-5 وGLM-4.7 وGLM-4.6 وGLM-4.5) عبر حلقة تدريبه الكاملة. وذكر GLM-5.2 أنه دُرِّب لاحقًا بخوارزمية جديدة للتعلّم المعزّز غير المتزامن للوكلاء تتعلّم من التفاعلات طويلة المدى متعددة الأدوات، فوق بنية تحتية تفصل التوليد عن التدريب. وقد ذُكر أن التدريب اللاحق الكامل لـ GLM-5.2 اكتمل في نحو يومين، لكننا نُبقي رقم المدّة هذا بوصفه [تقديريًا] لأننا لم نتمكّن من التحقق المتقاطع منه عبر وثائق رسمية أوّلية.
الجوهر ليس الرقم بل قابلية إعادة الإنتاج. فبفتح أوزان النموذج (MIT) وإطار التدريب معًا، تستطيع مؤسسة تملك حوسبة كافية أن تعيد تتبّع وصفة التدريب اللاحق لـ GLM-5.2 على بيانات مجالها. وهذه رافعة تنفرد بها المنظومة المفتوحة، يستحيل بلوغها بالنماذج المغلقة.
دلالات لمنصة ThakiCloud القائمة على K8s للذكاء الاصطناعي والتعلّم الآلي
من منظور منصتنا، يلامس slime عدّة خيوط.
أولًا، اتساق جدولة الموارد. فالطريقة التي يبدّل بها slime بين colocated وdisaggregated عبر Ray تتناغم جيدًا مع كيفية وضعنا أحمال GPU في طوابير وبوّابات عبر Kueue. فالتدريب على التعلّم المعزّز يتطلّب في آنٍ واحد حملين مختلفي الطبيعة: الـ rollout (حمل استدلال) والتدريب (حمل انتشار عكسي). وفي عنقود متعدد المستأجرين، تكون كيفية وضع هذين الحملين سؤالًا مباشرًا عن استغلال GPU والكلفة. ويفصل الوضع المفصول الـ rollout عن التدريب إلى مهامّ متمايزة، مانحًا Kueue مجالًا لجدولة كلٍّ منهما باستقلال.
ثانيًا، تشارك منظومة الخدمة. فكون محرّك الـ rollout في slime هو SGLang، وكوننا نتعامل مع عائلة SGLang/vLLM في خدمة الاستدلال، يعني إمكان إعادة استخدام الخبرة التشغيلية. فتحسينات الاستدلال السريع للـ rollout (التجميع المستمر وإدارة ذاكرة KV المؤقتة) تتداخل جوهريًا مع تحسين الخدمة الإنتاجية. وعندما تتشارك بنية التدريب وبنية الخدمة محرّك الاستدلال نفسه، ينتقل الضبط المكتسب في جانب إلى الآخر.
ثالثًا، اقتصاديات الضبط الدقيق لوكلاء المجال. فلمنصة مثل منصتنا تشغّل الوكلاء عبر بيئات عملاء مختلفة، ينفتح مسار للتدريب اللاحق لنموذج مفتوح من فئة GLM-5.2 على بيانات مجال العميل لبناء وكيل متخصّص. فإذا أتاحت نقطة وصول sgl-router المتوافقة مع OpenAI لبيئة أدوات العميل القائمة أن تتّصل مباشرةً بحلقة التعلّم المعزّز، انخفضت كلفة التكيّف مع المجال بشدّة. ويتّصل مزيج الأوزان المفتوحة مع إطار تدريب مفتوح اتصالًا مباشرًا بنقاط قوّتنا: انخفاض كلفة الخدمة والنشر داخل المنشآت. ويغدو سيناريو الاستضافة الذاتية، حيث لا تغادر البيانات العنقود ويكتمل حتى التدريب اللاحق داخليًا، منتجًا واقعيًا.
بالطبع، هذا أقرب إلى خارطة طريق منه إلى واقع مكتمل. فهو لا يعني أننا نعيد حاليًا تدريب GLM-5.2 بـ slime ونخدمه. لكن كون مكوّنات منظومتنا (K8s وKueue وSGLang) تكاد تطابق المكوّنات التي يفترضها slime يُظهر أن هذا الاتجاه ليس توفيقًا متكلَّفًا.
القيود والاعتراضات
slime ليس حلًّا سحريًا. لنذكر بضعة قيود واقعية بوضوح.
أكبر عائق للدخول هو الحوسبة والتعقيد التشغيلي. فإقامة Megatron + SGLang + Ray في آنٍ واحد وتنسيق التدريب/الـ rollout عبر وحدات GPU متعددة ليس أمرًا هيّنًا البتّة. وليست هذه أداةً يستطيع GPU واحد أو فريق صغير تشغيلها باستهتار، والتدريب اللاحق للتعلّم المعزّز نفسه يتطلّب استثمارًا في البنية التحتية يضاهي التدريب المسبق. وثمّة فجوة كبيرة بين “الإطار مفتوح” و”نستطيع تشغيل التدريب اللاحق للتعلّم المعزّز”.
ثانيًا، صعوبة التدريب اللاحق للتعلّم المعزّز. فتصميم المكافأة، ومنع اختراق المكافأة، واستقرار التدريب، مصاعب جوهرية لا يحلّها الإطار نيابةً عنك. يوفّر slime البنية التحتية فقط؛ أما دالة المكافأة الجيدة ووصفة التدريب المستقرّة فتبقيان مسؤولية المستخدم. وكون Z.ai أبرزت آلية مكافحة الالتفاف على نحو منفصل هو بذاته دليل على مدى صعوبة هذا المجال.
ثالثًا، حدود نطاق تحقّقنا. فقد حلّلت هذه التدوينة البنية اعتمادًا على وثائق slime العامة وما نُشر عنها؛ ولم نُعِد مباشرةً إنتاج حلقة التدريب الكاملة للتعلّم المعزّز لقياس الإنتاجية. لذا فإن مزاعم مثل “تدريب من فئة GLM-5.2 في أيام معدودة” ليست حقائق أكّدناها باستقلال. وعلى من يدرس التبنّي أن يجرّب أولًا بنموذج صغير ومهمة صغيرة في الوضع المتشارك لقياس الكلفة الفعلية في بيئته الخاصة.
ومع ذلك، فإن حدثًا تُفتح فيه أوزان النموذج وإطار التدريب معًا يمثّل شفافية نادرة في منظومة نماذج اللغة المفتوحة. وبالنسبة لمنصة مثل ThakiCloud تشغّل البنية التحتية مباشرةً، فقد اتّسعت مجموعة الخيارات التي تمنح التحكّم حتى مرحلة التدريب اللاحق، بما يتجاوز مجرّد استخدام نموذج صنعه آخرون.