المُحول المُتفرّق: فتح آفاق جديدة في استدلال LLM | معالج A100 GPU يُعزّز الحوسبة المتفرقة

المُحول المُتفرّق: فتح آفاق جديدة في استدلال LLM | معالج A100 GPU يُعزّز الحوسبة المتفرقة

تقنيات التفرّق لتسريع استدلال نماذج اللغة الكبيرة بمقدار 100 ضعف. اكتشف كيف تُحدث المُحوّلات المتفرّقة ثورة في استدلال LLM، مما يُطلق العنان لكفاءة وسرعة غير مسبوقتين. في المناقشة السابقة حول “كيف تُسرّع نماذج LLM الاستدلال من خلال التفرّق”، استكشفنا الجزء الثاني، “تسريع الاستدلال باستخدام التفرّق النشط.” انقر هنا لمراجعة الجزء الأول، “كيف تُجري نماذج LLM التقليم.” في هذا الجزء، سوف نتعمق في الجزء الثالث، “تأثير المُحوّلات المتفرّقة على استدلال LLM.”

الحاجة إلى المُحوّلات (المُجمّعات)

تشير التطورات الأخيرة إلى أن حسابات التعلم العميق أصبحت متفرقة بشكل متزايد، أي أن العمليات تُجرى على موترات (tensors) تحتوي على أصفار متعددة. بالإضافة إلى أوزان النموذج المتفرقة (الثابتة عادةً والمعروفة مسبقًا)، تم اكتشاف أنماط متفرقة أكثر اعتمادًا على المدخلات ولا تُعرف إلا في وقت التشغيل، أي التفرّق الديناميكي. على سبيل المثال، تُظهر نماذج اللغة الكبيرة (LLM) مثل GPT و OPT أنواعًا مختلفة من التفرّق الديناميكي. أولاً، تُظهر نماذج المحولات (وأنواع أخرى من النماذج) تفرّقًا ديناميكيًا متأصلاً في مدخلاتها وتنشيطاتها وتدرجاتها. في رسوم التنشيط، فقط عدد قليل جدًا من العناصر غير صفرية (على سبيل المثال، 3.0% لـ T5-Base، 6.3% لـ ViT-B/16). ثانيًا، الاستفادة من التفرّق الديناميكي لزيادة حجم نماذج DNN. معظم النماذج الحالية التي تحتوي على أكثر من تريليون معلمة تعتمد على بنية خليط الخبراء (MoE)، والتي تُنشط الخبراء ديناميكيًا بناءً على المدخلات المتفرقة. بالإضافة إلى ذلك، يقوم التدريب بالتفرّق الديناميكي بتقليم الروابط الأقل أهمية في النموذج ديناميكيًا أثناء التدريب، مما يجذب اهتمامًا متزايدًا لكفاءته الحسابية الفائقة. يُشكل التفرّق الديناميكي، حيث تكون الأنماط المتفرقة غير معروفة قبل وقت التشغيل، تحديات كبيرة للتعلم العميق. تقتصر الحلول المتقدمة المدركة للتفرّق في التعلم العميق على الأنماط المتفرقة الثابتة المحددة مسبقًا بسبب العبء الكبير المرتبط بالمعالجة المسبقة. غالبًا ما يواجه التنفيذ الفعال للحسابات المتفرقة ديناميكيًا عدم تطابق بين تكوينات الكتل المتوافقة مع GPU للتنفيذ الفعال وتقليل التغطية الضائعة (القيم غير الصفرية في الموترات) في أشكال الكتل المدركة للتفرّق. يتطلب تفرّق LLM استخدام عوامل تشغيل متفرقة، وتتضمن المكتبات التقليدية مثل cuSPARSE أو Sputnik، بسبب تصميماتها العامة وليست المثلى، إما دعم نوى متفرقة مُجمّعة بشكل ثابت فقط أو تتطلب تحويلاً ديناميكيًا للمصفوفات المتفرقة إلى صيغة كثيفة، مما يؤدي إلى عبء أداء كبير في سيناريوهات التفرّق الديناميكي.

مقارنة بين المُحوّلات الرئيسية

تشمل المُحوّلات الحسابية المتفرقة الرئيسية الحالية: cuSPARSE و Sputnik و OpenAI Block Sparse و SparTA و PIT، كما هو مذكور في [11]. فيما يلي جدول مقارنة لبيانات التسريع: السيناريو: ضرب مصفوفات بحجم 4096 × 4096 × 4096 المقياس: زمن الاستجابة (مللي ثانية)

