مجموعات الاستدلال: التوازي الموتري vLLM، والتوازي عبر خطوط الأنابيب، والتكلفة الفعلية لكل منهما

لا يمكن لنموذج من فئة 70 مليار أن يتسع على وحدة معالجة رسومية واحدة بأي مستوى من التكميم الذي يوفر مساحة تخزين مؤقتة مفيدة للقيم المفتاحية. كما لا يمكن لنموذج من فئة 405 مليار أن يتسع على عقدة واحدة. وبناءً على ذلك، لم يعد السؤال "أي وحدة معالجة رسومية أستخدم؟" بل "كيف أوزع النموذج على وحدات المعالجة الرسومية المتوفرة لدي، وما هي تكلفة كل عملية توزيع؟"

تتناول هذه المقالة الطرق الأربع التي تتيحها لك تقنية vLLM لتقسيم النموذج - المعالجة المتوازية للموتر، والمعالجة المتوازية للأنابيب، والمعالجة المتوازية للخبراء، والمعالجة المتوازية للبيانات - وتأثير كل منها على فاتورة النطاق الترددي، وكيفية الاختيار بينها في مجموعة أجهزة Kentino (معالج رسومات 5090 متصل بـ PCIe، وبطاقة رسومات RTX Pro 6000 Blackwell، ومعالجات L40 وL4 - بدون مكونات SXM بتقنية NVLink). وقد قرأ الجمهور هذه المقالة. I01، يعرف ما هو vLLM، ويحتاج الآن إلى اتخاذ قرارات التكوين.

الأبعاد الأربعة لقطع النموذج

كل إطار عمل للاستدلال الموزع - vLLM، SGLang، TensorRT-LLM، Triton - يعرض مزيجًا من المحاور الأربعة نفسها. إنها ليست بدائل؛ بل هي مكونات متكاملة.

محور ما يقسمه التواصل لكل رمز مميز هل هو حساس لعرض النطاق الترددي؟ تأثير زمن الوصول
موتر متوازٍ كل طبقة (شظايا ماتمول) تقليل الكل لكل طبقة (×2) نعم - ثقيل يقلل من زمن الوصول
خط الأنابيب الموازي طبقات عبر المراحل عدد التنشيطات لكل حد من حدود المرحلة لا يوجد ضوء يزيد من زمن الاستجابة، ويرفع من معدل نقل البيانات
خبير موازٍ خبراء وزارة التعليم في مجال وحدات معالجة الرسومات من الكل إلى الكل لكل طبقة من طبقات MoE نعم — متفجر يعتمد على النموذج
موازاة البيانات نسخ كاملة، مستقلة لا شيء أثناء الاستدلال لا نفس زمن الاستجابة، إنتاجية N×

العمود الثالث هو اللعبة بأكملها. يصرخ اللاعب عبر الحافلة في كل طبقة. يهمس اللاعب بين مرحلتين. هذه الحقيقة وحدها هي التي تحدد ما إذا كنت ستبقي اللاعب داخل مربع واحد، أو تدفع اللاعب عبر العقد، وأين سيقع الخط.

التوازي الموتري - كيف يعمل فعلياً

في TP، يتم تقسيم كل مصفوفة وزن في المحول (الانتباه QKV، مخرج الانتباه، FFN لأعلى، FFN لأسفل) عبر tensor_parallel_size وحدات معالجة الرسومات (GPUs). تخزن كل وحدة معالجة رسومات جزءًا واحدًا من كل طبقة وتحسب جزءًا واحدًا من كل تنشيط. نظرًا لأن الانتباه وشبكة التغذية الأمامية (FFN) تحتويان على عمليات ضرب مصفوفات تحتاج إلى بالإضافة إلى يتم إعادة تجميع التنشيط قبل العملية التالية (softmax، SwiGLU)، ويجب دمج النتائج الجزئية. يقوم vLLM بذلك باستخدام كل الحد في نهاية الانتباه وآخر في نهاية FFN - اثنان لكل كتلة محول.

