يُعد speculative decoding تقنية استدلال لنماذج LLM تسرّع توليد الرموز دون تغيير جودة المخرجات. يقترح نموذج مسودة أصغر وأسرع عدة رموز مرشحة مسبقًا، ثم يتحقق النموذج الهدف الأكبر منها جميعًا في تمريرة واحدة متوازية، فيحتفظ بالتنبؤات الصالحة ويعيد أخذ العينات بدءًا من أول اختلاف للحفاظ على توزيع مخرجاته الدقيق.
تولّد النماذج اللغوية الكبيرة استجاباتها عادةً رمزًا واحدًا في كل مرة. وتتطلب كل خطوة جديدة من الإخراج قراءة أوزان النموذج من الذاكرة، ما يترك قدرة المسرّع الحسابية غير مستغلة بالكامل أثناء انتظار عرض نطاق الذاكرة. يتجاوز speculative decoding عنق الزجاجة المتمثل في إنتاج رمز واحد لكل خطوة، بتحويل عمليات الفحص المتتابعة إلى تحقق متوازٍ.
لماذا يكون فك الترميز ذاتي الانحدار القياسي بطيئًا؟
يكون فك الترميز ذاتي الانحدار القياسي بطيئًا لأن توليد كل رمز يتطلب تمريرة أمامية منفصلة عبر النموذج الكامل، فتحدّ سرعة عرض نطاق الذاكرة من العملية بدلًا من القدرة الحسابية.
عندما يكتب نموذج لغوي استجابة، يعتمد كل رمز على جميع الرموز التي سبقته. في فك الترميز القياسي، يجب على نموذج ذي 70 مليار معلمة تحميل أوزانه من ذاكرة ذات عرض نطاق مرتفع لإنتاج الرمز الأول، ثم تحميل الأوزان نفسها مرة أخرى لإنتاج الرمز الثاني، وتكرار هذه الدورة مئات المرات.
ومع ذلك، يسهل التنبؤ بكثير من رموز الاستجابة. فالكلمات الوظيفية وأقواس الإغلاق في الشيفرة والعبارات الشائعة والصيغ النمطية لا تتطلب كامل عمق الاستدلال في نموذج ضخم لتخمينها بدقة، مع أن الحكم النهائي للنموذج الكبير على الاستجابة كلها يظل مطلوبًا. ولأن GPU وTPU تستطيعان معالجة كتلة قصيرة من الرموز بالتوازي في وقت فعلي يقارب الوقت اللازم لمعالجة رمز واحد، تبقى قدرة حسابية إضافية عاطلة أثناء فك ترميز رمز واحد في كل مرة. يستغل speculative decoding هذه القدرة المتوازية الفائضة.
كيف يعمل speculative decoding خطوة بخطوة؟
يعمل speculative decoding بتكرار حلقة من أربع خطوات حتى تكتمل الاستجابة: اقتراح رموز مرشحة، والتحقق منها بالتوازي باستخدام النموذج الهدف، وقبول الرموز المتطابقة، وإعادة أخذ العينات عند أول رفض.
بدلًا من مطالبة النموذج الهدف الكبير بتوليد كل رمز بالتتابع، يقرن محرك الاستدلال النموذج الهدف بنموذج تقريبي أصغر وأسرع بكثير، يُسمى غالبًا نموذج المسودة. تمر كل دورة بأربع مراحل متميزة:
- اقتراح الرموز المرشحة: انطلاقًا من التسلسل الحالي، يولّد نموذج المسودة الصغير بسرعة نافذة استشراف قصيرة تضم $K$ رمزًا مرشحًا، واحدًا تلو الآخر، ويسجّل توزيع احتمالاته لكل موضع.
- التحقق المتوازي: يأخذ النموذج الهدف الكبير التسلسل الأصلي مع جميع رموز المسودة البالغ عددها $K$ ويجري تمريرة أمامية واحدة. ولأن معماريات المحوّل تستطيع تقييم تسلسلات الرموز المعروفة بالتوازي، كما تفعل أثناء معالجة الموجّه، يحسب النموذج الهدف توزيعات احتمالاته الخاصة لجميع مواضع المسودة في الوقت نفسه.
- قبول رموز المسودة أو رفضها: يتقدم المحرك من اليسار إلى اليمين عبر رموز المسودة البالغ عددها $K$، ويقارن في كل خطوة احتمال نموذج المسودة باحتمال النموذج الهدف باستخدام قاعدة رسمية لأخذ العينات بالرفض، تُسمى غالبًا speculative sampling. في فك الترميز الجشع، عندما تكون درجة الحرارة صفرًا، يُقبل رمز المسودة إذا طابق الخيار الأول للنموذج الهدف. أما في أنماط أخذ العينات، فتُقبل دائمًا الرموز التي يمنحها النموذج الهدف احتمالًا يساوي على الأقل احتمال نموذج المسودة، بينما تُقبل الرموز ذات الاحتمال الأقل بنسبة تتناسب مع احتمال النموذج الهدف مقسومًا على احتمال نموذج المسودة.
- إعادة أخذ العينات وتوليد رمز إضافي: إذا حدث أول اختلاف عند الموضع $m$، يُستبعد ذلك الرمز وجميع رموز المسودة التالية له، وتُؤخذ عينة مباشرة لرمز بديل في الموضع $m$ من توزيع متبقٍ معدّل يراعي احتمالات النموذجين. وإذا قُبلت جميع رموز المسودة البالغ عددها $K$، يكون النموذج الهدف قد حصل بالفعل على توزيع الاحتمالات للموضع $K + 1$ من التمريرة المتوازية نفسها، ما يتيح له أخذ عينة لرمز إضافي دون تكلفة إضافية.
لأن قواعد الرفض وإعادة أخذ العينات تلغي أخطاء نموذج المسودة رياضيًا، فإن speculative decoding بلا فقد. تنتج كل خطوة متعددة الرموز عينات من توزيع الاحتمالات نفسه تمامًا الذي ينتج عن تشغيل النموذج الهدف وحده، أي دون تراجع في دقة الاختبارات المعيارية أو القدرة على الاستدلال أو الأسلوب.
ما مقدار سرعة speculative decoding في الممارسة؟
تُظهر الأبحاث التأسيسية أن speculative decoding يحقق تسريعًا في الوقت الفعلي يتراوح تقريبًا من 2X إلى 3X للنماذج اللغوية الكبيرة عند إقرانه بنموذج مسودة مناسب وتوافر قدرة حسابية متوازية كافية.
أظهرت الأوراق التأسيسية التي قدمت التقنية في أواخر 2022 وأوائل 2023 تحسنًا كبيرًا في زمن الاستجابة لكل من محوّلات المُرمِّز وفاك الترميز ومحوّلات فاك الترميز فقط، دون تغيير أوزان النماذج أو توزيعات مخرجاتها:
| الدراسة | النموذج الهدف | إعداد المسودة | التسريع المعلن في الوقت الفعلي | الظروف والمهام |
|---|---|---|---|---|
| Leviathan وآخرون (2023) | T5-XXL (11B معلمة) | T5-small (77M معلمة) | 2X–3X (حتى 2.6X–3.4X في جداول إعداد T5-small) | تنفيذ T5X كما هو للترجمة (EN-DE) والتلخيص (CNN/DM)، باستخدام اختيار أعلى احتمال (temp 0) وأخذ العينات القياسي (temp 1). |
| Chen وآخرون (2023) | Chinchilla (70B معلمة) | نموذج مسودة ذو 4B معلمة مُدرَّب على speculative sampling | 2X–2.5X | إعداد موزع على TPU v4 للتلخيص (XSum) وتوليد الشيفرة (HumanEval). |
لاحظ الفرق في الحجم بين النموذجين الهدف والمسودة في الدراستين: حجم T5-small أصغر من T5-XXL بنحو رتبتين عشريتين، ونموذج المسودة ذي 4B ليس إلا جزءًا صغيرًا من حجم نموذج Chinchilla ذي 70B. يجب أن يكون نموذج المسودة صغيرًا بما يكفي كي لا يضيف تنفيذ $K$ خطوات متتابعة عليه سوى حمل إضافي ضئيل جدًا مقارنة بخطوة واحدة للنموذج الهدف.
ما الذي يحدد معدل القبول ولماذا لا تُضمن زيادة السرعة؟
تعتمد زيادة السرعة الناتجة عن speculative decoding على عاملين رئيسيين: مدى توافق نموذج المسودة مع النموذج الهدف، أي معدل القبول، ومقدار القدرة الحسابية المتوازية الفائضة المتاحة في العتاد. لذلك لا تُضمن زيادة صافية في السرعة مطلقًا.
إذا أخطأ نموذج المسودة في التخمين باستمرار، يتحمل النظام كلفة زمن الاستجابة لتنفيذ $K$ خطوات متتابعة عليه، ثم يرفض النموذج الهدف أول رمز على الإطلاق. وفي أسوأ الحالات، تنتج الدورة التخمينية رمزًا واحدًا أُخذت عينته من جديد، بينما تستغرق وقتًا أطول من خطوة قياسية للنموذج الهدف.
تحدد عدة عوامل عملية ما إذا كان speculative decoding سيسرّع الاستدلال أم سيبطئه:
- التوافق بين نموذجي المسودة والهدف: يجب أن يشترك نموذج المسودة مع النموذج الهدف في أداة تقسيم الرموز والمفردات نفسها تمامًا، وأن يكون توزيع تدريبه قريبًا جدًا من توزيع تدريب النموذج الهدف. يميل إكمال الشيفرة، ومخرجات JSON المنظمة، وترجمة العبارات المتوقعة إلى تحقيق معدلات قبول أعلى من الكتابة الإبداعية عند درجة حرارة مرتفعة، حيث تكون رموز كثيرة مختلفة جدًا متساوية في المعقولية.
- حمل زمن الاستجابة الإضافي لنموذج المسودة: حتى معدل القبول المرتفع لن يسرّع التوليد إذا كان نموذج المسودة نفسه كبيرًا وبطيئًا أكثر من اللازم. أثبت Leviathan وآخرون أن نموذج المسودة الأصغر T5-small تفوق على المرشحين الأكبر T5-base وT5-large من حيث التسريع الإجمالي في الوقت الفعلي، لأن الحمل الإضافي لاقتراح الرموز في كل خطوة كان أقل بكثير.
- طول نافذة الاستشراف ($K$): يحد اختيار نافذة قصيرة جدًا من عدد الرموز التي يمكن التحقق منها في تمريرة واحدة. أما النافذة الطويلة جدًا فتهدر وقت إعداد المسودة على رموز لاحقة تُستبعد عند رفض رمز سابق.
- القدرة الحسابية المتوازية المتاحة (تشبع حجم الدفعة): يستبدل speculative decoding القدرة الحسابية العاطلة بزمن استجابة أقل. في تقديم الخدمة بدفعات صغيرة وحساسة لزمن الاستجابة، تمتلك المسرّعات قدرة فائضة كافية للتحقق من $K$ رموز بالتوازي دون تكلفة زمنية إضافية تُذكر. وعند أحجام دفعات متزامنة هائلة تكون فيها وحدات الحوسبة في GPU مشبعة بالكامل، تؤدي إضافة $K$ مواضع تحقق إضافية لكل طلب إلى زيادة زمن التمريرة وقد تلغي التسريع.
ما علاقة speculative decoding بكل من KV cache والتخزين المؤقت للموجّه؟
يسرّع speculative decoding مرحلة فك ترميز المخرجات فقط، بينما يتجنب استخدام KV cache إعادة حساب الانتباه عبر الرموز، ويسرّع التخزين المؤقت للموجّه مرحلة المعالجة المسبقة للمدخلات المتكررة ويخفض تكلفتها.
نظرًا إلى أن التحسينات الثلاثة تؤثر جميعًا في زمن استدلال المحوّلات، كثيرًا ما يخلط المطورون بين موضع كل منها في دورة حياة الطلب:
- المعالجة المسبقة مقابل فك الترميز: ينقسم كل طلب إلى LLM إلى مرحلتين. تعالج المعالجة المسبقة جميع رموز موجّه الإدخال بالتوازي لبناء الحالة الأولية؛ وهي مرحلة تحدّها القدرة الحسابية بالفعل وسريعة لكل رمز. أما فك الترميز فيولّد رموز الإخراج خطوة بخطوة ويحدّه عرض نطاق الذاكرة. لا يساعد speculative decoding إلا في مرحلة فك الترميز، ولا يسرّع قراءة موجّه إدخال طويل.
- دور KV cache: يعتمد كل من النموذج الهدف ونموذج المسودة على KV cache خاص به أثناء speculative decoding. وعند اقتراح الرموز المرشحة والتحقق منها، تُضاف حالات المفتاح والقيمة الخاصة بها إلى الذاكرة المؤقتة. وعندما يرفض النموذج الهدف رموز المسودة بعد الموضع $m$، يتراجع محرك الاستدلال ببساطة عن KV cache لكلا النموذجين باقتطاعه، لاستبعاد المدخلات المرفوضة قبل بدء الدورة التالية.
- الفرق عن التخزين المؤقت للموجّه: يعيد التخزين المؤقت للموجّه استخدام كتل KV cache المحسوبة مسبقًا لبوادئ الموجّه المتطابقة عبر استدعاءات منفصلة لواجهة برمجية، ما يقلل الزمن حتى الرمز الأول (TTFT) ويخفض أسعار رموز الإدخال في كثير من الأحيان. أما speculative decoding فيقلل زمن الاستجابة بين الرموز (ITL) أثناء بث الاستجابة.
ماذا يعني speculative decoding لمطوري الواجهات البرمجية ومستضيفي النماذج ذاتيًا؟
بالنسبة إلى مطوري الواجهات البرمجية، يظهر أثر speculative decoding في انخفاض زمن استجابة البث من البداية إلى النهاية، بدلًا من ظهوره كبند منفصل في الفاتورة. أما من يستضيفون النماذج ذاتيًا فيضبطونه مباشرة داخل محركات الاستدلال لتحسين سرعة الاستجابة لكل طلب.
تعتمد طريقة التعامل مع speculative decoding على ما إذا كنت تستدعي نقاط نهاية لنماذج مستضافة أو تدير مجموعة GPU خاصة بك:
- نادرًا ما تتغير محاسبة الواجهات المستضافة لكل رمز: يحاسب مقدمو خدمات الذكاء الاصطناعي المستضافة عادةً على كل مليون رمز إدخال وإخراج مُعالَج من منظور المستخدم. حتى إن استخدم مقدم الخدمة speculative decoding داخليًا، فإن رموز المسودة المرفوضة تبقى داخل محرك تقديم الخدمة، وتُحاسب أنت على رموز الإخراج النهائية المُولَّدة وفق السعر القياسي للنموذج. لتخفيض فاتورة الواجهة البرمجية المباشرة بدلًا من وقت الانتظار فقط، انظر في هندسة الموجّهات وواجهات المعالجة بالدفعات والطرق العملية لخفض تكاليف واجهات الذكاء الاصطناعي، أو قارن الأسعار عند تحديد كيفية اختيار نموذج ذكاء اصطناعي.
- فوائد تجربة المستخدم في الوقت الفعلي: تتجلى فائدة speculative decoding لمطوري التطبيقات في تجربة المستخدم. يبدو الوكلاء الصوتيون ومساعدو الشيفرة في بيئات التطوير وسير عمل الإنتاج التفاعلي، من مساعدي البرمجة المباشرة إلى خطوط معالجة البرامج النصية المقترنة بأدوات إبداعية مثل AI Studio Video، أكثر استجابة بوضوح عندما تصل رموز الإخراج بضعف السرعة دون الانتقال إلى نموذج أضعف.
- إعداد الاستضافة الذاتية: إذا كنت تشغّل نماذج ذات أوزان مفتوحة على بنيتك التحتية، فإنك تضبط speculative decoding مباشرة في منظومة تقديم الخدمة. يجب تحميل النموذج الهدف ونموذج المسودة معًا في ذاكرة GPU، أو استخدام صيغة لا تحتاج إلى نموذج مسودة، والتأكد من اشتراكهما في أداة تقسيم الرموز نفسها تمامًا، وضبط طول الاستشراف وفق مستوى التزامن المعتاد لديك.
هل تحتاج دائمًا إلى نموذج مسودة منفصل؟
ألغت صيغ لاحقة من speculative decoding الحاجة إلى تدريب نموذج مسودة صغير منفصل ونشره، مع الحفاظ على المبدأ نفسه القائم على الاقتراح والتحقق.
قد تكون إدارة نموذجين منفصلين في الذاكرة، والعثور على نموذج صغير يستخدم أداة تقسيم الرموز نفسها تمامًا ويتوافق سلوكه مع النموذج الهدف، مهمة مرهقة من الناحية التشغيلية. لحل ذلك، قدم باحثو الاستدلال وأطر تقديم الخدمة عدة أساليب لا تحتاج إلى نموذج مسودة:
- اقتراح المسودة باستخدام تسلسلات n-gram والبحث في الموجّه: بدلًا من تشغيل شبكة عصبية لاقتراح الرموز، يبحث المحرك في موجّه الإدخال والمخرجات المُولَّدة حديثًا عن مقاطع نصية متطابقة، وينسخ الرموز التي تليها بوصفها مرشحة. ينجح ذلك خصوصًا عند تلخيص المستندات أو تحرير الشيفرة أو استخراج اقتباسات موجودة بالفعل في نافذة السياق.
- رؤوس التنبؤ متعددة الرموز والطبقات المساعدة: بدلًا من الاحتفاظ بنموذج مستقل كامل، يمكن إرفاق مجموعة صغيرة من رؤوس التنبؤ خفيفة الوزن أو طبقات المسودة مباشرة بالحالات المخفية للنموذج الهدف، لاقتراح الرموز القليلة التالية في تمريرة واحدة.
- فك الترميز التخميني الذاتي: تستخدم بعض الإعدادات مجموعة فرعية من طبقات النموذج الهدف نفسه، مع تخطي الطبقات الوسيطة أثناء إعداد المسودة، لتوليد الرموز المرشحة، ثم تشغّل مجموعة الطبقات الكاملة للتحقق منها.
بغض النظر عن طريقة اقتراح الرموز المرشحة، يبقى الضمان الأساسي كما هو: يتحقق النموذج الهدف الكامل من المرشحين بالتوازي ويفرض توزيع احتمالاته الدقيق على كل رمز مقبول.
الأسئلة الشائعة
هل يغيّر speculative decoding دقة النموذج أو جودة المخرجات؟
لا. إن speculative decoding القياسي (speculative sampling) خالٍ من الفقد رياضيًا. في فك الترميز الجشع، لا يقبل إلا الرموز التي تطابق تمامًا أعلى تنبؤ للنموذج الهدف. وفي أخذ العينات بدرجة حرارة، تضمن قواعد الرفض وإعادة أخذ العينات من التوزيع المتبقي أن تتبع التسلسلات المُولَّدة توزيع الاحتمالات نفسه تمامًا لفك الترميز ذاتي الانحدار القياسي في النموذج الهدف.
هل يقلل speculative decoding الزمن حتى الرمز الأول (TTFT)؟
لا. يقيس الزمن حتى الرمز الأول المدة التي يستغرقها النموذج لقراءة موجّه الإدخال خلال مرحلة المعالجة المسبقة وإصدار أول رمز إخراج. ولأن المعالجة المسبقة تعالج رموز الموجّه بالتوازي بالفعل، فإن speculative decoding لا يسرّع إلا خطوات فك الترميز اللاحقة، ما يقلل زمن الاستجابة بين الرموز والوقت الإجمالي لإكمال بقية الاستجابة.
لماذا قد يكون speculative decoding أبطأ عند أحجام الدفعات الكبيرة؟
يعتمد speculative decoding على القدرة الحسابية المتوازية الفائضة في GPU أو TPU لفحص عدة رموز مسودة في وقت يقارب الوقت اللازم لفحص رمز واحد. عندما يعالج الخادم دفعة كبيرة جدًا من الطلبات المتزامنة، تكون القدرة الحسابية للمسرّع مستخدمة بالكامل بالفعل، لذا يضيف التحقق من رموز مسودة إضافية لكل طلب وقت تنفيذ فعليًا قد يفوق ما وُفّر من عمليات قراءة الذاكرة.
هل يمكن لأي نموذج صغير أن يعمل نموذجَ مسودة لأي نموذج كبير؟
ليس مباشرةً في speculative decoding القياسي على مستوى الرمز. يجب أن يشترك نموذج المسودة والنموذج الهدف في مفردات وأداة تقسيم رموز متوافقتين، بحيث تتطابق معرّفات الرموز المرشحة وتوزيعات احتمالاتها بوضوح بين النموذجين. ولهذا تأتي الأزواج عادةً من عائلة النماذج نفسها، مثل استخدام T5-small لإعداد مسودة لصالح T5-XXL.
المصادر
- Yaniv Leviathan, Matan Kalman, and Yossi Matias — الاستدلال السريع من المحوّلات باستخدام فك الترميز التخميني (arXiv:2211.17192, ICML 2023)
- Charlie Chen, Sebastian Borgeaud, Geoffrey Irving, Jean-Baptiste Lespiau, Laurent Sifre, and John Jumper — تسريع فك ترميز النماذج اللغوية الكبيرة باستخدام أخذ العينات التخميني (arXiv:2302.01318, 2023)



