عن المشروع
Surogate هي مجموعة أدوات بترخيص Apache 2.0 تجمع تدريب LLM ونشره في مشروع واحد، بمحركات أصلية بلغة C++/CUDA مصممة لوحدات معالجة الرسومات NVIDIA. تستهدف Linux x86_64 مع Python 3.12 وCUDA 13 (برنامج التشغيل 580+)، وتُوزَّع كملف wheel وسكربت تثبيت وصورة حاوية.
محرك التدريب
يغطي جانب التدريب التدريب المسبق والضبط الدقيق الكامل، ومحولات LoRA وQLoRA، ووصفات الدقة بما في ذلك BF16 وFP8 الهجين وBlackwell NVFP4. يدعم التعلم المعزز GRPO مع بيئات المكافآت، وتدريب التفضيل DPO، والتقطير المعرفي من توزيعات top-K للمعلم. يستخدم التنفيذ متعدد وحدات GPU ومتعدد العقد توازي البيانات الخيطي، وتجزئة ZeRO، وتداخل الاتصال، وRay. يمكن لتوازي الأنابيب بث الأوزان المجمدة لـ LoRA عبر وحدات GPU PCIe دون NVLink. يتضمن تدريب MoE توازي الخبراء وموازنة الحمل. تشمل ضوابط الذاكرة التفريغ إلى CPU للأوزان والتدرجات وحالة المحسّن والتنشيطات والتكميمات، بالإضافة إلى إعادة الحساب وتنفيذ MLP المُجزَّأ. تشمل المحسّنات AdamW 8-bit وNorMuon، مع تسجيل Weights & Biases ونقاط التفتيش والاستئناف. تُعرَّف النماذج عبر Python DSL مع تفاضل تلقائي مسبق.
محرك النشر
جانب النشر هو خادم HTTP أصلي بلغة C++/CUDA يعرض نقاط نهاية Chat Completions وCompletions وResponses المتوافقة مع OpenAI، بالإضافة إلى Messages المتوافقة مع Anthropic. يدعم البث، ومحتوى الاستدلال المنفصل، وضوابط التفكير، ومحللات استدعاء الدوال الخاصة بكل نموذج. تشمل ميزات التزامن التجميع المستمر، ومعالجة المطالبات المُجزَّأة، ورسوم CUDA البيانية، وحتى 128 تسلسلاً نشطاً لكل نموذج، والتخزين المؤقت للبادئات، وفك التشفير التخميني عبر MTP أو DFlash. يحمّل GGUF الأصلي (K-quants وQ8_0 والصيغ القديمة وIQ)، ونقاط تفتيش Hugging Face safetensors، وتصديرات BF16/FP8/NVFP4. ذاكرة KV المؤقتة مرنة ويمكن مشاركتها عبر النماذج. يمكن تحميل محولات LoRA وقت التشغيل واختيارها لكل طلب. يمكن لعدة نماذج مُسمّاة مشاركة وحدة GPU واحدة مع أولويات وسلوك النوم/الاستيقاظ. يمكن للنماذج الكبيرة أن تمتد عبر عدة وحدات GPU أو تفريغ الأوزان إلى CPU، مع تخزين مؤقت لخبراء GPU لعائلات MoE. يشمل دعم الرؤية والتضمين الصور/الفيديو لنماذج الرؤية المدعومة وEmbeddingGemma على GPU أو CPU AVX-512. تشمل ميزات التشغيل مصادقة مفتاح API وفحوصات الصحة ومقاييس Prometheus وسجلات الطلبات وإحصاءات التخزين المؤقت.
تغطية النماذج
تغطي أمثلة التدريب Qwen3 dense وMoE، وQwen3-VL، وQwen3.5/3.6 dense وMoE، وLlama 3.1/3.2، وMiniCPM5، وSpark-X2.5، وGemma 4، وNemotron 3/Cascade 2، وGPT-OSS، وLaguna، وLFM2/LFM2.5. يغطي النشر Qwen3، وQwen3.5/3.6/3.8، وQwen3.8 Flash-Next، وGLM-5.3-Flash، وLlama، وGemma 3/4، وLFM2/LFM2.5، وMiniCPM5، وSpark-X2.5، وEmbeddingGemma 300M. يلاحظ README أن تعريفات التدريب لـ DeepSeek-V4 وFlash-Next وGLM-5.3-Flash لا تزال تحتوي على مكونات مؤجلة.
سير العمل
التدفق النموذجي هو: التثبيت، ونشر نموذج باستخدام `surogate serve`، وتدريب محول بإعداد YAML عبر `surogate sft`، ودمج المحول في نموذجه الأساسي، وتكميمه اختيارياً إلى GGUF، ثم نشر النتيجة. يمكن لوضع GRPO أحادي GPU أن يشارك موقع النشر والتدريب بأوزان مشتركة لعائلات BF16 LoRA المدعومة.
ملاحظات الأجهزة
تستهدف إصدارات التدريب SM89+ (Ada وHopper وBlackwell المدعوم). يتطلب FP8 الإصدار SM89+؛ ويتطلب NVFP4 الأصلي أجهزة Blackwell المدعومة. تستهدف إصدارات النشر الافتراضية SM120a (سلسلة RTX 50 وRTX PRO Blackwell)، مع منفذ SM89/Ada الذي يُترجم لكن التحقق من وقت التشغيل لا يزال معلقاً. يستخدم التدريب الموزع NCCL؛ ويتطلب التفريغ إلى CPU ذاكرة نظام كافية.
يعرض README جداول معايير تقارن إنتاجية التدريب والنشر مقابل Unsloth وvLLM وllama.cpp على أجهزة وأحمال عمل محددة؛ هذه قياسات المشروع الخاصة وينبغي التعامل معها على هذا الأساس.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.