تجدر الإشارة إلى أن PIT يتفوق على التحسين المتفرق الأحدث، محققًا تسريعًا يصل إلى 88.7x و 5.8x و 17.5x و 5.7x مقارنةً بـ cuSPARSE و Sputnik و OpenAI Block Sparse و SparTA على التوالي.

تأثير المُحوّلات على استدلال LLM

OPT

قيّمت التجربة [11] أداء PIT باستخدام مجموعة بيانات Alpaca على نسختين من نموذج OPT: OPT13B و 30B، عبر ثماني وحدات GPU V100 بسعة 32 جيجابايت. يطبق PIT اثنين من تحسينات التفرّق الديناميكي على OPT: (1) إلغاء عبء الحشو للجمل ذات الأطوال المختلفة في نفس الدفعة؛ (2) الاستفادة من التفرّق الدقيق (حتى 99%) الناتج عن تنشيطات ReLU في طبقات FFN. تم ضبط حجم الدفعة على 32، ويستخدم PyTorch-S Triton كخلفية.

زمن الاستجابة الشامل لكل دفعة وبصمة الذاكرة لنموذج OPT يتفوق أداء PIT على PyTorch و PyTorchS و DeepSpeed بمقدار 2.1x ∼ 2.3x و 2.5x ∼ 3.0x و 2.0x ∼ 2.2x على التوالي. يساهم تجنب الحشو في التسلسلات الديناميكية في تحقيق PIT تسريعًا بمقدار 1.6x ∼ 1.7x مقارنةً بالخط الأساسي. من خلال الاستفادة أيضًا من التفرّق الديناميكي في تنشيطات ReLU لطبقات FFN، يعزز PIT الأداء بشكل أكبر بمقدار 1.3x ∼ 1.4x. مقارنةً بـ PyTorch-S الذي يستخدم نوى كتل متفرقة من Triton بحجم كتلة 32x32، يستخدم PIT كتلًا صغيرة دقيقة (أي 1x32) وعمليات حسابية فعالة مع SRead و SWrite، متجنبًا الهدر الحسابي. بالإضافة إلى ذلك، يتأثر PyTorch-S أيضًا بعبء تحويل التنسيق المتفرق، وبالتالي يُظهر أعلى زمن استجابة. من حيث استهلاك الذاكرة، يتمتع DeepSpeed بأقل استخدام للذاكرة لأنه يدمج طبقة التشفير بأكملها في عامل واحد، مما يوفر ذاكرة التنشيط.

MOE

في التجارب [11] على SwinMoE، وهو نموذج رؤية كبير بهيكل تشفير و MoE، تم تقييم أداء PIT على A100 باستخدام دقة float16. بالنسبة لمحولات الرؤية، تم تغيير حجم الصور المدخلة داخل نفس الدفعة إلى نفس الدقة لضمان طول تسلسل متناسق. في تجاربنا، قارنا زمن الاستجابة الشامل للاستدلال واستخدام الذاكرة لـ Swin-MoE بأحجام دفعات مختلفة وأعداد خبراء مختلفة. يتفوق MegaBlocks على الخطوط الأساسية الأخرى من خلال تنفيذ جميع الخبراء في وقت واحد، مع الاستفادة الفعالة من النوى المتفرقة لتجنب هدر الحساب. يعمل PIT على تحسين الأداء بشكل أكبر من خلال دعم إعادة خلط البيانات في حركة البيانات عبر التسلسل الهرمي للذاكرة مقارنةً بـ MegaBlocks.

زمن الاستجابة الشامل وبصمة الذاكرة لـ SwinMoE على A100 مقارنةً بـ PyTorch و PyTorchS و Tutel و DeepSpeed و MegaBlocks، حقق PIT تسريعًا بمقدار 1.5x ∼ 6.3x و 1.5x ∼ 2.9x و 1.1x ∼ 1.8x و 1.2x ∼ 1.6x و 1.1x ∼ 1.4x على التوالي. تحسين أداء PIT على Swin-MoE أقل منه على Switch Transformer، حيث أن Swin-MoE يحتوي على عدد خبراء أقل بكثير من Switch Transformer. لذلك، عندما يزداد عدد الخبراء من 8 إلى 32، تساهم طبقة MoE بنسبة 23.6% إلى 61.2% فقط من زمن الاستجابة الشامل. عند مقارنة زمن استجابة طبقة MoE وحدها، يكون PIT أسرع بحوالي 1.2x ∼ 1.7x من MegaBlocks. فيما يلي بيانات المقارنة المُجمّعة لـ PIT:

أخيرًا، دعونا نناقش دعم الأجهزة المطلوب للتسريع.