يحتوي Llama 3.3 70B على 80 طبقة، منها 8192 طبقة مخفية. عند فك تشفير الدفعة 32، ينقل كل تجميع بيانات حوالي 512 كيلوبايت، أي 160 × لكل رمز مميز مُولّد → حوالي 80 ميجابايت لكل رمز مميز عبر الحافلة. عملية التعبئة المسبقة أسوأ بكثير: عملية تعبئة مسبقة بحجم 4 كيلو بايت في الدفعة 32 تدفع ما يقارب 300 جيجا بايت عبر حلقة التخفيض الكاملة بتمريرة أمامية واحدة.

هذا الرقم هو السبب TP يحب NVLinkتبلغ سرعة نقل البيانات عبر منفذ SXM H100/B200 NVLink 900 جيجابايت/ثانية. أما سرعة نقل البيانات عبر منفذ PCIe Gen 5 x16 فهي 64 جيجابايت/ثانية أحادية الاتجاه، و128 جيجابايت/ثانية ثنائية الاتجاه في أفضل الأحوال - وهو أمر نادر الحدوث على لوحة أم رباعية المعالجات الرسومية (عادةً ما تكون المسارات مشتركة، انظر...). W02تظهر الفجوة بين 14 و28 ضعفًا في الاختبارات المعيارية: حيث تصل كفاءة توسيع نطاق NVLink إلى ~0.92×/بطاقةPCIe ~0.70–0.78×/بطاقة في طرازات الفئة 70B.

النتيجة العملية: يتوسع نظام المعالجة المتوازية (TP) بشكل جيد حتى 4 وحدات معالجة رسومية (GPUs) في عقدة PCIe Gen 5 واحدة. بعد ذلك، تتجاوز تكلفة تقليل جميع العمليات (all-reduce) وفورات التوازي، لذا يُنصح باللجوء إلى المعالجة المتوازية الخطية (piple parallel) بدلاً من ذلك.

تكوين vLLM: tensor_parallel_size

--tensor-parallel-size N يُخبر المحرك بتقسيم كل موتر وزن عبر N وحدة معالجة رسومية في العقدة المحلية. القيود:

  • N يجب تقسيم عدد رؤوس الانتباه للنموذج (يحتوي Llama 70B على 64 رأسًا → N ∈ {1, 2, 4, 8, 16, 32, 64}).
  • يضع vLLM رتب TP على نفس العقدة ويفترض وجود ناقل سريع داخل العقدة.
  • يتم تقسيم ذاكرة التخزين المؤقت KV على طول بُعد الرأس - حيث تخزن كل وحدة معالجة رسومية total_heads / N قيمة الرؤوس. ارتفاع قيمة TP يمنح مساحة أكبر لـ KV لكل طلب.

على أجهزة كينتينو: يُعدّ TP=4 الخيار الأمثل في صندوق بلاكويل يحتوي على 4 بطاقات RTX 5090 أو 4 بطاقات RTX Pro 6000. يعمل TP=8، لكن ناقل PCIe يُصدر صوتًا مزعجًا؛ وعادةً ما يكون من الأفضل استخدام TP=4 × PP=2 داخل صندوق يحتوي على 8 بطاقات رسومات.

خط الأنابيب الموازي - الخيار الموجود عبر الغرفة

يقسم PP النموذج حسب العمق. مع pipeline_parallel_size=2تحتوي وحدة معالجة الرسومات 0 على الطبقات من 0 إلى 39 من شبكة لاما بحجم 70 بايت، بينما تحتوي وحدة معالجة الرسومات 1 على الطبقات من 40 إلى 79. يمر الطلب عبر وحدة معالجة الرسومات 0، و موتر التنشيط يتم إرسال البيانات إلى وحدة معالجة الرسومات 1، ثم تقوم وحدة معالجة الرسومات 1 بإنهاء عملية التمرير الأمامي.

التواصل هو أحد أشكال الموتر (batch, seq_len, hidden_size) لكل حدٍّ للمرحلة. بالنسبة للدفعة 32، والتسلسل 4096، والرقم المخفي 8192، وFP16، أي حوالي 1 جيجابايت لكل تعبئة مسبقة و حوالي 0.5 ميجابايت لكل رمز فك تشفير في الدفعة 32 — أقل بمقدار رتبتين من حيث الحجم من تقليل الكل في TP. يعمل PP بسلاسة عبر سرعة 25 جيجابت إيثرنت عادية أو حتى 10 جيجابت إيثرنت.

