النقاط الرئيسية
- مجاني ومفتوح المصدر بموجب رخصة Apache 2.0، نشأ من أبحاث مرتبطة بـجامعة كاليفورنيا في بيركلي وستانفورد وLMSYS
- يعيد RadixAttention استخدام إدخالات ذاكرة KV تلقائيًا عبر الطلبات التي تتشارك بادئة، باستخدام شجرة راديكس بدلاً من عزل الذاكرة المؤقتة لكل طلب
- تُفرض المخرجات المُهيكلة — مخططات JSON وقيود التعبيرات النمطية — أثناء فك الترميز عبر آلة حالات منتهية مضغوطة، وليس كمرشّح معالجة لاحقة
- يشمل لغة DSL أمامية مضمّنة في Python (
sgl.gen،sgl.select،sgl.fork) لكتابة برامج نماذج لغوية متعددة الاستدعاءات - خادم واجهة برمجة تطبيقات مدمج متوافق مع OpenAI، يُشغَّل عبر
python -m sglang.launch_server - يدعم التجميع المستمر (continuous batching)، والتوازي الموتري (tensor parallelism)، وصيغ تكميم منها FP8 وINT4 وAWQ وGPTQ
- العتاد الأساسي والأفضل دعمًا هو وحدات معالجة الرسوميات NVIDIA؛ يوثّق المشروع أيضًا محركات خلفية من AMD وIntel وغيرها بتغطية عملية أضيق
- ليس تطبيق سطح مكتب أحادي المستخدم — لا يوجد مثبّت رسومي، وليس مبنيًا حول عتاد المعالج المركزي فقط أو Apple Silicon كما هو حال llama.cpp وOllama
📍 في جملة واحدة
SGLang هو إطار عمل مجاني، مرخّص بموجب Apache 2.0، لخدمة النماذج اللغوية ونماذج الرؤية واللغة، نشأ من أبحاث مرتبطة بجامعة كاليفورنيا في بيركلي وستانفورد وLMSYS، يستخدم RadixAttention لإعادة استخدام حالة ذاكرة KV تلقائيًا عبر الطلبات التي تتشارك بادئة مشتركة، ويفرض المخرجات المُهيكلة داخل حلقة فك الترميز.
💬 بعبارات بسيطة
بدلاً من تطبيق دردشة لسطح المكتب، SGLang هو برنامج خادم مصمم لأمرين في آن واحد: خدمة عدد كبير من الطلبات المتزامنة بكفاءة — خاصة تلك التي تكرر موجّه نظام أو سجل محادثة — وضمان أن مخرجات النموذج تطابق فعليًا مخطط JSON أو النمط المحدد.
📌ملاحظة: يستند هذا المقال إلى مستودع GitHub الرسمي لـSGLang ووثائقه العامة، وليس إلى اختبارات أداء مستقلة. تستشهد مواد SGLang نفسها بمضاعفات تسريع محددة لـRadixAttention وفك ترميز JSON في اختبارات أداء إصدارات معينة؛ لا يكرر هذا المقال هذه الأرقام كقيم عامة، لأنها تعتمد على حِمل العمل والعتاد والإصدار المُختبر، ويصدر كلٌّ من SGLang وvLLM اختبارات أداء تخدم مصالحهما.
ما هو SGLang؟
SGLang هو إطار عمل مجاني، مرخّص بموجب Apache 2.0، لخدمة النماذج اللغوية الكبيرة ونماذج الرؤية واللغة. نشأ من أبحاث مرتبطة بـجامعة كاليفورنيا في بيركلي وستانفورد ومنظمة LMSYS — المجتمع نفسه الذي يدير Chatbot Arena — ويُطوَّر اليوم تحت منظمة sgl-project على GitHub. على عكس الأدوات المبنية أساسًا لمستخدم واحد يتحدث محليًا مع نموذج، يستهدف SGLang مشكلتين متداخلتين: خدمة عدد كبير من الطلبات المتزامنة بكفاءة، وضمان أن مخرجات النموذج تلتزم بصيغة مُهيكلة مثل JSON، وهو أمر مهم لاستدعاء الدوال، وخطوط معالجة العوامل الذكية، ومخرجات أخرى تستهلكها الآلات.
- نشأ من أبحاث مرتبطة بـجامعة كاليفورنيا في بيركلي وستانفورد وLMSYS؛ يُطوَّر اليوم تحت منظمة
sgl-projectمفتوحة المصدر - مرخّص بموجب Apache 2.0: الشيفرة المصدرية متاحة للجمهور للاستخدام والتعديل وإعادة التوزيع وفق شروط الرخصة
- يجمع بين لغة DSL أمامية مضمّنة في Python لكتابة برامج النماذج اللغوية وبيئة تشغيل خلفية مصممة بالتوازي معها (SGLang Runtime، وغالبًا ما تُختصر SRT)
- يحمّل نقاط تفتيش نماذج متوافقة مع Hugging Face Transformers، ويغطي عائلات نماذج تشمل Llama وQwen وMistral وDeepSeek دون خطوة تحويل منفصلة لمعظم النماذج
- يوثّق عمليات نشر إنتاجية تولّد كميات كبيرة من الرموز يوميًا، ويذكر في مواده الخاصة عدة شركات ومؤسسات بحثية باعتبارها من مستخدميه
ما هو RadixAttention، ولماذا يهم؟
RadixAttention هي تقنية إدارة الذاكرة التي اشتُهر بها SGLang. تُصدر العديد من أحمال عمل النماذج اللغوية الحقيقية استدعاءات توليد متعددة تتشارك بادئة مشتركة — نفس موجّه النظام في كل طلب، ونفس الأمثلة القليلة اللقطات، أو أدوار سابقة في محادثة جارية. تؤدي إعادة حساب ذاكرة المفتاح والقيمة (KV) الخاصة بالانتباه لتلك البادئة المشتركة في كل استدعاء إلى إهدار حوسبة وذاكرة وحدة معالجة الرسوميات. بدلاً من ذلك، يخزّن RadixAttention إدخالات ذاكرة KV لكل من الطلبات المكتملة والجارية في شجرة راديكس — بنية شجرية مفهرسة بتسلسلات الرموز — بحيث يمكن لطلب جديد إيجاد وإعادة استخدام الذاكرة المؤقتة لأي بادئة يتشاركها مع طلبات سابقة تلقائيًا، دون أن يضطر المطور لتتبّع أو إدارة إعادة الاستخدام هذه يدويًا.
- يطابق ويعيد استخدام إدخالات ذاكرة KV تلقائيًا عبر الطلبات التي تتشارك بادئة تسلسل رموز، باستخدام بنية بيانات شجرة راديكس
- يغطي البادئات الناتجة عن موجّهات نظام متكررة، وأمثلة قليلة اللقطات مشتركة، وسجل محادثة متعدد الأدوار — وليس فقط الطلب الفردي نفسه المكرر حرفيًا
- يطبّق سياسة إخلاء الأقل استخدامًا مؤخرًا (LRU) على شجرة الراديكس بحيث يمكن استرجاع ذاكرة التخزين المؤقت وإعادة استخدامها مع نمو الشجرة
- يعمل جنبًا إلى جنب مع التجميع المستمر وتخصيص ذاكرة KV المُقسّمة على شكل صفحات وكتل، ما يتيح لـSGLang إضافة الطلبات وإزالتها من دفعة جارية أثناء وصولها واكتمالها
ماذا تفعل لغة الواجهة الأمامية والمخرجات المُهيكلة فعليًا؟
إلى جانب الخدمة الأساسية، يوفر SGLang قدرتين مرتبطتين ولكن منفصلتين: لغة واجهة أمامية مضمّنة في Python لكتابة برامج النماذج اللغوية، وفرض صيغ المخرجات المُهيكلة على مستوى المحرك.
ما العتاد الذي يحتاجه SGLang؟
الهدف الأساسي والأفضل دعمًا لـSGLang هو وحدات معالجة الرسوميات NVIDIA، وتعمل غالبية عمليات النشر الإنتاجية الموصوفة في مواد المشروع الخاصة على عتاد NVIDIA. يوثّق المشروع أيضًا محركات خلفية إضافية، رغم أن التغطية والاعتماد الفعلي ليسا متساويين في جميعها.
وحدات معالجة الرسوميات NVIDIA (CUDA)
- التفاصيل:
- الهدف الأساسي والأكثر نضجًا، ويمتد من وحدات معالجة رسوميات مراكز البيانات إلى بطاقات المستهلك/محطات العمل الحديثة. الخدمة الموازية الموترية عبر عدة وحدات معالجة رسوميات NVIDIA موثقة جيدًا.
وحدات معالجة الرسوميات AMD (ROCm)
- التفاصيل:
- موثّق كمحرك خلفي مدعوم لمسرّعات AMD Instinct عبر ROCm، مع اعتماد فعلي وتغطية مجتمعية أضيق من مسار CUDA.
معالجات Intel Xeon ومسرّعات Gaudi
- التفاصيل:
- محركات خلفية إضافية يوثقها المشروع لعتاد Intel؛ يُنظر إليها كمسار نشر أصغر وأقل اختبارًا مقارنة بوحدات معالجة الرسوميات NVIDIA.
وحدات TPU من Google ومعالجات Ascend NPU
- التفاصيل:
- محركات خلفية موثقة موجهة للفرق التي تعمل بالفعل على بنية تحتية Google Cloud TPU أو Huawei Ascend.
Apple Silicon (Mac)
- التفاصيل:
- ليس مسارًا رسميًا من الدرجة الأولى مدعومًا بشكل رسمي. SGLang مبني حول عتاد مراكز البيانات ومحطات العمل المعتمد على وحدات معالجة الرسوميات، وليس للاستخدام المحلي على جهاز Mac واحد.
إذا كان هدفك تشغيل نموذج على جهاز Mac واحد أو جهاز يعتمد على المعالج المركزي فقط، فإن SGLang ليس الأداة المصممة لذلك — llama.cpp والأدوات المبنية عليه، مثل Ollama وLM Studio، تستهدف مباشرة عتاد المعالج المركزي وApple Silicon وهي أنسب لهذا السيناريو.
ما صيغ التكميم التي يدعمها SGLang؟
يدعم SGLang خدمة النماذج بدقة عددية مخفّضة لتقليل استخدام الذاكرة، وفي كثير من الحالات زيادة الإنتاجية، ويوثّق عدة صيغ تكميم راسخة.
FP8
- التفاصيل:
- دقة فاصلة عائمة بـ8 بتات، مدعومة على أجيال وحدات معالجة الرسوميات NVIDIA التي تدعم FP8 بالعتاد، مقايضةً بعض الدقة مقابل استخدام أقل للذاكرة وتنفيذ أسرع من FP16/BF16.
FP4
- التفاصيل:
- صيغة فاصلة عائمة أحدث وأقل دقة، يوثقها المشروع لأحدث جيل من عتاد NVIDIA الذي يدعمها.
AWQ
- التفاصيل:
- Activation-aware Weight Quantization، طريقة تكميم أوزان بـ4 بتات واسعة الاستخدام، مع نماذج مُكمَّمة مسبقًا ينشرها المجتمع على Hugging Face.
GPTQ
- التفاصيل:
- طريقة تكميم لاحقة للتدريب توزَّع عادة كنقاط تفتيش مُكمَّمة مسبقًا، وتُشغَّل أيضًا عادة بدقة 4 بتات.
INT4
- التفاصيل:
- مسار تكميم عددي صحيح أقل دقة، يوثقه المشروع إلى جانب AWQ وGPTQ لمزيد من تقليل الذاكرة.
لا يتضمن هذا المقال أرقامًا مقاسة بشكل مستقل لفقدان الجودة لكل صيغة — فهذه تتفاوت حسب بنية النموذج والمهمة، لذا فإن مقارنة مخرجات بضع صيغ على موجّهاتك الخاصة هي الطريقة الأكثر موثوقية للحكم على المقايضة المناسبة لحِمل عملك.
ماذا يوفر خادم SGLang المتوافق مع OpenAI؟
يؤدي تشغيل python -m sglang.launch_server إلى تشغيل خادم HTTP ينفّذ بروتوكول واجهة برمجة تطبيقات OpenAI، بحيث يمكن للتطبيقات وحِزم SDK المبنية بالفعل على واجهة برمجة تطبيقات OpenAI غالبًا الإشارة إلى نسخة SGLang مستضافة ذاتيًا بمجرد تغيير عنوان URL الأساسي واسم النموذج.
- نقاط نهاية إكمال الدردشة والإكمال المتوافقة مع OpenAI، قابلة للاستخدام كبديل مباشر لشيفرة العميل المعتمدة على واجهة برمجة تطبيقات OpenAI
- مضيف ومنفذ قابلان للتهيئة (غالبًا
http://localhost:30000في أمثلة المشروع الخاصة) - معلمات مخرجات مُهيكلة على مستوى الطلب لتوليد مقيّد بمخطط JSON أو تعبير نمطي، متاحة عبر واجهة البرمجة
- أعلام محرك لحجم التوازي الموتري، وتخصيص الذاكرة، وصيغة التكميم، تُحدَّد عند بدء تشغيل الخادم
- دعم لخدمة عدة محولات LoRA فوق نموذج أساسي واحد محمَّل
كيف تثبّت وتشغّل SGLang؟
يُوزَّع SGLang كحزمة Python، ويُثبَّت عادة في بيئة Python تحتوي على وحدة معالجة رسوميات NVIDIA وتعريفات CUDA متوافقة متاحة.
- 1تأكد من وجود وحدة معالجة رسوميات NVIDIA مدعومة مع تعريفات CUDA حديثة مثبَّتة (أو راجع وثائق المشروع للحصول على تعليمات تثبيت خاصة بـAMD/Intel/TPU إذا كنت تستهدف أحد هذه المحركات الخلفية).
- 2أنشئ بيئة Python افتراضية، ثم ثبّت SGLang، على سبيل المثال: `pip install "sglang[all]"`.
- 3شغّل الخادم المتوافق مع OpenAI بنموذج من Hugging Face، على سبيل المثال:
python -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct --host 127.0.0.1 --port 30000. - 4أرسل طلب دردشة أساسيًا بأي عميل متوافق مع واجهة برمجة تطبيقات OpenAI، مثل حزمة Python
openaiمع توجيهها إلىbase_url="http://127.0.0.1:30000/v1". - 5للحصول على استجابة مقيّدة بـJSON، مرّر مخطط JSON في معلمات المخرجات المُهيكلة للطلب بحيث يفرض الخادم المخطط أثناء فك الترميز بدلاً من مجرد طلب JSON في الموجّه.
- 6للخدمة متعددة وحدات معالجة الرسوميات، أضف علم توازٍ موتري، مثل
--tp-size 2لتقسيم النموذج على وحدتي معالجة رسوميات. - 7وجّه شيفرة عميل واجهة برمجة تطبيقات OpenAI الحالية إلى خادمك المستضاف ذاتيًا بتغيير عنوان URL الأساسي واسم النموذج فقط.
هل أحتاج إلى وحدة معالجة رسوميات لتشغيل SGLang؟
نعم، لأي استخدام يتجاوز الاختبار — الهدف الأساسي والأفضل دعمًا لـSGLang هو وحدات معالجة الرسوميات NVIDIA. يوثّق المشروع محركات خلفية أخرى للمسرّعات، لكنها ليست مسار النشر الأساسي.
هل يمكنني الحصول على مخرجات JSON مضمونة من SGLang؟
نعم — مرّر مخطط JSON في معلمات المخرجات المُهيكلة لطلبك، ويفرضه SGLang أثناء فك الترميز عبر إخفاء الرموز التي قد تنتهك المخطط، بدلاً من مجرد الطلب من النموذج إنتاج JSON في الموجّه.
كيف يقارن SGLang بـvLLM؟
SGLang وvLLM هما محركا خدمة النماذج اللغوية مفتوحا المصدر المعتمدان على وحدات معالجة الرسوميات الأكثر نقاشًا، وكلاهما مرخّص بموجب Apache 2.0 ويستهدف الخدمة الإنتاجية متعددة المستخدمين بدلاً من دردشة سطح المكتب أحادية المستخدم. ينشر كلا المشروعين اختبارات أداء تُظهرهما بصورة أفضل مقارنة بالآخر؛ لا يفصل هذا المقال في هذه المقارنة، بل يصف التصميم والادعاءات الموثقة لكل مشروع.
تقنية الذاكرة المؤقتة الرئيسية
- SGLang:
- RadixAttention — إعادة استخدام تلقائية لذاكرة KV قائمة على شجرة راديكس عبر الطلبات التي تتشارك أي بادئة.
- vLLM:
- PagedAttention — كتل ذاكرة KV بحجم صفحة، غير متجاورة، تقلل من إهدار الذاكرة الناتج عن تخصيصات محجوزة بإفراط.
المخرجات المُهيكلة
- SGLang:
- فرض مخطط JSON والتعبيرات النمطية على مستوى المحرك ميزة أساسية موثقة بشكل كبير، مبنية على آلة حالات منتهية مضغوطة.
- vLLM:
- يدعم أيضًا فك الترميز المُهيكل/الموجَّه عبر محركات خلفية للقواعد النحوية المتكاملة، موثقة كجزء من مجموعة ميزاته الأوسع وليست الميزة الرئيسية.
نموذج البرمجة
- SGLang:
- يشمل، إلى جانب خادم واجهة البرمجة، لغة DSL أمامية مضمّنة في Python (
sgl.gen،sgl.select،sgl.fork) لبرامج النماذج اللغوية متعددة الاستدعاءات. - vLLM:
- يُستخدم بشكل أساسي كخادم واجهة برمجة تطبيقات أو استدعاء مكتبة Python؛ لا يشمل لغة DSL مماثلة لكتابة البرامج.
المنشأ
- SGLang:
- أبحاث مرتبطة بجامعة كاليفورنيا في بيركلي وستانفورد ومنظمة LMSYS التي تدير Chatbot Arena.
- vLLM:
- نشأ في Sky Computing Lab التابع لـجامعة كاليفورنيا في بيركلي.
ادعاءات الإنتاجية
- SGLang:
- ينشر اختبارات أداء الإصدارات مستشهدًا بمضاعفات لـRadixAttention وفك ترميز JSON على أحمال عمل محددة.
- vLLM:
- ينشر اختبارات أداء إصداراته الخاصة؛ يصف الأساس المنطقي لكفاءة الذاكرة في PagedAttention بدلاً من رقم سرعة عام وحيد.
لا ينبغي اعتبار أي اختبار أداء تسويقي من أي من المحركين حكمًا محايدًا — فكلاهما أجراه المشروع الذي حقق النتيجة الأكثر تفضيلاً له، على أحمال عمل اختارها ذلك المشروع. إذا كانت الإنتاجية عاملاً حاسمًا في قرارك، فإن اختبار كلا المحركين بنموذجك وعتادك ونمط حركة المرور الخاص بك أكثر موثوقية من رقم أي مقال واحد، بما في ذلك هذا المقال.
كيف يقارن SGLang بـllama.cpp وTensorRT-LLM؟
يقع SGLang وllama.cpp وTensorRT-LLM في نقاط مختلفة على طيف المرونة العتادية مقابل التحسين الأقصى.
SGLang
- التفاصيل:
- مرخّص بموجب Apache 2.0، مبني بلغة Python، ومبني حول RadixAttention والمخرجات المُهيكلة على مستوى المحرك. يحمّل نماذج متوافقة مع Hugging Face Transformers مباشرة؛ وحدات معالجة الرسوميات NVIDIA هي الهدف الأساسي، مع محركات خلفية إضافية موثقة.
llama.cpp
- التفاصيل:
- محرك استدلال بلغة C/C++ مرخّص بموجب MIT، مبني حول صيغة نموذج GGUF، ويعمل على المعالج المركزي وApple Silicon ووحدات معالجة الرسوميات. يستهدف النشر على جهاز واحد وفي الحافة بدلاً من عناقيد إنتاج متعددة وحدات معالجة الرسوميات.
TensorRT-LLM
- التفاصيل:
- محرك NVIDIA، مبني خصيصًا لوحدات معالجة الرسوميات NVIDIA. تُجمَّع النماذج مسبقًا في محرك TensorRT مُحسَّن لوحدة معالجة الرسوميات المستهدفة، ما قد يحقق أداءً قويًا على ذلك العتاد المحدد مقابل خطوة تجميع ومرونة أقل بين العتادات مقارنة بـSGLang.
لم يقارن هذا المقال هذه المحركات الثلاثة ببعضها بشكل مستقل ولا يزعم أن أحدها أسرع عالميًا — تعتمد الإنتاجية بشكل كبير على النموذج والعتاد وخصائص الدفعة وإصدار كل محرك. راجع دليل خوادم الاستدلال المؤسسية لمقارنة موجهة نحو النشر تغطي أيضًا vLLM وTGI وNVIDIA NIM.
لمن يناسب SGLang؟
يناسب SGLang الفرق التي تخدم نموذجًا لعدد كبير من المستخدمين أو التطبيقات المتزامنة على بنية تحتية لوحدات معالجة الرسوميات — خاصة أحمال العمل ذات بادئات الموجّهات المتكررة أو ذات المتطلب الصارم للمخرجات المُهيكلة — وليس الأشخاص الباحثين عن أسرع طريقة للدردشة مع نموذج على حاسوبهم الخاص.
SGLang مقابل البدائل بلمحة سريعة
تقع هذه الأدوات في نقاط مختلفة على طيف المستخدم الواحد مقابل الخدمة الإنتاجية، وطيف الإنتاجية مقابل التركيز على المخرجات المُهيكلة.
SGLang
- الواجهة والإعداد:
- حزمة Python؛ خادم واجهة برمجة تطبيقات متوافق مع OpenAI يُشغَّل بـ
python -m sglang.launch_server. يتطلب وحدة معالجة رسوميات NVIDIA وCUDA في معظم عمليات النشر. - الأنسب لـ:
- خدمة عالية التزامن على وحدات معالجة الرسوميات مع إعادة استخدام مكثفة للبادئات و/أو متطلب صارم لمخرجات مُهيكلة (JSON/تعبيرات نمطية).
vLLM
- الواجهة والإعداد:
- حزمة Python؛ خادم واجهة برمجة تطبيقات متوافق مع OpenAI يُشغَّل بـ
vllm serve. يتطلب وحدة معالجة رسوميات NVIDIA وCUDA في معظم عمليات النشر. - الأنسب لـ:
- خدمة عالية الإنتاجية متعددة المستخدمين على وحدات معالجة الرسوميات في الإنتاج، بشكل عام، دون تصميم يركز أولاً على المخرجات المُهيكلة.
Ollama
- الواجهة والإعداد:
- واجهة سطر أوامر وواجهة برمجة تطبيقات REST، يُذكر عادة أنها تعمل على llama.cpp كمحرك خلفي على معظم المنصات. أمر واحد يثبّتها؛ وأمر واحد يجلب النموذج ويشغّله.
- الأنسب لـ:
- أسرع طريق لتشغيل نموذج محلي لمستخدم واحد، دون خطوة بناء أو حاجة لوحدة معالجة رسوميات.
llama.cpp
- الواجهة والإعداد:
- واجهة سطر أوامر، وواجهة ويب مدمجة، وواجهة برمجة تطبيقات متوافقة مع OpenAI عبر llama-server. ابنِ من المصدر أو استخدم ملفًا ثنائيًا جاهزًا؛ يعمل على المعالج المركزي أو وحدة معالجة الرسوميات.
- الأنسب لـ:
- تحكم مباشر على مستوى المحرك، ونشر مدمج/على الحافة، وعتاد المعالج المركزي أو Apple Silicon.
لم يختبر هذا المقال بشكل مستقل السرعة أو جودة المخرجات بين هذه الأدوات ولا يزعم تفوق إحداها تقنيًا — تغطي المقارنة أعلاه فقط الحقائق الموثقة المتعلقة بالبنية والإعداد ونموذج الوصول. راجع مقارنة llama.cpp مقابل Ollama مقابل vLLM لمقارنة مخصصة للإنتاجية وتعقيد الإعداد بين هذه الأدوات الثلاث، ودليل خوادم الاستدلال المؤسسية لنظرة موجهة نحو النشر حول vLLM وTGI وNVIDIA NIM.
ما الذي لا يغطيه هذا المقال؟
هذا مقال شرحي مبني على وثائق SGLang العامة ومستودعه، وليس تقرير اختبار أداء عملي.
- لا توجد أرقام إنتاجية أو زمن استجابة أو طلبات في الثانية مقاسة بشكل مستقل لـSGLang أو مقارناته — فهذه تعتمد بشكل كبير على وحدة معالجة الرسوميات والنموذج وتركيبة الدفعة والإصدار
- لا يوجد تحقق مستقل من مضاعفات التسريع التي يدّعيها SGLang نفسه لـRadixAttention أو فك ترميز JSON — فهذه تأتي من اختبارات أداء إصدارات المشروع، وليس من قياس طرف ثالث
- لا توجد مراجعة أمنية سطرًا بسطر لقاعدة شيفرة SGLang — فهي مفتوحة المصدر ومرخّصة بموجب Apache 2.0، لذا فإن الشيفرة نفسها متاحة للمراجعة
- لا توجد تغطية كاملة لكل محرك خلفي عتادي مدعوم، أو علم محرك، أو خيار تنسيق نشر (Kubernetes، إعدادات خاصة بالسحابة) — يركز هذا المقال على المفاهيم والأعلام التي تقيّمها معظم الفرق أولاً
- لا توجد تغطية لترتيبات الدعم التجاري أو عروض استضافة SGLang المُدارة، بما أن SGLang نفسه مشروع مجتمعي مفتوح المصدر وليس منتج مورّد بعقد دعم
أخطاء شائعة عند تجربة SGLang
معظم الاحتكاك مع SGLang ينشأ من التعامل معه كأداة سطح مكتب أحادية المستخدم، أو من توقّع أن يساعد RadixAttention حِمل عمل لا يتشارك البادئات فعليًا.
الأسئلة الشائعة
ما هو SGLang؟
SGLang هو إطار عمل مجاني، مرخّص بموجب Apache 2.0، لخدمة النماذج اللغوية الكبيرة ونماذج الرؤية واللغة، نشأ من أبحاث مرتبطة بجامعة كاليفورنيا في بيركلي وستانفورد ومنظمة LMSYS التي تدير Chatbot Arena. يُعرف بشكل أساسي بـRadixAttention، وهي تقنية لإعادة استخدام ذاكرة KV تلقائيًا عبر الطلبات التي تتشارك بادئة مشتركة.
هل SGLang مجاني؟
نعم. SGLang برنامج مجاني ومفتوح المصدر صادر بموجب رخصة Apache 2.0، دون الحاجة لاشتراك أو حساب لتشغيله بنفسك.
ما هو RadixAttention؟
RadixAttention هي تقنية SGLang لتخزين ذاكرة KV الخاصة بالانتباه للطلبات المكتملة والجارية في شجرة راديكس، بحيث يمكن للطلبات الجديدة التي تتشارك بادئة تسلسل رموز — موجّه نظام، أو أمثلة قليلة اللقطات، أو أدوار محادثة سابقة — إعادة استخدام الذاكرة المؤقتة المطابقة تلقائيًا بدلاً من إعادة حسابها.
هل يضمن SGLang مخرجات JSON صالحة؟
عندما يتضمن الطلب مخطط JSON في معلمات المخرجات المُهيكلة لـSGLang، يخفي المحرك في كل خطوة فك ترميز الرموز التي قد تنتهك المخطط، وهو ما صُمم لجعل المخرجات متوافقة مع المخطط بحكم البنية بدلاً من التحقق اللاحق. مجرد طلب JSON في نص الموجّه دون استخدام هذه المعلمات لا يوفر هذا الضمان.
هل يحتاج SGLang إلى وحدة معالجة رسوميات؟
نعم، لأي حِمل عمل حقيقي — الهدف الأساسي والأفضل دعمًا لـSGLang هو وحدات معالجة الرسوميات NVIDIA. يوثّق المشروع محركات خلفية من AMD وIntel ومسرّعات أخرى، لكنها ليست مسار النشر الأساسي، ولا يوجد دعم من الدرجة الأولى لـApple Silicon.
ما صيغ التكميم التي يدعمها SGLang؟
يدعم SGLang عدة صيغ منها FP8، وFP4 على العتاد الأحدث، وAWQ، وGPTQ، وINT4، مع نشر العديد من النماذج المُكمَّمة مسبقًا بهذه الصيغ على Hugging Face.
هل SGLang أفضل من vLLM؟
لا تُعد اختبارات الأداء الخاصة بأي من المشروعين حكمًا محايدًا في هذا الشأن — فكلاهما ينشر نتائج تخدم مصلحته. يبرز SGLang إعادة استخدام الذاكرة المؤقتة القائمة على البادئات في RadixAttention والمخرجات المُهيكلة على مستوى المحرك كميزاته الرئيسية؛ بينما يبرز vLLM كفاءة ذاكرة PagedAttention. يعتمد الأنسب على نمط تشارك البادئات في حِمل عملك وما إذا كانت المخرجات المُهيكلة متطلبًا صارمًا — راجع جدول المقارنة أعلاه.
هل لدى SGLang واجهة برمجة تطبيقات متوافقة مع OpenAI؟
نعم. يؤدي تشغيل python -m sglang.launch_server إلى تشغيل خادم ينفّذ بروتوكول واجهة برمجة تطبيقات OpenAI، بحيث يمكن للعديد من التطبيقات المبنية لواجهة برمجة تطبيقات OpenAI الإشارة إلى نسخة SGLang مستضافة ذاتيًا بمجرد تغيير عنوان URL الأساسي واسم النموذج.
ما الغرض من لغة الواجهة الأمامية DSL في SGLang؟
هي مجموعة من العناصر البدائية في Python — بما في ذلك sgl.gen وsgl.select وsgl.fork — لكتابة برامج نماذج لغوية متعددة الخطوات، مثل التفرّع إلى عدة توليدات فرعية متوازية ودمج النتائج، كشيفرة Python عادية بدلاً من تنسيق استدعاءات واجهة برمجة تطبيقات منفصلة يدويًا.
من أنشأ SGLang، وما هي RadixArk؟
نشأت SGLang من أبحاث تربط بين جامعة كاليفورنيا في بيركلي وستانفورد ومنظمة LMSYS التي تقف وراء Chatbot Arena. في عام 2026، أسّس المشاركان في إنشاء SGLang، Ying Sheng وBanghua Zhu، شركة RadixArk الناشئة للبنية التحتية للذكاء الاصطناعي، والتي جمعت 100 مليون دولار في جولة تمويل أولية بقيادة Accel لتسويق خدمات حول SGLang مع الاستمرار في تطويره مفتوح المصدر — ويبقى الإطار الأساسي مرخصًا بموجب Apache 2.0 ومجانًا.
