بطاقة عنوان لـ vLLM PR #61018، مُوسومة بـ UNVERIFIED — PR مسودة، غير مدموج، بعنوان رئيسي "3 أسطر ليتمكن Qwen4Exp من أخذ عينات مُقسّمة" مع شرائح للمستودع المصدر، وتاريخ الفتح 2026-10-10، وحالة المسودة المفتوحة.
Guides & Insights

أخذ العينات المُجزَّأ بالدفعات في Qwen4Exp: داخل vLLM PR #61018، وما يقوله عن Qwen 4

الكاتب

Gideon Frost

تاريخ النشر

أحدث النماذج · 20عرض جميع النماذج →
المعايير: Artificial Analysis · يُحدَّث يوميًا
العودة إلى جميع المقالات

الرقم الأكثر إفادة في طلب السحب vLLM رقم 61018 هو خسارة: 1.5%. هذا هو الحد الأعلى الذي يضعه المؤلف على تغييره الخاص — نحو 0.6 إلى 0.8 مللي ثانية موفّرة من متوسط خطوة قدره 42 مللي ثانية، مقيسة على جهاز لا يملكه، في تصحيح لا يستطيع تشغيله على الإطلاق. طلب السحب، المعنون «[Model] Qwen4Exp: دعم أخذ العينات المجزّأ بالدفعات (compute_logits_local)» والذي فُتح في 2026-10-10 من قبل المساهم kimseunghyun-kr، يضيف ثلاثة أسطر من كود النموذج إلى ملفين كي تتمكن معمارية Qwen4Exp من اتباع مسار أخذ عينات طرحته vLLM في أغسطس. إنه مسودة. وهو 14 سطرًا من كود النموذج زائد 57 سطرًا من الاختبارات. ومع ذلك يستحق القراءة عن كثب على أي حال، بسبب ما تُرقّعه تلك الأسطر الثلاثة فوقه: Qwen4Exp هي المعمارية الموجودة داخل Qwen3.8-Flash-Next، النموذج المفتوح الأوزان ذو الـ125 مليار معامل الذي نشرته الجهة الموردة في 2026-08-24 بوصفه «معاينة تجريبية للمعمارية التي سيرتكز عليها Qwen4» — وعلة مسارين في النصف الخاص بالنص فقط من تلك المعمارية هي بالضبط نوع التفصيل الذي لا تتعلمه إلا بمراقبة طبقة الخدمة بدلًا من منشور الإطلاق.

لإزالة أي غموض بشأن التأطير، لأن ذلك يهم هنا: Qwen 4 نفسه لم يُطرح بعد. أعلن المورّد عن أربع فئات لـ Qwen 4 — Qwen 4 Max وFlash وPlus و27B — في مؤتمر Apsara الخاص به في 2026-09-22، ولم ينشر أي أوزان، ولا معرّفًا، ولا سعرًا، ولا طول سياق، ولا معيار أداء لأي منها. لا شيء مما يلي يُعد إصدارًا. هذا بيان لما نعرفه حتى الآن عن طلب سحب مسودة واحد، وكل ما فيه يحمل رقمًا هو إما طابع زمني يمكنك التحقق منه، أو رقم أدخله المساهم في متن طلب السحب الخاص به، أو قيمة مقروءة من ملف تكوين نموذج عام.

ما المقصود بأخذ العينات المجزّأ على دفعات، في فقرة واحدة.

يقسّم التوازي الموتر أوزان النموذج عبر وحدات معالجة الرسوميات (GPUs)؛ إذ يُعدّ إسقاط المفردات أوسع موتر منفرد في المكدّس، لذا عادةً ما تحسب كل رتبة شريحتها الخاصة فقط من المفردات — ثم تُجري كل رتبة عملية all-gather، بحيث ينتهي بها الأمر إلى حمل اللوجيتات الكاملة لكل طلب في الدفعة. يعكس أخذ العينات المجزّأ هذا التبادل. وبدلاً من نسخ المفردات عبر الرتب، فإنه يجزّئ الدفعة: تأخذ كل رتبة عيّنة من شريحة واحدة من الطلبات، وتتبادل الرتب شرائح المفردات فيما بينها عبر all-to-all. تصف وثائق سطر أوامر vLLM الخاصة بهذا العلم الأمر بوضوح — "تأخذ كل رتبة عيّنة من شريحة من الدفعة بدلاً من أن تأخذ كل رتبة عيّنة من كلها" — وتذكر القيود: --enable-batch-sharded-sampling قيمته الافتراضية False، ويتطلب tensor_parallel_size أكبر من 1، وعلى الأقل tensor_parallel_size تسلسلًا كحد أقصى، وقيمة غير سالبة لـ max_logprobs. السطر الأخير من تلك الوثائق هو الخطاف الذي يتعلق به طلب السحب هذا: "تشارك النماذج اختياريًا عبر تنفيذ compute_logits_local."