المقايضة هي كمونمع PP=2، ينتقل كل رمز مميز بين المراحل - أي ما يعادل ضعف وقت المعالجة لكل رمز مميز. يخفف vLLM من هذه المشكلة باستخدام التجميع الجزئي: تبدأ المرحلة 0 التجميع الجزئي التالي بينما تُنهي المرحلة 1 التجميع الجزئي الحالي. مع وجود عدد كافٍ من التزامن، تنغلق الفقاعة؛ أما مع طلب واحد وبدون تجميع، فإن PP يُصبح عبئًا على زمن الاستجابة دون أي فائدة.

تكوين vLLM: pipeline_parallel_size

--pipeline-parallel-size M يقسم النموذج حسب الطبقات عبر M مجموعة. إجمالي وحدات معالجة الرسومات = tensor_parallel_size × pipeline_parallel_sizeإرشادات المستندات:

  • عقدة واحدة، ≤ 8 وحدات معالجة رسومية، النموذج مناسب لـ: TP نقي, pipeline_parallel_size=1.
  • متعدد العقد: TP داخل العقدة، PP عبر العقد. مجموعة مكونة من عقدتين و8 وحدات معالجة رسومية تعمل بـ TP=4 وPP=2.
  • لا يؤثر عدد وحدات معالجة الرسومات (GPU) على عدد الرؤوس بشكل دقيق: اضبط TP=1، وPP=وحدات معالجة الرسومات. لا يعتمد PP على عدد الرؤوس. (يمكن لجهاز مزود بخمس وحدات معالجة رسومات - حيث تم تخصيص فتحة واحدة لبطاقة الشبكة - تشغيل Llama فقط عبر PP=5).

خدمة الخبراء الموازية - لوزارة التعليم فقط

لا تُفعّل نماذج MoE (مثل DeepSeek-V3 وMixtral وQwen-MoE) جميع المعلمات على كل رمز. فهي تحتوي على طبقات FFN موجهة حيث يتم تشغيل مجموعة فرعية صغيرة فقط من "الخبراء" لكل رمز؛ وتبقى طبقات الانتباه الكثيفة كثيفة.

الخبير الموازي (EP) خبراء التجزئة عبر وحدات معالجة الرسومات مع الحفاظ على الطبقات الكثيفة تحت طبقة TP أو DP. مع --enable-expert-parallelتتحول طبقات الخبراء من النسخ المتماثل إلى التقسيم، حيث يوجد خبير واحد أو عدد قليل من الخبراء لكل وحدة معالجة رسومية. نمط الاتصال هو من الجميع إلى الجميع لكل طبقة من طبقات MoE: يتم توجيه الرموز إلى وحدة معالجة الرسومات التي تمتلك الخبير المستهدف، ثم يتم حسابها وإعادتها.

تتميز تقنية EP بنطاق ترددي واسع. فهي تجعل نماذج MoE الكبيرة قابلة للتنفيذ على مجموعات PCIe - بينما يُعدّ استخدام TP الكامل على نموذج 671B نشطًا أمرًا مستحيلاً. بالنسبة لتطبيقات Kentino، تُعدّ تقنية EP ذات صلة فقط بنماذج DeepSeek-V3؛ أما نماذج Llama 70B الكثيفة فلا تستفيد منها. وتُعتبر تقنية EP المدمجة في vLLM بالإضافة إلى إصدار حديث نقطة الدخول الافتراضية.

البيانات المتوازية - المحور الممل والرائع

يُعدّ محور DP أسهل محاور التحجيم، وهو المحور الذي لا تستخدمه معظم المنشآت بشكل كافٍ. تقوم بتشغيله عدد N من النسخ المتطابقة لكل نسخة من النموذج مجموعة خاصة بها من وحدات معالجة الرسومات (قد تستخدم كل مجموعة منها تقنية المعالجة المتوازية و/أو المعالجة المتعددة). يقوم موازن الأحمال بتوزيع الطلبات على النسخة التي لديها سعة كافية.

