Chunked Prefill
تعرف على كيفية تحسين التعبئة المقطعة (chunked prefill) لزمن استجابة استدلال نماذج اللغات الكبيرة (LLM) وإنتاجيتها، وذلك من خلال تقسيم المطولات إلى أجزاء من الرموز (tokens) لتقديم خدمة أكثر سلاسة في ظل أحمال العمل المتزامنة.
التعبئة المسبقة المقسمة هي تقنية جدولة استدلال تقسم موجه الإدخال الطويل إلى مجموعات أصغر من الرموز بدلاً من معالجة الموجه بأكمله في عملية واحدة متواصلة. يمكن لمحرك الاستدلال دمج هذه الأجزاء بالتناوب مع توليد الرموز للطلبات الأخرى، مما يمنع موجهاً طويلاً واحداً من الاستحواذ على وحدة المعالجة الرسومية (GPU). والنتيجة عادةً هي زمن انتقال أكثر سلاسة في ظل أحمال العمل المتزامنة، واستخدام أفضل للأجهزة، وخدمة أكثر قابلية للتنبؤ لتطبيقات نموذج اللغة الكبير التفاعلية.
كيف تعمل التعبئة المسبقة المقسمة#
يحتوي استدلال Transformer التراجعي الذاتي على مرحلتين رئيسيتين:
- التعبئة المسبقة: يعالج النموذج جميع رموز الإدخال، ويحسب حالات الانتباه الخاصة بها، ويملأ ذاكرة التخزين المؤقت KV. تقيم التعبئة المسبقة العديد من الرموز بالتوازي وغالباً ما تكون مقيدة بالحوسبة.
- فك التشفير: يولد النموذج الإخراج رمزاً تلو الآخر أثناء قراءة الحالات المخزنة مؤقتاً مسبقاً. غالباً ما يكون فك التشفير محدوداً بنطاق ترددي الذاكرة بدلاً من الحوسبة البحتة.
بدون التقسيم، قد يشغل طلب مكون من 20000 رمز خطوة استدلال لفترة أطول بكثير من الطلب القصير. وبالتالي يمكن أن تواجه عمليات التوليد النشطة توقفات، مما يزيد من زمن انتقال الرموز البينية حتى لو كانت موجهات الخاصة بها صغيرة.
مع التعبئة المسبقة المقسمة، يخصص المجدول لكل تكرار ميزانية رموز. يقوم أولاً بجدولة عمليات فك التشفير النشطة، ثم يستخدم الميزانية المتبقية لقطعة أو أكثر من قطع الموجه. إذا لم يتسع الموجه، تنتظر الرموز المتبقية لتكرار لاحق. تصف إرشادات تحسين vLLM هذا النهج كطريقة للجمع بين عمل التعبئة المسبقة الكثيف الحوسبة وفك التشفير الكثيف الذاكرة.
يغير التقسيم وقت معالجة رموز الموجه، وليس ترتيبها أو معناها. تمدد كل قطعة مكتملة حالة الانتباه المخزنة مؤقتاً للطلب حتى يصبح الموجه الكامل جاهزاً ويمكن أن يبدأ فك التشفير.
لماذا تهم التعبئة المسبقة المقسمة#
تعالج التعبئة المسبقة المقسمة أهداف الأداء المتنافسة في خدمة النماذج الإنتاجية:
- زمن انتقال الرموز البينية: يساعد إعطاء الأولوية لطلبات فك التشفير الحالية على استمرار الاستجابات المتدفقة دون توقفات طويلة.
- الوقت حتى الرمزة الأولى: تكمل القطع الكبيرة موجهاً جديداً عاجلاً، بينما قد تؤخر القطع الصغيرة جداً أول رمز مولد له.
- إنتاجية المعالجة: يمكن أن يؤدي الجمع بين عمل التعبئة المسبقة وفك التشفير إلى استخدام حوسبة وحدة المعالجة الرسومية ونطاق ترددي الذاكرة بشكل أكثر فعالية.
- الإنصاف: من غير المرجح أن تحجب الموجهات الطويلة العديد من الطلبات القصيرة والتفاعلية.
لذلك، يعد إعداد القطعة أو ميزانية الرموز مقايضة. يوفر تكوين مجدول vLLM عناصر تحكم لحدود الرموز المجمعة، والتعبئة المسبقة الجزئية، والحدود للموجهات الطويلة. تفضل الميزانيات الأصغر عادةً فك التشفير سريع الاستجابة، بينما تفضل الميزانيات الأكبر استهلاك الموجهات بشكل أسرع.
لا يلغي التقسيم كل عُنق زجاجة. لا تزال السياقات الطويلة تستهلك ذاكرة التخزين المؤقت، ويمكن أن يتسبب القبول العدواني مفرط في ضغط التخزين المؤقت، أو استباق الطلبات، أو العمل المتكرر. يجب على المشغلين قياس متوسط وذيل زمن انتقال الاستدلال، والوقت حتى الرمزة الأولى، وزمن انتقال الرموز البينية، وإنتاجية المعالجة، واستخدام ذاكرة وحدة المعالجة الرسومية في ظل توزيعات موجهات واقعية.
مفاهيم الاستدلال ذات الصلة#
ترتبط التعبئة المسبقة المقسمة ارتباطاً وثيقاً بالعديد من التحسينات ولكنها تخدم غرضاً مميزاً:
- التجميع المستمر: يضيف ويزيل الطلبات ديناميكياً أثناء التوليد. تكمله التعبئة المسبقة المقسمة من خلال جعل معالجة الموجهات الطويلة قابلة للجدولة عند حدود مستوى الرموز.
- التخزين المؤقت للموجهات: يعيد استخدام الحالات المحسوبة مسبقاً لبادئة موجه متكررة. تجدول التعبئة المسبقة المقسمة حوسبة جديدة؛ وهي لا تتخطي تلك الحوسبة.
- إدارة ذاكرة التخزين المؤقت KV المقسمة (Paged KV-cache): تنظم حالات الانتباه المخزنة مؤقتاً في كتل ذاكرة. تتضمن نظرة عامة على TensorRT-LLM من NVIDIA التخزين المؤقت المقسم والتجميع أثناء الطيران جنباً إلى جنب مع تحسينات معالجة الموجهات.
- التجميع الديناميكي: يجمع الطلبات المنفصلة في دفعات، كما هو موضح في دليل التجميع الديناميكي لـ NVIDIA Triton. لا يقوم بالضرورة بتقسيم موجه طويل فردي إلى عمليات تعبئة مسبقة جزئية.
- التعبئة المسبقة وفك التشفير المنفصلان: يشغل المرحلتين على عمال منفصلين. توضح إرشادات نشر التعبئة المسبقة وفك التشفير من NVIDIA كيف يمكن بدلاً من ذلك تحجيم المراحل بشكل مستقل.
على الرغم من أن سير عمل نشر Ultralytics YOLO26 Triton يدعم استدلال الرؤية الحاسوبية القابل للتوسيع والتجميع التلقائي، إلا أن اكتشاف الكائنات القياسي في YOLO لا يحتوي على مرحلة تعبئة مسبقة للنصوص التراجعية. تنطبق التعبئة المسبقة المقسمة في المقام الأول على النماذج اللغوية التوليدية ونماذج الوسائط المتعددة.
تطبيقات العالم الحقيقي#
-
مساعدو المستندات: قد يتلقى المساعد المعزز بالاسترجاع تقريراً طويلاً بينما يخدم في الوقت نفسه المستخدمين بأسئلة قصيرة. تتيح تعبئة التقرير المسبقة للمحادثات الجارية مواصلة فك التشفير بدلاً من التجميد حتى تتم معالجة السياق بأكمله.
-
تحليل الفيديو متعدد الوسائط: قد يتلقى نموذج الرؤية اللغوية ميزات الصور، ووَصْف الكائنات، وتوجيه نصي طويل. يمكن أن ينتج خط أنابيب الرؤية اكتشافات أولاً باستخدام تنبؤ Ultralytics YOLO، ثم يرسل سياقاً بصرياً منظماً إلى النموذج التوليدي. تساعد التعبئة المسبقة المقسمة في جدول الرموز البصرية والنصية الناتجة جنباً إلى جنب مع الطلبات الأخرى. يوضح سير عمل التشفير والتعبئة المسبقة وفك التشفير متعدد الوسائط من NVIDIA سبب تحسين إمكانية التوسع من خلال إدارة هذه المراحل بشكل مستقل.
إرشادات النشر العملية#
قم بتفعيل التعبئة المسبقة المقسمة فقط من خلال محرك خدمة يدعم البنية المستهدفة رسمياً. على سبيل المثال، يوثق تكوين الواجهة الخلفية لـ TensorRT-LLM عناصر التحكم في السياق المقسم للنشر المدعوم.
قم بإجراء اختبار الأداء باستخدام التزامن الواقعي، وأطوال الإدخال، وأطوال الإخراج بدلاً من الاعتماد على طلب واحد. ابدأ بميزانية الرموز الموصى بها لوقت التشغيل، ثم قم بضبطها أثناء مراقبة الوقت حتى الرمزة الأولى وزمن انتقال الرموز البينية. أخيرًا، اختبر أحمال العمل المختلطة التي تحتوي على موجهات طويلة جداً وقصيرة جداً؛ وهنا حيث توفر التعبئة المسبقة المقسمة قيمتها التشغيلية الأوضح.