الميزة نفسها ليست جديدة. دمجها vLLM كطلب سحب PR #50465 — "[Model Runner V2] batch-sharded sample"، بقلم جيانكارلو دلفين — في 2026-08-24، وهو اليوم نفسه الذي رُفعت فيه أوزان Qwen3.8-Flash-Next. كان الدافع هناك هو الذاكرة وزمن الاستجابة: إذ إن إنتاج اللوجيتات الهدف الكاملة يكلّف في حدود حجم الدفعة × (الرموز التخمينية + 1) × حجم المفردات، ويقلّص التقسيم هذا التخصيص بمعامل يساوي درجة التوازي التنسوري، مع السماح لأعمال top-k وtop-p الخاصة بالمُعيّن بأن تعمل على التوازي. إنها الخطوة الممكِّنة، لا الوجهة: فنص طلب السحب نفسه يشير إلى لوجيتات المسودة المُقسَّمة كعمل مستقبلي.

لماذا كانت ثلاثة أسطر هي المهمة بأكملها؟

GitHub page for vllm-project/vllm pull request 61018, titled "[Model] Qwen4Exp: support batch-sharded sampling (compute_logits_local)", showing the Draft badge, a three-file diff with 71 additions, the qwen label and the PR body.

إليك الخلل الفعلي، وهو خلل جيد لأنه غير مرئي من خارج الشيفرة. تُشحن تطبيقة Qwen4Exp في vLLM على هيئة صنفين.Qwen4ExpForConditionalGeneration هو غلاف الرؤية واللغة — برج رؤية Qwen3-VL مثبَّت على نموذج اللغة — وQwen4ExpForCausalLM هو المسار النصي فقط. يرث الغلاف compute_logits_local من Qwen3_5ForConditionalGeneration، الذي يمرّر الاستدعاء إلى language_model.compute_logits_local. لكن صنف نموذج اللغة الذي كان الغلاف يشير إليه لم يعرّف تلك الدالة قط.

إذًا كان المساران في حالتين مختلفتين. كان بإمكان نشر Qwen3.8-Flash-Next للرؤية واللغة أن يسلك المسار المُجزّأ؛ أما النصي فقط فلم يكن بوسعه ذلك، لأن الدالة التي فوّض إليها الغلاف لم تكن موجودة. الإصلاح هو دالة واحدة، متطابقة في نسختي NVIDIA و AMD من ملف النموذج:

• تُعيد الدالة self.logits_processor(self.lm_head, hidden_states, skip_gather=True) — شريحة المفردات الخاصة بالرتبة نفسها، دون أي تجميع ودون إنشاء كامل المفردات على أي رتبة.

يتبع هذا ما يسميه طلب السحب «النمط نفسه المكوّن من ٣ أسطر كما في Qwen3.5 وMiniMax M3»، وهو أمر يستحق التوقف عنده: فعائلتان نموذجيتان أخريان في المستودع نفسه كانتا قد اختارتا الانضمام بالفعل. لم تكن Qwen4Exp سوى العائلة التي لم تفعل ذلك.

ملف الاختبار هو الموضع الذي يسهل فيه التحقق من صدق التصحيح، والذي يسهل فيه رؤية حدوده. فهو يتكوّن من 57 سطرًا، وهو مُعامَل على وحدتَي NVIDIA وAMD، ولا يُنزّل أي نموذج. تبني الدالة المساعدة الفئة باستخدام object.__new__، وتستبدل nn.Identityبرأس نموذج اللغة، وتُثبّت معالج logits وهميًا يعيد مدخله زائد واحد بينما يسجّل كيفية استدعائه. يؤكد الاختبار الأول أن 4.0 عند الدخول يخرج 5.0، وأن الاستدعاء المسجَّل حمل skip_gather=True. ويلف الاختبار الثاني نموذج اللغة في فئة التوليد الشرطي ويؤكد أن التفويض يصل إلى هدفه. هذا اختبار حقيقي للربط واختبار لا شيء آخر — فلا تُشغَّل أي نواة، ولا يُعبَر أي حد رتبة، وعدد وحدات GPU المشاركة صفر.