ما يقدمه برنامج DP:

  • زيادة الإنتاجية الخطية (N× طلبات/ثانية).
  • لا يوجد أي اتصال بين النسخ المتماثلة أثناء الاستدلال.
  • ذاكرة تخزين مؤقتة مستقلة للمفتاح والقيمة لكل نسخة (ذاكرة التخزين المؤقتة للبادئة خاصة بكل نسخة).
  • عزل الأعطال البسيطة.

ما هي تكاليف DP؟

  • N× ذاكرة وحدة معالجة الرسومات - كل نسخة تحتوي على النموذج الكامل.
  • لا يوجد تقليل في زمن الاستجابة. يستغرق الطلب الواحد كل ما يتطلبه الأمر على نسخة واحدة.

إذا كان لديك جهاز مزود بأربع بطاقات RTX Pro 6000، وكان جهاز Llama 70B متوافقًا مع TP=4، فإن إضافة جهاز آخر مزود بأربع بطاقات RTX Pro 6000 يوفر DP=2 × TP=4، أي ضعف الإنتاجية مع الحفاظ على نفس زمن الاستجابة لكل طلب. يُعد هذا الخيار الأمثل لأحمال العمل الخاصة بالمحادثات، والوكلاء، وRAG. --data-parallel-size العلم (والأحدث) data_parallel_deployment يقوم الوضع بتشغيل وإدارة النسخ المتماثلة. يُعدّ DP الطريقة الأمثل للتوسع لأكثر من جهاز واحد.

الجمع بين المحاور - القاعدة العامة

يناسب وحدة معالجة رسومات واحدة
TP=1، التوسع عبر نسخ DP
يناسب عقدة واحدة (≤4 ​​وحدات معالجة رسومات PCIe)
TP عبر العقدة، DP عبر العقد
لا يتناسب مع عقدة واحدة
TP داخل كل عقدة، PP عبر العقد، DP في الأعلى

اختيار المحور: ابدأ بأصغر توازي مناسب، ثم أضف DP قبل PP.

مثال عملي. خدمة Llama 3.3 70B (FP8 ≈ 75 GB weights, plus KV) بتزامن عالٍ:

  • صندوق Blackwell 4× RTX Pro 6000 (4 × 96 جيجابايت = 384 جيجابايت) يشغله بشكل مريح تحت TP=4، مع بقاء حوالي 250 جيجابايت لـ KV وذاكرة التخزين المؤقت للبادئة ورسومات CUDA.
  • أضف جهاز Pro 6000 ثانيًا (4×). DP=2 × TP=4. نسختان متماثلتان خلف جهاز توجيه. تضاعفت الإنتاجية، مع بقاء زمن الاستجابة كما هو.
  • هل يدعم Llama 3.1 405B بسرعة FP8 (بأوزان تقارب 400 جيجابايت)؟ لا يمكن استخدام جهاز Pro 6000 واحد (4×) فقط. يمكن استخدام جهازين عبر PP=2 × TP=4، مع العلم أن وصلة الربط بين العقدتين تنقل عمليات التنشيط، وليس تقليل الكل. سرعة 25 جيجابت إيثرنت كافية، وسرعة 100 جيجابت إيثرنت مناسبة.

مخبأ KV: الجزء الذي يستهين به الجميع

ذاكرة التخزين المؤقت للمفتاح/القيمة هي عبارة عن موترات المفتاح/القيمة التراكمية للانتباه لكل رمز مميز، وكل رمز مميز مُولّد، وكل طلب متزامن، وكل طبقة. وتنمو هذه الذاكرة خطيًا مع طول السياق والتزامن. يحتاج نظام Llama 70B مع 8 آلاف سياق إلى ما يقارب 2.5 جيجابايت من ذاكرة التخزين المؤقت KV لكل طلب في FP16. عند 32 طلبًا متزامنًا، فإن ذلك يصل إلى 80 جيجابايت - أكثر من ذاكرة الوصول العشوائي للفيديو (VRAM) الكاملة لجهاز 5090.

