بث مباشر 18.11 · الدفعة 318 نوفمبر، 19:00 بتوقيت موسكو — ورشة عملية مجانية لوكلاء الذكاء الاصطناعي · الدفعة 3 تبدأ 23.11ورشة 18 نوفمبر ←الدفعة 3 (23.11)
إصدارتحليل · على الرادارX: @vllm_project→ المصدر

vLLM تنتقل إلى LibTorch Stable ABI: إصدارات PyTorch الجديدة لم تعد تتطلب إعادة البناء

تأتي vLLM مع نوى CUDA المُجمَّعة الخاصة بها، وكانت هذه النوى مرتبطة بشدة بإصدار محدد من PyTorch: يصدر إصدار جديد من torch فتضطر إلى إعادة بناء كل شيء. وقد نقل المشروع إضافاته إلى LibTorch Stable ABI، وهي مجموعة من الواجهات التي لا تنكسر بين الإصدارات. وبحسب الفريق، سيتمكن المستخدمون من الترقية بسرعة أكبر، بينما سيحتاج مُعدّو التوزيعات إلى إعادة بناء الحزم بوتيرة أقل.

معالج بواسطة الذكاء الاصطناعي من X: @vllm_project؛ بتحرير Hamidun News
vLLM تنتقل إلى LibTorch Stable ABI: إصدارات PyTorch الجديدة لم تعد تتطلب إعادة البناء
المصدر: X: @vllm_project. كولاج: Hamidun News.
استمع للمقال
بطاقة الحقائق والأرقام
المعيارالتفاصيل
المصدر الأصليX: @vllm_project ↗
رئيس التحرير
حقيقة رئيسية #1يحدّث المستخدمون PyTorch دون انتظار إصدار جديد من vLLM
حقيقة رئيسية #2يحتاج الموزّعون ومُعدّو الحزم إلى عدد أقل من عمليات إعادة البناء
حقيقة رئيسية #3يختبر المطوّرون التغييرات في torch دون إعادة تجميع vLLM

إذا سبق لك أن ثبّتّ vLLM في بيئة يوجد فيها أصلًا إصدار «غير مناسب» من PyTorch، فأنت تعرف هذا الشعور: يشتكي pip، ولا تتطابق ملفات wheel، وتحدّق إليك رسالة خطأ في وقت التشغيل برمز غامض من libtorch. أعلن مشروع vLLM أن الوقت قد حان لإنهاء ذلك: بفضل LibTorch Stable ABI لم يعد من المفترض أن تجبرك إصدارات PyTorch الجديدة على إعادة بناء vLLM.

تنبيه مهم: المصدر إعلان قصير على منصة X مع رابط إلى تحليل مفصّل للترحيل. لا نعيد هنا سرد تفاصيل مثل قائمة المشغّلات التي جرى نقلها والقياسات، ومن الأفضل الاطلاع عليها في مدونة الفريق نفسها. لكن الجوهر والمعنى العملي واضحان منذ الآن.

أين كانت المشكلة

vLLM ليست مجرد Python. ففي داخلها الكثير من شيفرة C++/CUDA الخاصة: نوى انتباه مخصصة، والتعامل مع ذاكرة KV المؤقتة، والتكميم، وكل ما يعصر أقصى أداء من وحدة GPU. تُجمَّع هذه الشيفرة مقابل ترويسات PyTorch وتستخدم واجهاته الداخلية بلغة C++.

المشكلة أن الواجهة الثنائية (ABI) لهذه الأجزاء الداخلية غير مضمونة بين الإصدارات. فإذا جمّعت الشيفرة لإصدار واحد من torch فستواجه مفاجأة على إصدار آخر. ومن هنا تنشأ سلسلة من المتاعب:

  • يريد المستخدم PyTorch جديدًا من أجل ميزة أو إصلاح حديث، لكن لا يوجد بعد إصدار جاهز من vLLM له؛
  • يضطر مشرفو التوزيعات والصور إلى إعادة بناء الحزم لكل تركيبة؛
  • ينتظر المطوّر الذي يتحقق مما إذا كان أحدث nightly من torch قد كسر شيئًا إعادة تجميع كاملة للإضافات.

وفي مشروع كبير ذي نوى CUDA ثقيلة تستغرق هذه العملية دقائق وساعات، بينما يزداد طابور CI طولًا.

ما الذي توفره Stable ABI

الفكرة بسيطة كعقد اتفاق. يحدد PyTorch مجموعة محدودة من واجهات C++ ويَعِد بألا تتغير ثنائيًا بين الإصدارات. فإذا لم تستخدم الإضافة سوى هذه الواجهات، عمل الناتج المُجمَّع نفسه مع إصدارات مختلفة من PyTorch. تخيّل مقبسًا كهربائيًا من نوع قياسي: لا يهم القابس ما هي ماركة العداد المركّب في المبنى.

بالنسبة إلى vLLM، ينقل هذا ترقية PyTorch من فئة «ننتظر إصدارًا وإعادة بناء» إلى فئة «حدّثنا الاعتمادية فحسب». ويحدد الفريق ثلاث مكاسب: يُحدّث المستخدمون مبكرًا، ويعيد الموزّعون البناء بوتيرة أقل، ويستطيع المطوّرون اختبار التغييرات في torch دون إعادة تجميع vLLM.

