مقدمة: فخ السرعة
الشيء في كلمة "سريع" في استدلال الذكاء الاصطناعي هو أن الجميع يريده، ولكن لا أحد يتفق على ما يعنيه. هل تريد زمن انتقال أقل لمستخدم واحد؟ إنتاجية أعلى عبر مجموعة من الطلبات؟ عدد رموز أفضل لكل دولار؟ أم مجرد عدد أقل من المهلات الزمنية حتى لا يموت العرض التوضيحي الخاص بك أمام نائب الرئيس؟ "SGL مقابل vLLM" هي إحدى تلك المقارنات التي تبدو بسيطة على Hacker News وتتحول إلى تشابك بمجرد محاولة شحن شيء يستخدمه الناس بالفعل.
لقد تم تدريبنا على التعامل مع أطر العمل مثل العلامات التجارية للمناشف الورقية: كلها تلتقط الانسكاب، ما عليك سوى اختيار "الأكثر امتصاصًا". من الناحية العملية، فإن SGL و vLLM هما نوعان مختلفان من المماسح. إنهما يحلان الفوضى المتشابهة بفيزياء مختلفة - وأفكار متعصبة بشكل غريب حول كيفية عمل جدولة الطلبات عندما تذوب وحدات معالجة الرسومات الخاصة بك.
دعنا نتخلص من الضجيج، وننتقد الافتراضات، ونتحدث عن المكان الذي يختلف فيه SGL مقابل vLLM بالفعل - ولماذا قد تختار "الخاطئ" وتكون على ما يرام.
SGL مقابل vLLM: ما هو السؤال حقًا؟
- إذا كان نظامك الغذائي من الكلمات الرئيسية هو "SGL مقابل vLLM"، فمن المحتمل أن يكون سؤالك الفعلي هو: أي خادم يحصل على المزيد من الرموز من نفس وحدة معالجة الرسومات بدراما أقل؟
- أو: أي واحد يجعل النموذج الخاص بي مستجيبًا للتطبيقات التفاعلية دون تحويل الإنتاجية إلى يقطين؟
- أو، بصدق أكبر: أي واحد يمكنني نشره بحلول يوم الجمعة ولا أندم عليه يوم الاثنين؟
هذا هو الإطار. التفاصيل مهمة، ولكن ليس بالتساوي.
ما تم تحسين vLLM من أجله (وما لم يتم تحسينه من أجله)
العلامة التجارية لـ vLLM هي الإنتاجية مع العقل. الميزة النجمية هي PagedAttention، وهي عبارة عن نظام ترحيل VRAM يعامل ذاكرة التخزين المؤقت KV كنظام مُدار للذاكرة بدلاً من درج غير مرغوب فيه. يمكنك حزم الكثير من الطلبات المتزامنة دون إضاعة ذاكرة GPU الثمينة على الحشو وسياقات الزومبي. تم تحسين نظام قائمة الانتظار لإنشاء دفعات متزامنة - فكر في العديد من المستخدمين والعديد من الدردشات أو نقطة نهاية واجهة برمجة التطبيقات التي تتعرض لطلبات صغيرة إلى متوسطة.
باللغة الإنجليزية البسيطة: يمنحك vLLM المزيد من الإنشاء المتزامن لكل وحدة معالجة رسومات من خلال التحلي بالذكاء بشأن الذاكرة والجدولة. إنه ممل بطريقة جيدة - إعدادات افتراضية محافظة وأداء قوي وميل إلى العمل فقط للأشكال الشائعة.
أين يعضك: تجربة المستخدم التفاعلية ذات زمن الانتقال المنخفض للغاية (حلقات ضيقة لمستخدم واحد)، والمطالبات ذات الأشكال الغريبة (إدخال ضخم + إخراج صغير، أو العكس)، والملحقات الصعبة (طبقات مخصصة، أو تكميم مخصص، أو حيل أخذ العينات المتطورة) تحتك أحيانًا بحواجز الحماية الخاصة بـ vLLM. إنه خط أساس قابل للشحن لمعظم الفرق - حتى تصطدم بحافة وتكتشف سبب وجود خط الأساس.
ما تم تحسين SGL من أجله (ولماذا هذا مثير للاهتمام)
إن عرض SGL أكثر مثالية: يمكنك ضغط كل من زمن الانتقال والإنتاجية باستخدام جدولة أكثر ذكاءً - استباقية ديناميكية أكثر، ومشاركة أكثر دقة، واستعداد للتوفيق بين الطلبات المتزامنة حتى يتحرك القطيع بشكل أسرع دون السماح لأي طلب واحد بالتضور جوعًا. إذا كان نموذج ذاكرة vLLM هو بطاقة الاتصال الخاصة به، فإن SGL هو جدوله. الهدف ليس فقط حزم المزيد في VRAM، ولكن أيضًا إبقاء ممرات حساب GPU مشغولة دون السماح للسياقات الطويلة بالجلوس مثل حوت تقطعت به السبل بينما تنتظر الطلبات القصيرة.
من الناحية العملية، هذا يعني أن SGL غالبًا ما يتألق عندما يكون عبء العمل متقطعًا أو مختلطًا - بعض المطالبات الضخمة، وبعض الردود القصيرة، ودفعات من حركة المرور، والجلسات التفاعلية حيث تكون ارتفاعات زمن الانتقال قاتلة لتجربة المستخدم. إنه خادم "المقهى المزدحم": الكثير من الطلبات الصغيرة، ورجل واحد لديه لاتيه مخصص بـ 14 مكونًا، ونادل يعرف بالفعل كيفية الموازاة.
الحقيقة غير المريحة: الجدولة الأكثر ذكاءً تعني أيضًا المزيد من السياسات. المزيد من المقابض. المزيد من القرارات التي يمكنك اتخاذها بشكل خاطئ. إذا كنت بحاجة إلى نشر بسيط وموحد، فإن مرونة SGL يمكن أن تبدو وكأنها مغامرة اخترها بنفسك حيث تنتهي العديد من الخيارات بتنين.
المقايضة الأساسية: زمن الانتقال مقابل الإنتاجية مقابل القدرة على التنبؤ
- زمن الانتقال: يميل SGL إلى تقليل زمن الانتقال المتأخر لأحمال العمل المختلطة لأنه أكثر عدوانية بشأن التوفيق. vLLM ثابت، لكنه سيعطي الأولوية للإنتاجية عندما يكون قائمة الانتظار عميقة.
- الإنتاجية: إن PagedAttention الخاص بـ vLLM هو وحش في حزم الطلبات المتزامنة للحصول على عدد كبير من الرموز في الثانية لكل وحدة معالجة رسومات. يمكن أن يضاهي SGL أو يتفوق عليه في سيناريوهات التحميل المختلط حيث تمنع الاستباقية الأكثر ذكاءً فقاعات الحساب.
- القدرة على التنبؤ: يفوز vLLM بـ "ممل ومستقر"، ويفوز SGL بـ "يمكنني ضبط هذا لتشكيل حركة المرور التي لدي بالفعل." القدرة على التنبؤ ليست فضيلة أخلاقية؛ إنه مطلب لبعض الفرق وسترة تقييد للآخرين.
تجميع الدفعات ومشكلة ذروة العشاء
تخيل مطعمًا. يقوم vLLM بإجلاس الجميع بسرعة عن طريق ترتيب الطاولات مثل Tetris، لذلك هناك مساحة فارغة قليلة. يقوم SGL بتشغيل الأرضية أيضًا، ولكن مدير القاعة يقوم أيضًا بالإدارة التفصيلية للمطبخ - حيث يقوم بتبديل الدورات التدريبية حتى لا يمنع ستة مقاعد عشرات المقاعد المزدوجة التي تنتظر البطاطس المقلية. إن الهدف من SGL مقابل vLLM ليس "من يجلس بشكل أسرع"، بل "من يحافظ على ازدهار غرفة الطعام عندما تظهر جولة بالحافلة ونصفهم خالٍ من الغلوتين".
إذا كانت حركة المرور الخاصة بك سلسة وأشكال طلباتك متسقة، فإن Tetris الخاص بـ vLLM يفوز. إذا كانت حركة المرور الخاصة بك متقطعة مع توزيع لأطوال المطالبات وتهتم بزمن الانتقال المئوي الخامس والتسعين للمستخدمين التفاعليين، فإن تصميم الرقصات في المطبخ الخاص بـ SGL يؤتي ثماره.
ذاكرة التخزين المؤقت KV: الخدعة الغريبة الوحيدة التي ليست غريبة
يعامل كل من SGL و vLLM ذاكرة التخزين المؤقت للانتباه مثل المعادن الثمينة. يعد ترحيل vLLM هو الحيلة المتعارف عليها: حافظ على المفاتيح/القيم مضغوطة، وقم بإلغاء التجزئة، وتجنب إضاعة VRAM على الحشو. يتعلق نهج SGL بشكل أكبر بموعد وكيفية الاستباقية والتشابك بين العمل حتى لا تتحول ذاكرة التخزين المؤقت إلى مكب نفايات.
إذا كان النموذج الخاص بك بالكاد يتناسب مع مساحة لعدة جلسات متزامنة، فإن كفاءة ذاكرة vLLM يمكن أن تكون الفرق بين "التشغيل" و "OOM". إذا كان النموذج الخاص بك مناسبًا بشكل مريح ولكن المستخدمين يشكون من ارتفاعات التأخير، فإن جدولة SGL يمكن أن تكون الفرق بين "قابل للاستخدام" و "مبهج".
ميزانية الرموز والإدراك البشري
لا يدرك المستخدمون "الرموز لكل ثانية". إنهم يدركون: انقر... انتظر... يبدأ الرد... يتدفق... تم. الإنتاجية هي مقياس اقتصادي؛ زمن الانتقال هو مقياس نفسي. إن تحيز SGL هو تجاه علم النفس - حافظ على تدفق الرموز الأولى ومنع الارتفاعات المتأخرة. إن تحيز vLLM هو تجاه الاقتصاد - زيادة توليد الحالة المستقرة إلى أقصى حد. لا يوجد خطأ في أي منهما. ولكن من المحتمل أن يميل منتجك في اتجاه واحد.
التكميم ومنزل البطاقات
هنا تنهار القصص الأنيقة. في اللحظة التي تقوم فيها بإدخال تكميم 4 بت أو 8 بت، أو نوى مخصصة، أو بنيات نموذجية خارج الطريق الرئيسي، فقد يتم اتخاذ القرار نيابةً عنك من خلال أي مشروع لديه دعم النواة الذي تحتاجه اليوم. يصبح SGL مقابل vLLM "ما الذي يعمل بدون انحدار دقة غامض أو أعطال ناعمة بعد 40 دقيقة".
يمكنك إضفاء الطابع الرومانسي على الجدولة بقدر ما تريد؛ النوى هي الجاذبية. تحقق من المصفوفة الخاصة بالنموذج الدقيق، ونوع البيانات، ونموذج GPU الذي تخطط لشحنه. ثم اختبر وكأنك لا تثق بأحد - بما في ذلك نفسك.
تجربة المستخدم المتدفقة: الرمز الأول مهم أكثر من الأخير
تقوم vLLM بالتدفق بشكل جيد بما يكفي لمعظم التطبيقات. إن هوس SGL بتقليل حظر الرأس يمنحه ميزة عندما تعيش تجربة المستخدم أو تموت بزمن الرمز الأول - الفرق بين "هذا يبدو فوريًا" و "لماذا يدور هذا؟" إذا كان تطبيقك هو مساعدة التعليمات البرمجية أو الدردشة المعززة بالبحث أو أي شيء يكون فيه الإنسان في الحلقة، فإن هذا الرمز الأول يهم أكثر من الرموز الأولية في الثانية.
إذا كنت تقوم بدلاً من ذلك بإنشاء تقارير أسبوعية على دفعات أو عرض مخرجات طويلة من جانب الخادم، فإن إنتاجية الحالة المستقرة لـ vLLM تكسبك دولارات مقابل وقت وحدة معالجة الرسومات. لا أحد يهتم بما إذا كان الرمز الأول قد وصل في 150 مللي ثانية أو 450 مللي ثانية إذا كان كل شيء عملاً في الخلفية.
واقع العمليات: السجلات والقيود واختبار "من هو المناوب؟"
- vLLM: قصة تشغيلية ناضجة. أسهل في التفكير فيه. مقاييس أوضح لتخطيط القدرات لأن تجميع الدفعات والترحيل يمكن التنبؤ به.
- SGL: المزيد من الأقراص. ربما المزيد من الطاقة. أفضل عندما تعرف أنماط حركة المرور الخاصة بك وكنت على استعداد لتشكيلها. لكن قصة "المناوبة في الساعة 2 صباحًا" جيدة بقدر دفاتر التشغيل الخاصة بك.
إرشاد مفيد: إذا كان فريقك لا يستطيع شرح أهداف p95/p99 الخاصة به وكيفية ارتباطها بالإيرادات أو تجربة المستخدم، فقم بالتبديل إلى vLLM. إذا كان بإمكانك ذلك، ولديك سبب لمطاردة زمن الانتقال المنخفض تحت الحمل المختلط، فإن SGL يكسب تعقيده.
RAG والمطالبة الكثيفة النطاق الترددي
يضيف الجيل المعزز بالاسترجاع البنزين إلى جانب الإدخال. المطالبات الضخمة مع أجزاء من السياق تحول زمن الانتقال إلى دالة للتجزئة وتكلفة تمرير الإدخال. يساعد حزم ذاكرة vLLM على احتواء المزيد من هذه الوحوش جنبًا إلى جنب. يمكن أن تمنع جدولة SGL بضعة حيتان من تجميد المجموعة. إذا كان RAG الخاص بك يبدو وكأنه "مطالبة ضخمة + إجابة قصيرة"، فيمكن أن تحافظ الاستباقية الخاصة بـ SGL على شعور الأشياء بالحيوية. إذا كان "مطالبة متوسطة + إجابة متوسطة" بحجم ثابت، فإن حزم vLLM تفوز.
نماذج التكلفة التي يمكنك شرحها بالفعل
- الرموز لكل ساعة وحدة معالجة رسومات: يميل vLLM إلى الفوز للحصول على حالة مستقرة عالية التحميل.
- تكلفة كل جلسة تفاعلية: يميل SGL إلى الفوز عندما لا يمكنك إسقاط الإطارات في الإدراك البشري.
- وقت الهندسة: عادة ما يكون vLLM أرخص، إلا إذا كنت بالفعل في عمق SGL وتحصد المكاسب. تكاليف التبديل حقيقية.
لا شيء من هذا مطلق. ولكن إذا سأل المدير المالي الخاص بك، فلديك الآن جمل تبدو وكأنها باللغة الإنجليزية.
المعايير التي يجب أن تتجاهلها (والتي لا يجب عليك تجاهلها)
تجاهل المخططات ذات الرقم الواحد التي لا تكشف عن توزيع شكل الطلب وحجم الدفعة والحد الأقصى للتزامن ونوع بيانات النموذج ونموذج GPU. إنها صور سيلفي للياقة البدنية مع الإضاءة الصحيحة تمامًا. المعايير المفيدة:
- اختبارات تحميل التوزيع المختلط: مطالبات قصيرة ومتوسطة وطويلة ممزوجة برموز قصوى متنوعة.
- زمن الانتقال المتأخر تحت الاندفاع: قم بقياس وقت الرمز الأول المئوي الخامس والتسعين/المئوي التاسع والتسعين أثناء ارتفاع حركة المرور المحاكي.
- مساحة ذاكرة الوصول العشوائي: هامش OOM الفعلي مع النموذج وذاكرة التخزين المؤقت kv في التزامن المستهدف.
- الاستقرار بمرور الوقت: قم بالتشغيل لمدة ست ساعات؛ ابحث عن التسربات البطيئة أو انجراف الإنتاجية أو التوقفات النادرة.
"أسرع" لا يهم إذا كان سريعًا لحركة مرور شخص آخر على وحدة معالجة رسومات شخص آخر.
بيئة العمل للمطور: ما مقدار التجريد الذي تريده؟
يفضل vLLM واجهات برمجة تطبيقات نظيفة، وتكوينات يمكن التنبؤ بها، والتوافق مع مجموعات الأدوات الشائعة. إنه إعداد افتراضي آمن للفرق التي تريد طبقة خدمة موحدة. يمنحك SGL المزيد من مساحة السياسة: تحديد الأولويات وسلوك الاستباقية ومساحة لتشكيل شكل الحساب الخاص بك. إنه ذهب إذا كنت في حاجة إليه - ونفقات عامة إذا لم تكن كذلك.
قصة الملحق متشابهة. يميل vLLM إلى التكامل في وقت مبكر مع الأنظمة البيئية الشائعة والمنصات المستضافة. يتحرك SGL بسرعة في ميزات الجدولة والتزامن المتقدم. إذا كنت تعرف سبب حاجتك إلى SGL، فربما تفعل ذلك. إذا لم تفعل ذلك، فربما لم تفعل ذلك - بعد.
مشكلة حديقة الحيوان متعددة النماذج
إن خدمة نموذج رئيسي واحد أمر غريب. معظم التطبيقات الحقيقية توفق بين العديد من التطبيقات: LLM المضبوطة بالتعليمات، وإعادة الترتيب، والتضمينات، وربما نموذج لغة بصرية. إن القدرة على التنبؤ بـ vLLM تجعل من السهل تقسيم السعة عبر نماذج متعددة. تمنحك جدولة SGL الأدوات اللازمة لتجنب الخنازير التي تعمل لفترة طويلة والتي تعيق المكالمات الصغيرة ذات الأولوية العالية - ولكن ستحتاج إلى وضع القواعد. تساعد الأتمتة، ولكن السياسة لا تزال بحاجة إلى عقل.
كلمة حول الحوكمة: اتفاقيات مستوى الخدمة أم المشاعر؟
إذا كنت مدينًا للعملاء بأرقام (اتفاقية مستوى الخدمة، SLO، اختر اختصارك)، فإن الملل هو ميزة. إن اتساق vLLM يجعل من السهل الوعد بالعتبات والوصول إليها. إذا كان منتجك يدور حول "الشعور"، ويتم تعريف الشعور من خلال التعليقات الفورية (فكر في الطيارين الآليين في IDE)، فإن قدرة SGL على الدفاع عن تجربة المستخدم تحت الضغط تستحق التفكير الإضافي.
عندما تكون وحدة معالجة الرسومات هي الإجابة الخاطئة
إن أكثر حزم الخدمة سخونة هي تلك التي تستخدم عددًا أقل من وحدات معالجة الرسومات. يستفيد كل من SGL و vLLM عندما تفعل الشيء المناسب: نوافذ سياق جيدة، واقتطاع ذكي، واسترجاع أفضل، وتخزين مؤقت للاستجابة، وعدم مطالبة LLM بكتابة الحرب والسلام لكل نقرة زر. إن أرخص زمن انتقال هو الرمز الذي لا تقوم بإنشائه أبدًا.
أنماط العالم الحقيقي (المعروف أيضًا باسم كيف يختار الناس بالفعل)
- شركة ناشئة تقوم بشحن تطبيق ذكاء اصطناعي الأسبوع المقبل: vLLM. سرعة الفوز بالكفاءة.
- منتج مزود بتجربة مستخدم تفاعلية وحركة مرور متقطعة: SGL، مضبوط لزمن الانتقال المتأخر.
- إنشاء دفعات خلفية: vLLM، نهاية القصة.
- أداة دعم ثقيلة بـ RAG: كسر التعادل يذهب إلى SGL إذا كانت مطالباتك ضخمة؛ vLLM بخلاف ذلك.
- فريق بدون متخصصين في وحدة معالجة الرسومات: vLLM. توقف عن التظاهر.
- فريق لديه قائد مهتم بالأداء ويستمتع بالمجدولات: SGL. استمتع بمسؤولية.
SGL مقابل vLLM لمساعدة التعليمات البرمجية وبيئات التطوير المتكاملة
هذه إحدى الحالات الأكثر وضوحًا. تعيش مساعدو التعليمات البرمجية ويموتون على الاستجابة المتصورة. الرمز الأول سريع، التدفق ثابت، وتجنب الارتفاعات المتأخرة عندما يضغط المستخدم على الاختصار ثلاث مرات متتالية. إن النظرة العالمية لـ SGL التي تركز على الاستباقية تؤتي ثمارها هنا. يمكن لـ vLLM القيام بذلك - خاصة مع التكوين الدقيق والمساحة الإضافية - ولكن غالبًا ما ستترك بعض زمن الانتقال على الطاولة.
SGL مقابل vLLM لروبوتات الدردشة على نطاق واسع
اقلبه. بالنسبة لحركة مرور الدردشة الضخمة والثابتة - روبوتات الدعم والمساعدين الداخليين والأسئلة والأجوبة العامة - فإن حزم سعة vLLM هي الهدية التي تستمر في العطاء. هذا ما تريده إذا كان الرسم البياني الخاص بك مسطحًا في الغالب ويكافئ نموذج العمل الرموز لكل دولار.
المسار الأوسط: يمكنك تشغيل كليهما
أخذ صادم: أحمال عمل مختلفة وخوادم مختلفة. قم بتشغيل SGL حيث تحتاج إلى تفاعل وزمن انتقال متأخر منخفض؛ قم بتشغيل vLLM بكميات كبيرة. قم بالمسار عبر نقطة النهاية أو المستأجر أو حتى الوقت من اليوم. إن النفقات العامة للعمليات حقيقية، لكنك تشتري التحرر من الخيارات الخاطئة.
يعمل Sider.AI بالفعل - على الأقل عندما تستخدمه فيما هو جيد فيه، والذي، الغريب في الأمر، ليس تمامًا ما تقوله التسويق. إذا كنت توفق بين SGL مقابل vLLM لأنك بحاجة إلى محطة عمل و سير عمل عملية للذكاء الاصطناعي لا تنهار تحت رمز الغراء الخاص بها، فإن بيئة Sider المتكاملة هي الجزء الذي لا يخصصه أحد في الميزانية: السطح الممل حيث تعيش المطالبات والمستندات والتجارب دون أن تعيد اختراع تطبيق لوحة الخدوش و أداة قياس محلية الصنع. لن يختار SGL مقابل vLLM نيابة عنك - ولا ينبغي له ذلك - ولكنه سيبقي فريقك مركزًا على النتائج أثناء اختبار كلا من SGL و vLLM. إذا كنت تريد حلاً سحريًا، فابحث في مكان آخر. إذا كنت تريد عددًا أقل من الحواف الحادة بين "فكرة" و "مطالبة" و "تشغيل" و "شحن"، فهذا هو المكان الذي يكسب فيه Sider.AI قوته. الاعتراضات الشائعة، التي تم الرد عليها بدون دوران
- "سنفقد الإنتاجية مع SGL." ربما. تحت الحمل المتجانس، ربما. تحت الحمل المختلط والمتقطع، ربما لا - يمكن أن تؤدي تحسينات زمن الانتقال المتأخر إلى رفع الإنتاجية الفعالة.
- "سنفقد زمن الانتقال مع vLLM." ربما أيضًا. تحت الضغط، يحافظ vLLM على الإنتاجية حتى إذا انجرف وقت الرمز الأول. يمكنك التخفيف من خلال المساحة الإضافية والقيود المنطقية.
- "هل يمكننا ضبط vLLM ليتصرف مثل SGL؟" جزئيًا. يمكنك تحديد الأولويات وتقليل الحد الأقصى للرموز وتشكيل قوائم الانتظار. لكن الحمض النووي للمجدول مختلف.
- "هل يمكننا ضبط SGL ليتصرف مثل vLLM؟" أيضًا جزئيًا. ولكن إذا قضيت أسابيع في تحويل SGL إلى vLLM، فقد اخترت خطأ.
قائمة التحقق العملية قبل أن تقرر
- حدد المقياس الذي يهم بالفعل: وقت p95 للرمز الأول، وزمن الانتقال الشامل p99، والرموز لكل دولار، أو معدل الأعطال تحت الاندفاع. اختر مقياسًا أساسيًا واحدًا وحاجزًا واحدًا.
- أعد إنتاج توزيع حركة المرور الحقيقي الخاص بك. ليس لعبة. مخططات حجم المطالبة/الاستجابة الحقيقية، والاندفاع الحقيقي.
- اختبر على أجهزة تشبه الإنتاج لمدة ساعة على الأقل تحت الحمل المستمر. ابحث عن الانجراف والتسربات والتوقفات النادرة.
- تحقق من دعم النواة والتكميم للنموذج الدقيق الخاص بك. ثم افعل ذلك مرة أخرى بعد ترقية برامج التشغيل.
- قرر من هو المناوب واكتب كيف ستتراجع.
إذا لم تفعل ذلك، فاختر vLLM واقبل الإعدادات الافتراضية. إذا فعلت ذلك، فقد يشتري لك SGL تجربة مستخدم أفضل وذيول أقل، وهو المكان الذي يختبئ فيه البهجة.
كلمة موجزة حول مخاطر الترحيل
يعد تبديل أطر عمل الخدمة في الإنتاج نوع العمل الذي يدمر عطلات نهاية الأسبوع. إذا كنت تشك في أنك سترغب في تجربة كليهما، فخطط لذلك: قم بتوحيد مخططات الطلب/الاستجابة، واحتفظ بتكوينات الرمز وأخذ العينات قابلة للنقل، وقم بإخفاء الخادم خلف عميل داخلي متسق. يتيح لك الفصل الاختيارية، وهي كلمة رائعة تعني "المستقبل لن يكرهك في الماضي".
النهاية الجدلية التي عرفت أنها قادمة
إذا أتيت إلى هنا على أمل الحصول على حفل تنصيب - انهض، يا سير SGL؛ أو، عش vLLM طويلاً - فقد اخترت الحكاية الخيالية الخاطئة. الجواب الصحيح هو على شكل عبء العمل. vLLM هي شاحنة البيك أب الموثوقة التي تسحب الكثير ولا تشتكي. SGL هي عربة رياضية تمر عبر حركة المرور دون إراقة القهوة. يمكنك التنقل في أي منهما؛ ستستمتع بالقيادة بشكل مختلف.
الشيء الذي يجب تذكره: المستخدمون يشعرون بزمن الوصول، بينما يركز الجانب المالي على الإنتاجية. مهمتك هي التوفيق بين الاثنين دون الكذب على أي منهما. المقارنة بين SGL و vLLM ليست مجرد فحص للأجواء، بل هي اعتراف بأن "السرعة" لها أكثر من بُعد، وأن أطر العمل الخاصة بالخدمة، مثل الناس، تكشف عن شخصيتها تحت الضغط.
إذا كنت محظوظًا، فلن تحتاج إلى الاهتمام بهذا الأمر أبدًا. وإذا كنت جيدًا، فسوف تعرف متى يجب عليك ذلك.
H2: أداء SGL مقابل vLLM: زمن الوصول الطويل مقابل الإنتاجية
- تعتمد SGL على الجدولة الديناميكية لتقليل زمن الوصول p95/p99 وتحسين وقت الحصول على أول رمز (token) في ظل الأحمال المختلطة.
- تضغط PagedAttention الخاصة بـ vLLM المزيد من الطلبات المتزامنة في نفس ذاكرة VRAM، مما يزيد من عدد الرموز في الثانية لكل وحدة معالجة رسوميات (GPU).
- اختر SGL لتجربة مستخدم تفاعلية وحركة مرور متقطعة؛ واختر vLLM للدردشة المستمرة عالية الحجم أو المعالجة الدفعية.
H2: خيارات النشر لـ SGL مقابل vLLM في بيئة الإنتاج
- قم بمطابقة اتفاقية مستوى الخدمة (SLA) الخاصة بك إما مع زمن الوصول (مناسب لـ SGL) أو الإنتاجية (مناسب لـ vLLM).
- تحقق من صحة التكميم ودعم النواة (kernel) للنموذج ووحدة معالجة الرسوميات (GPU) المحددين لديك.
- احتفظ بطبقة عميل محمولة حتى تتمكن من التوجيه إلى SGL و vLLM عن طريق نقطة النهاية.
H2: قياس أداء SGL مقابل vLLM بالطريقة الصحيحة
- قم بقياس وقت الحصول على الرمز الأول وزمن الوصول من البداية إلى النهاية في ظل أشكال حركة المرور الحقيقية.
- تتبع سعة الذاكرة المتاحة والاستقرار على مدار عمليات التشغيل متعددة الساعات.
- تجنب جوائز الرموز/الثانية ذات الرقم الواحد التي تخفي حجم الدفعة وتوزيع الطلبات.
H3: الكلمات المفتاحية الطويلة التي تهتم بها حقًا
- "زمن الوصول SGL مقابل vLLM"
- "إنشاء التعليمات البرمجية SGL مقابل vLLM"
- "نشر SGL مقابل vLLM في بيئة الإنتاج"
- "قياس أداء SGL مقابل vLLM"
- "ذاكرة وحدة معالجة الرسوميات (GPU) SGL مقابل vLLM"
الخلاصة: الإجابة الصادقة التي يمكنك استخدامها
اختر vLLM إذا كنت تريد الافتراضي الموثوق به وكان مقياسك هو الرموز لكل دولار على المدى الطويل. اختر SGL إذا كان المستخدمون بشرًا في حلقة وكان المنتج يعيش أو يموت بالسرعة المتصورة على الحواف. إذا لم تتمكن من تحديد المعسكر الذي تنتمي إليه، فأنت في معسكر vLLM افتراضيًا - وهذا جيد. والخبر السار هو أنه يمكنك تشغيل كليهما. والخبر الأفضل هو أنه يمكنك التوقف عن التظاهر بوجود بطل عالمي. المقارنة بين SGL و vLLM هي اختيار بين وجهتي نظر ذكيتين وقويتين حول "السرعة". والباقي هو عبء العمل الخاص بك، وميزانيتك، ورغبتك في التعديل.
الأسئلة الشائعة
س1: أيهما أسرع: SGL أم vLLM؟
يعتمد على ما تعنيه بكلمة "سريع". vLLM أسرع من حيث الإنتاجية الثابتة عالية التزامن؛ SGL أسرع للرمز الأول وأكثر اتساقًا في الطرف الآخر تحت الحمل المختلط والمتقطع. إذا كان مقياسك هو الرموز لكل دولار، فاختر vLLM؛ وإذا كان زمن الوصول المتصور، فاختر SGL.
س2: هل SGL أفضل من vLLM لأحمال عمل RAG؟
بالنسبة إلى RAG ذات المطالبات الضخمة والإجابات القصيرة، يمكن أن تحافظ جدولة SGL على أوقات الرمز الأول من الارتفاع. بالنسبة إلى المطالبات المتوسطة الحجم، يفوز تجميع الذاكرة في vLLM. قم بقياس أحجام مطالباتك الحقيقية قبل المراهنة بكل شيء.
س3: كيف أقوم بقياس أداء SGL مقابل vLLM بشكل عادل؟
استخدم توزيع الطلبات الحقيقي الخاص بك، وليس لعبة. قم بقياس وقت الرمز الأول p95/p99، والإنتاجية الإجمالية، والاستقرار على مدار ساعات. افصح عن النموذج، ونوع البيانات (dtype)، ووحدة معالجة الرسوميات (GPU)، وحجم الدفعة، والتزامن - وإلا فإنك تقوم فقط بتجميل الرسوم البيانية.
س4: هل يمكنني نشر كل من SGL و vLLM في نفس الحزمة (stack)؟
نعم، وربما ينبغي عليك ذلك إذا كانت أحمال العمل الخاصة بك متفاوتة. قم بتوجيه نقاط النهاية التفاعلية إلى SGL والدردشة الدفعية أو عالية الحجم إلى vLLM. احتفظ بطبقة عميل محمولة حتى لا يؤدي التبديل إلى إفساد عطلة نهاية الأسبوع.
س5: متى يكون أداء vLLM ضعيفًا مقارنة بـ SGL؟
تحت أحمال العمل المتقطعة والمختلطة حيث يكون زمن الوصول للرمز الأول مهمًا وتمنع المطالبات الطويلة المطالبات القصيرة. يمكن أن يؤدي الاستباق والجدولة في SGL إلى تسهيل هذه الأطراف. إذا كانت حركة المرور الخاصة بك متجانسة، غالبًا ما يفوز vLLM في الحالة المستقرة.