كيف يتفاعل التوازي مع KV:

  • تحت TPيتم توزيع قيمة KV بواسطة رأس الانتباه عبر مجموعة TP. قيمة KV لكل وحدة معالجة رسومية = total / tensor_parallel_sizeارتفاع معدل نقل البيانات (TP) ← زيادة المساحة المتاحة للطلبات المتزامنة.
  • بموجب برنامج الشراكةتبقى قيمة المفتاح (KV) على وحدة معالجة الرسومات (GPU) محتفظةً بالطبقة التي أنتجتها. كل مرحلة تمتلك قيمة المفتاح الخاصة بها.
  • في إطار برنامج التنمية، KV مستقل تمامًا لكل نسخة.
  • في سياق موازي (نمط vLLM أحدث)، يتم تقسيم KV على طول تسلسل البعد — مفيد لسياقات الطلب الواحد الطويلة جدًا.

عند تحديد حجم الصندوق، لا تكتفِ بالتحقق مما إذا كان الأوزان قم بتشغيل حسابات KV عند مستوى التزامن المستهدف ونافذة السياق. يُعدّ فشل المحرك الصامت الأكثر شيوعًا في بيئة الإنتاج vLLM هو مقاطعة الطلبات تحت ضغط KV.

توجيه الطلبات - ما يقع أمام المجموعة

تتولى نسخة واحدة من vLLM معالجة عمليات التجميع الداخلية الخاصة بها (التجميع المستمر، وتخزين البادئات مؤقتًا، والجدولة). وهي لا تقوم بالتوجيه عبر النسخ المتماثلة، فهذه مهمة الموجه.

راوتر الاجتماعي متى يتم استخدامه
NGINX العادي لا شيء (بالتناوب) عمليات النشر بنموذج واحد، البساطة هي سر النجاح
HAProxy لا شيء + فحص صحي متعدد النماذج، موجه بالرأس
موجّه vLLM (راست) KV / بادئة / قائمة انتظار في حالة وجود 4 نسخ متماثلة أو أكثر، فإن التوجيه المُراعي للبادئة أمر مهم.
llm-d (Kubernetes) كل ما سبق + EP أساطيل K8s، MoE، التعبئة المسبقة/فك التشفير، التفكيك

يُعد NGINX الخيار الافتراضي الأمثل لتثبيت بنسختين متماثلتين - التوزيع الدوري، وفحوصات السلامة على /healthتمّ الأمر. يُعدّ موجّه vLLM (المكتوب بلغة Rust، والذي سيصدر أواخر عام 2025) الخيار الأمثل عندما يصبح معدل نجاح ذاكرة التخزين المؤقت للبادئة هو العامل المهيمن على زمن الاستجابة النهائي: فهو يوجّه الطلبات بناءً على تجزئة متسقة لبادئة الموجّه، ما يضمن استمرار حصول النسخ المتماثلة المُخزّنة في ذاكرة التخزين المؤقت على نفس المحادثات. بالنسبة لأحمال عمل الوكيل التي تتضمن موجّهات نظام مشتركة طويلة، يمكن لهذا أن يضاعف الإنتاجية الفعّالة مقارنةً بالتوزيع الدوري.

حسابات عرض النطاق الترددي

المراجع المتقاطعة: N02, N06.

عبء العمل عرض النطاق الترددي المطلوب رابط كينتينو الواقعي
TP=4 داخل صندوق واحد (PCIe Gen 5) 50-200 جيجابايت/ثانية لكل زوج PCIe داخل العقدة
معالجة البيانات عبر عقدتين، الدفعة 32، فك التشفير 0.05–0.2 جيجابايت/ثانية 10 جيجابت إيثرنت — مريح
معالجة مسبقة عبر عقدتين، دفعة 32، تعبئة مسبقة معدل نقل بيانات يتراوح بين 1 و 4 جيجابايت/ثانية 25 جيجا بايت مريحة، 10 جيجا بايت هامشية
البرمجة الديناميكية عبر عقدتين ~0 (للموجّه فقط) غرامة إدارية بقيمة 1 جيجابت إيثرنت
معالجة الطاقة عبر 8 وحدات معالجة رسومية في صندوق واحد (MoE) 20-80 جيجابايت/ثانية متقطعة داخل العقدة فقط
نطاق EP عبر عقدتين (فئة DeepSeek-V3) معدل نقل بيانات مستدام يتراوح بين 10 و40 جيجابايت/ثانية 100 جيجابت إيثرنت RoCE أو InfiniBand