كلا هاتين الحقيقتين مذكورتان في PR بدلاً من أن تكونا مطمورتين. يصف المستند النصي لملف الاختبار نفسه Qwen4Exp بأنه "بديل اختباري صغير يعمل على CPU فقط". ويشير قسم التحقق الخاص بالمؤلف إلى أنه لم يستطع استيراد النموذج على إعداد macOS الخاص به على الإطلاق، لأن transformers التي كانت لديه لم تكن تتضمن Qwen4ExpConfig. كان تشغيل CUDA لا يزال معلقاً. كان المعيار الشامل من طرف إلى طرف — مجموعة بيانات MLPerf الوكيلية، و20 جلسة متزامنة، وثلاثة أذرع مدة كل منها 60 دقيقة — لا يزال معلقاً. يُشار إلى مسار logits الخاص بمُدَرِّب MTP بأنه غير مُتحقق منه. تم رفض LoRA بالفعل بواسطة العلامة في المنبع، لذا فهو خارج النطاق بدلاً من أن يكون انحداراً. وهناك أيضاً سطر يكشف أن المسودة كُتبت بمساعدة الذكاء الاصطناعي، ويذكر ذيل الالتزام Claude Opus 5.5 كمؤلف مشارك، وهو نوع الإفصاح الذي ينبغي أن يكون طبيعياً في مكدس بهذا الحجم، وفي الغالب لا يكون كذلك.

تقدير 1.5%، والقياسات التي يقع بجانبها

تقدير المساهم هو nsys تتبع عند 16 جلسة متزامنة على Qwen3.8-Flash-Next-FP8 مع توازي الموترات 8 وتوازي الخبراء عبر ثماني بطاقات A100-SXM4-40GB: حوالي 1.6 مللي ثانية من خطوة مدتها 42 مللي ثانية، مقلّصة إلى نحو الثلث من ذلك، لتحقيق مكسب من البداية إلى النهاية بنسبة 1.5 إلى 2%. عنوانه الرئيسي هو الحساب — 0.6 إلى 0.8 مللي ثانية على 42 مللي ثانية. لاحظ ما يرتبط بذلك: 42 مللي ثانية هو رقم زمن الوصول بين الرموز، لذا فإن خفضًا بنسبة 1.7% هو خفض بنسبة 1.7% في زمن توليد الرموز، وليس ادعاءً بمعدل النقل على نحو مجرد.

المقارنة الصادقة تكون مقابل أرقام الميزة الأصلية المدمجة نفسها، لأن تلك قيست من البداية إلى النهاية بواسطة شخص يمتلك العتاد. في تشغيلات Speed-Bench 2K/2K المنشورة في PR #50465، نقل أخذ العينات المقسم إلى دفعات DeepSeek V4 مع DSpark عند 7 رموز تخمينية وتزامن 64 من 2.62 إلى 2.66 طلبًا في الثانية — أي زيادة في الإنتاجية بنسبة 1.53% — مع انخفاض وسيط الكمون بين الرموز بنسبة 3.09% وارتفاع زمن أول رمز بنسبة 1.45%. على MiniMax M3 مع DSpark عند 8 رموز تخمينية، ارتفعت إنتاجية الطلبات بنسبة 5.38% وانخفض وسيط TPOT بنسبة 8.33% من 15.61 إلى 14.31 مللي ثانية. وتوثق الخطة نفسها حيث لا يفيد: عند تزامن 4 إلى 16 جاءت التشغيلات ثابتة إلى سلبية قليلًا، مع انخفاض فرع التزامن 16 بنسبة 0.54% في الإنتاجية و1.89% في طول القبول.