GPU

NVIDIA A100

يستخدم A100 بنية Ampere الجديدة، مع ما يصل إلى 6912 نواة CUDA و 40 جيجابايت من ذاكرة HBM2 عالية السرعة. كما يدعم تقنية NVLink من الجيل الثاني، مما يتيح اتصالاً سريعًا بين وحدات GPU ويعزز سرعات التدريب للنماذج الكبيرة. يُقدم A100 نوى Tensor Core قوية جديدة من الجيل الثالث، بالإضافة إلى دعم شامل لأنواع بيانات DL و HPC، بالإضافة إلى قدرات متفرقة جديدة لمضاعفة الإنتاجية بشكل أكبر. توفر عمليات Tensor Core TF32 في A100 مسارًا مباشرًا لتسريع بيانات الإدخال/الإخراج FP32 في أطر DL و HPC، حيث تعمل أسرع 10 مرات من عمليات FP32 FMA في V100، أو أسرع 20 مرة في حالة التفرّق. بالنسبة للـ DL بالدقة المختلطة FP16/FP32، يكون أداء A100 2.5 ضعف أداء V100، ويزيد إلى 5 أضعاف مع التفرّق. عند تشغيل نماذج AI مع إطار PyTorch، مقارنةً بشريحة V100 من الجيل السابق، يُظهر A100 تحسنًا في الأداء بمقدار 6 أضعاف في تدريب نموذج BERT و 7 أضعاف في استدلال BERT.

Intel Max Series GPU

وفقًا للمرجع [18]، أظهرت التطبيقات الحديثة لعمليتي مصفوفة متفرقة على GPU NVIDIA V100 مكاسب في الأداء تصل إلى 10 أضعاف مقارنةً بالتطبيق المرجعي على V100.

الخلاصة

باختصار، إليك ثلاث استنتاجات بخصوص تسريع استدلال LLM من خلال التفرّق:

  • تفرّق الأوزان (50%)، وتفرّق التنشيط (90%)، وتفرّق MOE (على سبيل المثال، Mistral 8x7B مع تفرّق ديناميكي بنسبة 75%) هي عوامل متعامدة (يمكن أن تكون التأثيرات تراكمية، ولكن قد يتأثر أداء النموذج). وبدمج تأثير التسريع بمقدار 2-3x من مُحوّل PIT على النماذج المتفرقة، مقارنةً بأطر الاستدلال الرئيسية الحالية (TGI/vLLM، وما إلى ذلك)، يوجد حد تسريع نظري يتراوح بين 5-30 مرة.
  • زمن الاستجابة هو محور التركيز الرئيسي لتقنيات التفرّق الحالية (للتفرّق فعالية معينة؛ كلما زاد حجم الدفعة، ضعف تأثير التفرّق). سيكون اتجاه الإنتاجية اتجاهًا جديدًا للتحسين لأن تفرّق التنشيط يُظهر توزيعًا قانونيًا للقوى، مما يوفر إمكانات كبيرة للتحسين الهندسي.
  • تحويل التنشيطات غير ReLU إلى تنشيطات ReLU في LLM يُكلف نسبيًا منخفضًا (حوالي 3% من تكلفة الضبط الدقيق؛ جودة البيانات مهمة نسبيًا). بالإضافة إلى ذلك، تدريب المتنبئين في DejaVu يُكلف أقل (تدريب سريع ومستقل عن البيانات). وبالاقتران مع تقليل التكلفة الناتج عن زيادة سرعة الاستدلال، فهذه مبادرة ذات عائد استثماري مرتفع وقابلة للتطبيق تجاريًا.

الورقة المرجعية

[11] Pit: Optimization of dynamic sparse deep learning models via permutation invariant transformation [18] Performance Optimization of Deep Learning Sparse Matrix Kernels on Intel Max Series GPU

novita.ai توفر واجهة برمجة تطبيقات Stable Diffusion ومئات من واجهات برمجة التطبيقات الأسرع والأرخص لتوليد الصور بالذكاء الاصطناعي لأكثر من 10,000 نموذج. 🎯 أسرع توليد في 2 ثانية فقط، الدفع حسب الاستخدام، بسعر لا يقل عن 0.0015 دولار لكل صورة قياسية، يمكنك إضافة نماذجك الخاصة وتجنب صيانة GPU. مجانًا لمشاركة الإضافات مفتوحة المصدر.

قراءة موصى بها Unveiling LLM-Pruner Techniques: Doubling Inference Speed

Activation Sparsity Revolution: Enhancing Model Performance and Speedup Inference without Retraining!