قراءة صادقة: تي بي وإي بي يريدان البقاء داخل صندوقلا يهم PP وDP. مع وصلة بين العقد بسرعة 10-25 جيجابت إيثرنت، يكون PP وDP مناسبين. لكن عندما تحتاج إلى TP بين العقد، ستدفع مقابل InfiniBand HDR أو 200 جيجابت إيثرنت RoCE - ويجب عليك أولاً أن تسأل نفسك ما إذا كان DP عبر مجموعات TP أحادية العقدة يحقق لك نفس النتيجة بعُشر الميزانية. بالنسبة لمعظم عمليات النشر بحجم Kentino، فإنه يحقق ذلك.

وصفتان عمليتان للتكوين

الوصفة أ - عقدة واحدة، 4 × RTX 5090، لاما 70B Q4 / FP8

المواصفات التقنية: جهاز K-AI 256 Turin Dual أو أي جهاز 5090 بأربعة معالجات رسوميات. يدعم PCIe Gen 5، بدون NVLink، ومعالج AMD EPYC.

vllm serve meta-llama/Llama-3.3-70B-Instruct-FP8 \
  --tensor-parallel-size 4 \
  --pipeline-parallel-size 1 \
  --max-model-len 8192 \
  --gpu-memory-utilization 0.92 \
  --enable-prefix-caching \
  --max-num-seqs 64 \
  --dtype auto \
  --port 8000

المتوقع: حوالي 30-40 توكو/ثانية لكل طلب عند التزامن المنخفض، وإجمالي حوالي 400-600 توكو/ثانية عند 32 عملية متزامنة (يختلف باختلاف مزيج الموجه، ومعدل نجاح ذاكرة التخزين المؤقت للبادئة، والكمية الدقيقة - اعتبرها نطاقًا أوليًا). يُعدّ PCIe Gen 5 all-reduce هو عنق الزجاجة في فك التشفير؛ ويتناسب التعبئة المسبقة طرديًا تقريبًا.

الوصفة ب - عقدتان، 8 × RTX Pro 6000 Blackwell إجمالاً، Llama 405B FP8

صندوقان من نوع K-AI، كل منهما مزود بأربعة أقراص Pro 6000 (سعة 96 جيجابايت). وصلة RoCE بسرعة 100 جيجابت إيثرنت بينهما، أو 25 جيجابت إيثرنت في حال محدودية الميزانية (سيعملان، لكن مع تحميل مسبق أبطأ قليلاً).

# Node 0 (head):
vllm serve meta-llama/Llama-3.1-405B-Instruct-FP8 \
  --tensor-parallel-size 4 \
  --pipeline-parallel-size 2 \
  --distributed-executor-backend ray \
  --max-model-len 8192 \
  --gpu-memory-utilization 0.90 \
  --enable-prefix-caching \
  --max-num-seqs 32

# Node 1 (worker, joined via Ray):
ray start --address=<head-ip>:6379

يستخدم TP=4 داخل كل عقدة PCIe Gen 5 لجميع عمليات الاختزال. بينما يقوم PP=2 عبر العقد بتوزيع عمليات التنشيط عبر 25/100 جيجابت إيثرنت. مع استخدام Ray كخادم خلفي موزع (وهو الإعداد الافتراضي لـ vLLM في الأنظمة متعددة العقد)، يقوم رأس النظام بتنسيق الجدولة وحالة KV.