هذا النمط هو ما ينبغي أن يبقى معك. يُجدي أخذ العينات المُجزّأ عندما يكون أخذ العينات كثيفًا والدفعة واسعة — تزامن عالٍ، ورموز تخمينية كثيرة، وtop-k وtop-p يقومان بعمل فعلي — ويكلّف قليلًا عندما تكون الدفعة صغيرة بما يكفي ليكون الاتصال من الكل إلى الكل مجرد حِمل إضافي محض. تقدير بنسبة 1.5% لنموذج واحد يختار الانضمام متسق مع ذلك، وليس متعارضًا معه: فالأرقام 5.38% و8.33% تخص نماذج مختلفة ذات ميزانيات تخمينية مختلفة، والنموذج في هذا PR له تكوينه الخاص، ومفرداته الخاصة البالغة 248,320 رمزًا، ومسار الفك التخميني الخاص به.

لا شيء من ذلك مُدقَّق. أرقام طلب السحب الأصلي هي تشغيلات مقترنة لمساهم واحد على عقدة واحدة؛ أما أرقام اختبار الدخان هنا فهي أثر على عتاد لا يملكه المؤلف، من مراجعة للتصحيح يقول إنها قيست في 16 جلسة فقط. القياس الذي يقوم به مساهم واحد بإعداد واحد إشارة مفيدة بشأن الاتجاه وأساس ضعيف لخطة سعة. السبب في أن الموضوع يستحق الكتابة عنه أصلًا هو الاتجاه، لا الرقم العشري.

ما تقوله مجموعة التصحيحات المحيطة عن Qwen4Exp

لن تكون مسودة PR واحدة قصة. القصة هي أن Qwen4Exp أصبح هدفًا مستمرًا للخدمة في الأسبوع الذي نزل فيه هذا، وأصغر رقعة في تلك المجموعة هي التي تجعل النمط مقروءًا. في الأيام السبعة حتى 2026-10-10، حمل vLLM، من نفس المساهم وآخرين: مسار ذاكرة KV رئيسي FP8 للانتباه المتناثر على Ampere، مع سعة KV مرتفعة بمقدار 1.83× على ثماني A100s و1.87× على أربع RTX 3090s وحوالي 2.7× من الطلبات عند التزامن 16، بتكلفة ارتفاع TPOT لفك التشفير أحادي المسار بنحو 6%؛ إصلاح لحشو W4A4 MoE عند التوازي التنسوري 1 وتوازي الخبراء؛ مسار AMD يتراجع عن عمليات AITER FP8 MoE غير المدعومة ويخدم بـ fp16؛ إصلاح يحمل حالة الالتفاف القصير PLE عبر وضع align؛ ونواة فك تشفير تفك حزم بايتات e4m3 أربعًا في المرة لكل سجل على sm_80. أحدها، إعادة ضبط لخطة QSA LL-GEMM المدمجة H200 M=4، دُمج في main في 2026-10-09.

اقرأ تلك القائمة كوحدة واحدة، وستقول شيئًا ملموسًا. إن معمارية Qwen4Exp — تلك التي لم يُصدرها المورّد — تُضبط لـ Ampere وHopper وROCm وfp16 fallback في الوقت نفسه، في مشروع يوفّر دعمًا من اليوم الأول لنماذج يستطيع الناس تنزيلها فعليًا. والسبب ليس غامضًا: Qwen3.8-Flash-Next نموذج حقيقي، قابل للتنزيل، وكثير الاستخدام، وهو مبنيّ على المعمارية التي سيستخدمها Qwen 4. أما ما إذا كانت أوزان Qwen 4 ستصل يومًا بهذا الشكل فهذا غير معروف، ولم يقل المورّد شيئًا، لكن غلاف الخدمة يجري توسيعه علنًا، وهذه معلومة قابلة للتحقق بطريقة لا تكون بها نافذة أكتوبر إلى نوفمبر المُشاعَة كذلك.