ماذا تفعل عمليًا

إذا كنت تشغّل vLLM في بيئة الإنتاج فحسب، فلا حاجة إلى تغيير أي شيء بصورة عاجلة. لكن من المفيد متابعة ملاحظات الإصدار: فعندما تصل Stable ABI إلى ملفات wheel المنشورة، ستتوافر لديك حرية أكبر في اختيار إصدار PyTorch. ويكون هذا مفيدًا بصفة خاصة إذا كانت التدريب والمعالجة اللاحقة والاستدلال تعيش في بيئة واحدة، ولكل منها متطلباته الخاصة لإصدار torch.

وإذا كنت تدعم صورًا أو حزمًا داخلية أو تفريعات (forks) خاصة بك من vLLM، فالأثر أوضح: مصفوفة بناء أصغر وعمليات إعادة بناء ليلية عاجلة أقل بعد إصدار PyTorch. وإذا كنت تكتب بنفسك إضافات C++/CUDA لـ PyTorch، فتجربة vLLM حالة جيدة للتقييم: هل يمكن وضع قاعدة شيفرتك ضمن سطح واجهة API المستقر؟

القيود

إن الـ ABI المستقرة تسوية دائمًا. فمجموعة الواجهات المضمونة أضيق من واجهة API الداخلية الكاملة، ولذلك سيتعين إما إعادة كتابة جزء من الشيفرة منخفضة المستوى أو إبقاؤه على المخطط القديم. ولا يتضح من الإعلان مدى اكتمال انتقال vLLM ولا إن بقيت استثناءات. كما أنه من غير الواضح كيف سينعكس ذلك على السرعة: عادةً لا ينبغي أن تؤثر هذه الطبقات في أداء النوى، لكن يستحق الأمر التحقق من الأرقام الواردة في التحليل.

الخلاصة: هذه ليست ميزة صاخبة، بل نظافة بنية تحتية تُزيل الاحتكاك بين مشروعين من أهم المشاريع في حزمة الاستدلال. نادرًا ما تتصدر مثل هذه الأمور العناوين، لكنها توفر على الفرق عشرات الساعات في السنة.

القصة

أسئلة وأجوبة حول الخبر

ما أبرز التفاصيل حول أين كانت المشكلة؟

vLLM ليست مجرد Python. ففي داخلها الكثير من شيفرة C++/CUDA الخاصة: نوى انتباه مخصصة، والتعامل مع ذاكرة KV المؤقتة، والتكميم، وكل ما يعصر أقصى أداء من وحدة GPU. تُجمَّع هذه الشيفرة مقابل ترويسات PyTorch وتستخدم واجهاته الداخلية بلغة C++. المشكلة أن الواجهة الثنائية (ABI) لهذه الأجزاء الداخلية غير مضمونة بين الإصدارات. فإذا جمّعت الشيفرة لإصدار واحد من torch فستواجه مفاجأة على إصدار آخر.

ما أبرز التفاصيل حول ما الذي توفره Stable ABI؟

الفكرة بسيطة كعقد اتفاق. يحدد PyTorch مجموعة محدودة من واجهات C++ ويَعِد بألا تتغير ثنائيًا بين الإصدارات. فإذا لم تستخدم الإضافة سوى هذه الواجهات، عمل الناتج المُجمَّع نفسه مع إصدارات مختلفة من PyTorch. تخيّل مقبسًا كهربائيًا من نوع قياسي: لا يهم القابس ما هي ماركة العداد المركّب في المبنى. بالنسبة إلى vLLM، ينقل هذا ترقية PyTorch من فئة «ننتظر إصدارًا وإعادة بناء» إلى فئة «حدّثنا الاعتمادية فحسب».

ما أبرز التفاصيل حول ماذا تفعل عمليًا؟

إذا كنت تشغّل vLLM في بيئة الإنتاج فحسب، فلا حاجة إلى تغيير أي شيء بصورة عاجلة. لكن من المفيد متابعة ملاحظات الإصدار: فعندما تصل Stable ABI إلى ملفات wheel المنشورة، ستتوافر لديك حرية أكبر في اختيار إصدار PyTorch. ويكون هذا مفيدًا بصفة خاصة إذا كانت التدريب والمعالجة اللاحقة والاستدلال تعيش في بيئة واحدة، ولكل منها متطلباته الخاصة لإصدار torch. وإذا كنت تدعم صورًا أو حزمًا داخلية أو تفريعات (forks) خاصة بك من vLLM، فالأثر أوضح: مصفوفة بناء أصغر وعمليات إعادة بناء ليلية عاجلة أقل بعد إصدار PyTorch.

ZK
جمال حميدون — مدير المنتجات في Alpina Digital ومدير منتج AlpinaGPT. يبني منتجات الذكاء الاصطناعي منذ 2019. بدأ Hamidun News كمشروع شخصي ثم أصبح مُجمِّعًا إنتاجيًا بأكثر من 6000 قارئ.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
ما رأيك؟
جارٍ تحميل التعليقات…