تقييم أداء صادق: يُحقق جهاز 405B بسرعة FP8 عبر 8 وحدات Pro 6000 باستخدام PCIe + Ethernet معدل نقل بيانات يتراوح بين 6 و12 رمزًا/ثانية لكل طلب، وهو أقل بكثير من هيكل 8 وحدات SXM B200، وبتكلفة رأسمالية أقل بكثير، ودون مشكلة إمداد SXM. إذا كان مستوى الخدمة المتفق عليه هو "الرد خلال 30 ثانية لإتمام عملية بقيمة 500 رمز"، فهو مناسب. أما إذا كان "الرد خلال ثانيتين"، فلا تستخدم جهاز 405B، بل استخدم جهاز 70B.

ما لا نقوم بتشغيله

NVLink وNVSwitch وSXM B200 ولوحات HGX الكاملة: ليست ضمن تشكيلة Kentino. تُعدّ هذه الخيارات مناسبةً إذا توفرت لديك الميزانية الكافية وحجم العمل المطلوب. لكنها ليست الخيار الأمثل لمعظم عملائنا، الذين يحتاجون إلى حجم مناسب لـ 1-4 عمليات سير عمل متزامنة لوكيل واحد أو منصة روبوت واحدة، وليس لـ 1000 مستخدم في مجال استدلال SaaS. يُوضح مسار PCIe إمكانياته وحدوده بوضوح. أما زمن استجابة أقل من 10 مللي ثانية لكل رمز مميز عبر 16 وحدة معالجة رسومية فهو موضوع آخر، وليس محور هذه المقالة.

ماذا تفعل بعد ذلك

إذا كنت تقوم بتجميع مجموعة vLLM، فاعمل على هذه الخطوات بالترتيب التالي:

  1. دوّن النموذج واتفاقية مستوى الخدمة (SLA). عدد المعاملات، والتكميم، والتكلفة المستهدفة لكل طلب (بالعملات الرقمية في الثانية)، والطلبات المتزامنة المستهدفة، ونافذة السياق المستهدفة. بدون هذه الأرقام، يصبح اختيار التوازي مجرد تخمين.
  2. احسب الأوزان + KV عند التزامن المستهدف. إذا تجاوزت قيمة KV وحدها سعة ذاكرة الوصول العشوائي للفيديو (VRAM) الاحتياطية لوحدة معالجة الرسومات (GPU)، فأنت بحاجة إلى TP. وإذا تجاوزت الأوزان عقدة واحدة، فأنت بحاجة إلى PP.
  3. ابدأ بأصغر ورق تواليت يناسب المكان. TP=2 قبل TP=4 قبل TP=8. كل خطوة للأعلى تفقد كفاءة التوسع على PCIe.
  4. أضف DP لزيادة الإنتاجية قبل إضافة PP. يتفوق استخدام عقدتين عبر بروتوكول DP دائمًا تقريبًا على استخدام عقدة واحدة مقسمة عبر بروتوكول PP بالنسبة لأحمال العمل الحساسة لزمن الاستجابة.
  5. احتفظ بـ PP لحالة عدم ملاءمة النموذج أو لتغطية عدد من العقد لا يمكن لـ TP تقسيمه بشكل نظيف.
  6. ضع جهاز توجيه في المقدمة، حتى مع وجود نسختين متماثلتين. يُعد استخدام Round-robin NGINX كافيًا للبدء؛ قم بالترقية إلى vLLM Router عندما يكون معدل نجاح ذاكرة التخزين المؤقت للبادئة مهمًا.
  7. قم بمراقبة استخدام KV، وليس فقط استخدام وحدة معالجة الرسومات (GPU). مجموعة حاسوبية تستخدم 95% من موارد وحدة معالجة الرسومات و100% من موارد مفتاح القيمة تقوم برفض الطلبات. لوحة التحكم التي تريدها هي vllm_kv_cache_usage_perc متأخر , بعد فوات الوقت.

متابعة في هذا المسار: تخزين المجموعات (كيه04 ، الجدولة (كيه05 معالجة الأعطال (كيه06 ) وسقف PCIe كوصلة بينية (كيه07 يتم شرح معادلات الشبكات بالتفصيل في N02 و N06.


هذا جزء من ويكي كينتينو، وهي سلسلة مرجعية حول الحوسبة الذكية، والروبوتات، والأنظمة التي تربط بينهما. نرحب بالتعليقات والتصويبات على info@kentino.com.