بعض الشكل المعماري عام أيضًا، لأي شخص يقرأ التهيئة بدلًا من الإعلان. تسرد تهيئة Qwen3.8-Flash-Next مفردات من 248,320 رمزًا عبر 48 طبقة، و512 خبيرًا مع 10 موجّهين بالإضافة إلى خبير مشترك نشط واحد لكل رمز عند عرض وسيط للخبير قدره 640، وحجم مخفي قدره 2,560، وسياق أصلي من 262,144 رمزًا موصوف بأنه قابل للتوسعة إلى مليون. إنه هجين: تناوب قائمة أنواع الطبقات بين ثلاث كتل انتباه خطي وكتلة انتباه كامل واحدة، وتستخدم كتل الانتباه الكامل مسار الانتباه المتناثر مع مفهرس أحادي الرأس يضغط المفاتيح بمعامل أربعة ويحافظ على ميزانية قدرها 2,048 موضعًا. يوجد جدول تضمين لكل طبقة عند الطبقة 2، وتضمين n-gram بمفردات من 20 مليون مدخل — وهذا هو الجدول بحجم 47.7 GiB الذي تنشغل التصحيحات الأخرى في هذا العنقود بنقله إلى المضيف — ورأس MTP من طبقة واحدة لفك التشفير التخميني. ملخص بطاقة النموذج نفسه هو "125B مع تفعيل 6B، بالإضافة إلى تضمين n-gram بحجم 51B وMTP بحجم 4B." مفردات من 248,320 مدخلًا هي السبب في أن إسقاط logits يستحق التجزئة من الأساس.

ما لا يغيّره هذا بالنسبة لك

يستحق الأمر الدقة، لأن مجموعة ترقيعات بهذه الكثافة قد تُقرأ وكأنها إطلاق. لم يُدمج أيٌّ ممّا سبق، وجزء منه — عمل ذاكرة KV بتنسيق FP8 على Ampere — غير مُتحقَّق منه صراحةً في CI لأن CI الخاص بـ vLLM لا يملك A100. لا توجد نسخة vLLM مُصدَرة يمكنك تثبيتها اليوم تحمل خيار sharded-sampling الاختياري في Qwen4Exp. ولا يوجد أي قياس أداء مستقل لسلوك الخدمة لدى Qwen3.8-Flash-Next تحت أيٍّ من هذه التغييرات؛ فكل رقم مذكور أعلاه مصدره نصوص طلبات السحب (PR)، ما يجعله مُبلَّغًا من المساهمين وغير مُدقَّق بالمعنى الدقيق القائل إنه لم يُعِد أي طرف ثالث تشغيله. والرقم الأبرز في طلب السحب الذي انطلقت منه هذه المقالة هو 1.5%، وهو مكسب حقيقي في حزمة الخدمة، وليس سببًا لتغيير اختيار نموذج.

ما قد يغيّر أي قرار هو تشغيل خدمة كامل ومُخضع للتدقيق، وهذا غير موجود بعد. أما قياسات الإيقاع المتاحة فعلاً لـ Qwen3.8-Flash-Next فهي خارج هذه التصحيحات بالكامل: إذ يسجّل النموذج درجة 40 على مؤشر Intelligence Index لدى Artificial Analysis، وهي أعلى بكثير من الوسيط البالغ 18 للنماذج مفتوحة الأوزان ذات الحجم المماثل، وهذا الرقم مستقل عن كل ما نوقش هنا.

ما يمكنك الاتصال به اليوم، وزاوية التوجيه

OrcaRouter model page for qwen/qwen3.8-flash, listing one-million-token context, 131,072 max output, a $0.15 input and $0.47 output list price, and the api.orcarouter.ai base URL.

هنا يصبح المشهد عمليًا لأي شخص قرأ حتى هذه النقطة ويريد استخدام نموذج مستضاف بدلًا من تجهيز نموذج بنفسه. Qwen3.8-Flash-Next ليس ضمن كتالوج OrcaRouter — فهو ليس واحدًا من 205 نماذج نوجّهها، ولا توجد نقطة نهاية مستضافة له هنا. لكن النسخة الإنتاجية الشقيقة التي يمهّد لها هي: qwen/qwen3.8-flash، الإصدار الرسمي Qwen3.8-Flash الذي تصفه بطاقة النموذج الخاصة بالبائع بأنه يحمل ميزات أكثر من النسخة التجريبية، بما في ذلك سياق بمليون رمز افتراضيًا وأدوات مدمجة، متاح بسعر 0.15 دولار لكل مليون رمز إدخال و0.47 دولار لكل مليون رمز إخراج، ويُمرَّر بسعر قائمة المزوّد دون أي هامش مضاف. وللمقارنة داخل العائلة نفسها، qwen/qwen3.8-27b يعمل بسعر 0.33 دولار و2.40 دولار، وqwen/qwen3.8-max بسعر 2.00 دولار و6.00 دولار — وكلها يمكن الوصول إليها بمفتاح واحد.

هناك سببان يكتسبان أهمية أكبر من المعتاد في مقال عن معمارية غير مُصدَرة. الأول هو تكلفة التبديل. إذا أردت معايرة الإحساس الذي يمنحه نموذج انتباه متناثر على حركة المرور لديك قبل أن يوجد Qwen 4، فالمقارنة التي تريد إجراءها هي مقابل qwen/qwen3.8-flash بالسعر المعلن — وإجراؤها عبر موجه يعني أن النموذج الذي تقيسه والنموذج الذي قد ترجع إليه يقعان خلف نقطة النهاية نفسها، ونفس SDK ونفس المفتاح، دون عقد ثانٍ للتوقيع عليه. والثاني هو أن كل تغيير في الخدمة ضمن مجموعة التصحيحات هذه يستهدف vLLM المستضاف ذاتيًا. إذا كنت لا تشغّل ثماني وحدات A100، فإن سعة KV البالغة 1.83× ومكسب أخذ العينات البالغ 1.5% هما أمران تقرأ عنهما، لا أمران تحصل عليهما. نقطة النهاية الموجّهة هي النسخة التي تصل دون خطوة بناء: تجاوز فشل تلقائي إذا تراجعت جودة مزوّد، ولغة DSL للتوجيه تتيح لك وضع استدعاء مستضاف إلى جانب استدعاء مستضاف ذاتيًا في نقطة نهاية واحدة عندما تكون لديك بالفعل أجهزة خاصة بك تقيس عليها.

الشيء الوحيد الذي يجب ألا تفعله هو قراءة هذا المقال كسبب لانتظار Qwen 4. لا يوجد تاريخ. لا يوجد سعر. لا يوجد عدد أوزان للنسخة الحقيقية — فالأرقام أعلاه تصف إصدار المعاينة، لا المنتج. ما هو موجود هو مكدس خدمة يُعدّ علنًا من أجل معمارية لا تزال، في الوقت الحالي، قابلة للتنزيل فقط بصيغة المعاينة.

النسخة المختصرة

Two-column scoreboard comparing batch-sharded sampling without the flag and with it across path, rank memory, sampler work, reported gain and status, footnoted as the PR body estimate on Qwen3.8-Flash-Next-FP8, TP8 plus EP, eight A100-SXM4-40GB, not independently audited.

ثلاثة أسطر تسدّ فجوة بين مساري النص فقط والرؤية واللغة في ملف نموذج واحد ليست، بحد ذاتها، خبرًا. إنها من نوع الرقعات التي كانت ستُدفن في التزام دمج لو كان لدى أي شخص وقت لمراجعتها، وقد تُدمج في تغيير أكبر أو تُغلق نهائيًا — فإرشادات الوكيل الخاصة بروبوت vLLM نفسه، المقتبسة في طلب السحب (PR)، توجّه المساهمين المدعومين بالذكاء الاصطناعي إلى إغلاق عملهم إذا كان يفتقر إلى فائدة جوهرية، و1.5% رقم يستدعي هذا السؤال. وما يجعله جديرًا بانتباهك هو ما يوثقه: جدول n-gram يضم 20 مليون مدخل، وMoE بـ512 خبيرًا مع عشرة خبراء نشطين لكل توكن، ومزيج هجين من الانتباه الخطي والانتباه المتناثر المضغوط، ورأس تخميني — كل ذلك يُضبط عبر NVIDIA وAMD، من Ampere إلى Hopper، قبل أن يوجد المنتج الذي يحمله. إذا كنت تهتم بنطاق خدمة Qwen4، فإن محتوى طلبات السحب (PR) هو المكان الذي توجد فيه مواصفاته الحقيقية حاليًا. وإذا كنت تريد استدعاء نموذج اليوم، فإن Qwen3.8-Flash هو الموجود فعليًا.

واجهة API واحدة لأكثر من 200 نموذج، تجاوز فشل تلقائي، لغة توجيه DSL. استكشف كتالوج نماذج OrcaRouter

مقارنات في هذه المقالة2

مستخرج من هذه المقالة · المعايير: Artificial Analysis · يُحدَّث يوميًا