فهم بنية GPU لتحسين الاستدلال LLM

نشرت: 2024-04-02
عرض جدول المحتويات
مقدمة إلى LLMs وأهمية تحسين GPU
أساسيات بنية GPU لطلاب LLM – تعرف على الأجزاء الداخلية لوحدة معالجة الرسومات لديك
تدفق المعالجات المتعددة
ذاكرة التخزين المؤقت L2
عرض النطاق الترددي للذاكرة
ذاكرة الرام
مقارنة بطاقات GPU لمهام LLM
خاتمة
المصطلحات المستخدمة

مقدمة إلى LLMs وأهمية تحسين GPU

في عصرنا الحالي الذي يشهد تقدمًا في معالجة اللغات الطبيعية (NLP)، ظهرت نماذج اللغات الكبيرة (LLMs) كأدوات قوية لعدد لا يحصى من المهام، بدءًا من إنشاء النص وحتى الإجابة على الأسئلة والتلخيص. هذه أكثر من مجرد مولد رمزي محتمل. ومع ذلك، فإن التعقيد المتزايد وحجم هذه النماذج يشكل تحديات كبيرة من حيث الكفاءة والأداء الحسابي.

في هذه المدونة، نتعمق في تعقيدات بنية GPU، ونستكشف كيف تساهم المكونات المختلفة في استنتاج LLM. سنناقش مقاييس الأداء الرئيسية، مثل النطاق الترددي للذاكرة واستخدام النواة الموترة، ونوضح الاختلافات بين بطاقات GPU المختلفة، مما يتيح لك اتخاذ قرارات مستنيرة عند اختيار الأجهزة لمهام نماذج اللغة الكبيرة الخاصة بك.

في مشهد سريع التطور حيث تتطلب مهام البرمجة اللغوية العصبية موارد حسابية متزايدة باستمرار، يعد تحسين إنتاجية استدلال LLM أمرًا بالغ الأهمية. انضم إلينا ونحن نشرع في هذه الرحلة لإطلاق العنان للإمكانات الكاملة لحاملي شهادة LLM من خلال تقنيات تحسين وحدة معالجة الرسومات، والتعمق في الأدوات المتنوعة التي تمكننا من تحسين الأداء بشكل فعال.

أساسيات بنية GPU لطلاب LLM – تعرف على الأجزاء الداخلية لوحدة معالجة الرسومات لديك

مع طبيعة إجراء عمليات حسابية متوازية عالية الكفاءة، تصبح وحدات معالجة الرسومات الجهاز المفضل لتشغيل جميع مهام التعلم العميق، لذلك من المهم فهم النظرة العامة عالية المستوى لبنية وحدة معالجة الرسومات لفهم الاختناقات الأساسية التي تنشأ أثناء مرحلة الاستدلال. تُفضل بطاقات Nvidia بسبب CUDA (Compute Unified Device Architecture)، وهي منصة حوسبة متوازية خاصة وواجهة برمجة تطبيقات تم تطويرها بواسطة NVIDIA، والتي تسمح للمطورين بتحديد التوازي على مستوى الخيط في لغة البرمجة C، مما يوفر الوصول المباشر إلى مجموعة التعليمات الافتراضية لوحدة معالجة الرسومات والتوازي العناصر الحسابية.

بالنسبة للسياق، استخدمنا بطاقة NVIDIA للشرح لأنها مفضلة على نطاق واسع لمهام التعلم العميق كما ذكرنا سابقًا، وهناك مصطلحات قليلة أخرى مثل Tensor Cores تنطبق على ذلك.

دعونا نلقي نظرة على بطاقة GPU، هنا في الصورة، يمكننا أن نرى ثلاثة أجزاء رئيسية و(جزء رئيسي مخفي آخر) لجهاز GPU

  1. SM (تدفق المعالجات المتعددة)
  2. ذاكرة التخزين المؤقت L2
  3. عرض النطاق الترددي للذاكرة
  4. الذاكرة العالمية (DRAM)

تمامًا مثلما تعمل وحدة المعالجة المركزية (CPU) وذاكرة الوصول العشوائي (RAM) معًا، تكون ذاكرة الوصول العشوائي (RAM) هي مكان إقامة البيانات (أي الذاكرة) ووحدة المعالجة المركزية (CPU) لمعالجة المهام (أي العملية). في وحدة معالجة الرسومات، تحتفظ الذاكرة العالمية ذات النطاق الترددي العالي (DRAM) بأوزان النموذج (على سبيل المثال LLAMA 7B) التي يتم تحميلها في الذاكرة وعند الحاجة، يتم نقل هذه الأوزان إلى وحدة المعالجة (أي معالج SM) لإجراء العمليات الحسابية.

تدفق المعالجات المتعددة

المعالج المتدفق المتعدد أو SM عبارة عن مجموعة من وحدات التنفيذ الأصغر التي تسمى نوى CUDA (منصة حوسبة متوازية مملوكة لشركة NVIDIA)، إلى جانب وحدات وظيفية إضافية مسؤولة عن جلب التعليمات وفك تشفيرها وجدولةها وإرسالها. يعمل كل SM بشكل مستقل ويحتوي على ملف التسجيل الخاص به والذاكرة المشتركة وذاكرة التخزين المؤقت L1 ووحدة النسيج. تتميز SMs بأنها متوازية للغاية، مما يسمح لها بمعالجة آلاف الخيوط بشكل متزامن، وهو أمر ضروري لتحقيق إنتاجية عالية في مهام حوسبة وحدة معالجة الرسومات. يتم قياس أداء المعالج عمومًا بـ FLOPS، وهو الرقم. من العمليات العائمة يمكن أن يؤديها كل ثانية.

تتكون مهام التعلم العميق في الغالب من عمليات الموتر، مثل مضاعفة المصفوفة والمصفوفة، وقد قدمت نفيديا نوى الموتر في وحدات معالجة الرسوميات من الجيل الأحدث، والتي تم تصميمها خصيصًا لتنفيذ عمليات الموتر هذه بطريقة فعالة للغاية. كما ذكرنا سابقًا، تعد نوى Tensor مفيدة عندما يتعلق الأمر بمهام التعلم العميق وبدلاً من نوى CUDA، يجب علينا التحقق من نوى Tensor لتحديد مدى كفاءة وحدة معالجة الرسومات في أداء التدريب/الاستدلال لـ LLM.

ذاكرة التخزين المؤقت L2

ذاكرة التخزين المؤقت L2 هي ذاكرة ذات نطاق ترددي عالي يتم مشاركتها بين SMs بهدف تحسين الوصول إلى الذاكرة وكفاءة نقل البيانات داخل النظام. إنها نوع أصغر وأسرع من الذاكرة وتقع بالقرب من وحدات المعالجة (مثل المعالجات المتعددة المتدفقة) مقارنةً بذاكرة الوصول العشوائي الديناميكية (DRAM). فهو يساعد على تحسين كفاءة الوصول إلى الذاكرة بشكل عام عن طريق تقليل الحاجة إلى الوصول إلى ذاكرة الوصول العشوائي الديناميكية (DRAM) الأبطأ لكل طلب ذاكرة.

عرض النطاق الترددي للذاكرة

لذلك، يعتمد الأداء على مدى سرعة نقل الأوزان من الذاكرة إلى المعالج ومدى كفاءة وسرعة المعالج في معالجة الحسابات المحددة.

عندما تكون سعة الحوسبة أعلى/أسرع من معدل نقل البيانات بين الذاكرة إلى SM، فإن SM سوف يتضور جوعًا لمعالجة البيانات وبالتالي لا يتم استخدام الحوسبة بشكل كافٍ، يُعرف هذا الموقف الذي يكون فيه عرض النطاق الترددي للذاكرة أقل من معدل الاستهلاك بالمرحلة المرتبطة بالذاكرة . من المهم جدًا ملاحظة ذلك لأن هذا هو عنق الزجاجة السائد في عملية الاستدلال.

على العكس من ذلك، إذا كانت عملية الحوسبة تستغرق وقتًا أطول للمعالجة وإذا تم وضع المزيد من البيانات في قائمة الانتظار لإجراء عملية الحوسبة، فإن هذه الحالة تكون مرحلة مرتبطة بالحوسبة .

للاستفادة الكاملة من وحدة معالجة الرسومات، يجب أن نكون في حالة حسابية مع إجراء الحسابات الجارية بأكبر قدر ممكن من الكفاءة.

ذاكرة الرام

تعمل DRAM كذاكرة أساسية في وحدة معالجة الرسومات، مما يوفر مجموعة كبيرة من الذاكرة لتخزين البيانات والتعليمات اللازمة للحساب. يتم تنظيمه عادةً في تسلسل هرمي، مع بنوك وقنوات ذاكرة متعددة لتمكين الوصول عالي السرعة.

بالنسبة لمهمة الاستدلال، تحدد ذاكرة الوصول العشوائي الديناميكية (DRAM) الخاصة بوحدة معالجة الرسومات حجم النموذج الذي يمكننا تحميله، ويحدد حساب FLOPS وعرض النطاق الترددي الإنتاجية التي يمكننا الحصول عليها.

مقارنة بطاقات GPU لمهام LLM

للحصول على معلومات حول أعداد النوى الموترة وسرعة النطاق الترددي، يمكن للمرء الاطلاع على المستند التقني الذي أصدرته الشركة المصنعة لوحدة معالجة الرسومات. هنا مثال،

آر تي إكس إيه6000 آر تي إكس 4090 ار تي اكس 3090
حجم الذاكرة 48 جيجابايت 24 جيجابايت 24 جيجابايت
نوع الذاكرة GDDR6 GDDR6X
عرض النطاق 768.0 جيجابايت/ثانية 1008 جيجابايت/ثانية 936.2 جيجابايت/ثانية
كودا النوى / GPU 10752 16384 10496
النوى الموتر 336 512 328
ذاكرة التخزين المؤقت L1 128 كيلو بايت (لكل SM) 128 كيلو بايت (لكل SM) 128 كيلو بايت (لكل SM)
FP16 غير موتر 38.71 تفلوب (1:1) 82.6 35.58 تفلوب (1:1)
FP32 غير موتر 38.71 تفلوب 82.6 35.58 تفلوب
FP64 غير موتر 1,210 جيجا فلوبس (1:32) 556.0 جيجا فلوبس (1:64)
ذروة FP16 Tensor TFLOPS مع FP16 تتراكم 154.8/309.6 330.3/660.6 142/284
ذروة FP16 Tensor TFLOPS مع FP32 تتراكم 154.8/309.6 165.2/330.4 71/142
ذروة موتر BF16 TFLOPS مع FP32 154.8/309.6 165.2/330.4 71/142
ذروة TF32 الموتر TFLOPS 77.4/154.8 82.6/165.2 35.6/71
قمم التوتر INT8 الذروة 309.7/619.4 660.6/1321.2 284/568
قمم الموتر INT4 الذروة 619.3/1238.6 1321.2/2642.4 568/1136
ذاكرة التخزين المؤقت L2 6 ميجا بايت 72 ميجا بايت 6 ميجا بايت
حافلة الذاكرة 384 بت 384 بت 384 بت
وحدات TMU 336 512 328
شرطة عمان السلطانية 112 176 112
عدد SM 84 128 82
النوى RT 84 128 82

هنا يمكننا أن نرى أن FLOPS مذكور خصيصًا لعمليات Tensor، وستساعدنا هذه البيانات في مقارنة بطاقات GPU المختلفة ووضع القائمة المختصرة للبطاقة المناسبة لحالة الاستخدام لدينا. من الجدول، على الرغم من أن A6000 يحتوي على ضعف الذاكرة 4090، فإن تقلبات الشد وعرض النطاق الترددي للذاكرة 4090 أفضل من حيث الأرقام وبالتالي أكثر قوة لاستدلال نماذج اللغة الكبيرة.

اقرأ المزيد: Nvidia CUDA في 100 ثانية

خاتمة

في مجال البرمجة اللغوية العصبية الذي يتقدم بسرعة، أصبح تحسين نماذج اللغة الكبيرة (LLMs) لمهام الاستدلال مجالًا بالغ الأهمية للتركيز. كما اكتشفنا، تلعب بنية وحدات معالجة الرسومات دورًا محوريًا في تحقيق الأداء العالي والكفاءة في هذه المهام. يعد فهم المكونات الداخلية لوحدات معالجة الرسومات، مثل Streaming Multiprocessors (SMs) وذاكرة التخزين المؤقت L2 وعرض النطاق الترددي للذاكرة وDRAM، أمرًا ضروريًا لتحديد الاختناقات المحتملة في عمليات استدلال LLM.

تكشف المقارنة بين بطاقات NVIDIA GPU المختلفة – RTX A6000 و RTX 4090 و RTX 3090 – عن اختلافات كبيرة من حيث حجم الذاكرة وعرض النطاق الترددي وعدد CUDA و Tensor Cores، من بين عوامل أخرى. تعتبر هذه الفروق ضرورية لاتخاذ قرارات مستنيرة بشأن وحدة معالجة الرسومات الأكثر ملاءمة لمهام LLM محددة. على سبيل المثال، في حين أن RTX A6000 يوفر حجمًا أكبر للذاكرة، فإن RTX 4090 يتفوق من حيث Tensor FLOPS وعرض النطاق الترددي للذاكرة، مما يجعله خيارًا أكثر فعالية لمهام الاستدلال LLM الصعبة.

يتطلب تحسين استدلال LLM اتباع نهج متوازن يأخذ في الاعتبار كلاً من القدرة الحسابية لوحدة معالجة الرسومات والمتطلبات المحددة لمهمة LLM الحالية. يتضمن اختيار وحدة معالجة الرسومات المناسبة فهم المفاضلات بين سعة الذاكرة وقوة المعالجة وعرض النطاق الترددي لضمان قدرة وحدة معالجة الرسومات على التعامل بكفاءة مع أوزان النموذج وإجراء العمليات الحسابية دون أن تصبح عنق الزجاجة. مع استمرار تطور مجال البرمجة اللغوية العصبية (NLP)، سيكون البقاء على اطلاع بأحدث تقنيات GPU وقدراتها أمرًا بالغ الأهمية لأولئك الذين يتطلعون إلى دفع حدود ما هو ممكن باستخدام نماذج اللغة الكبيرة.

المصطلحات المستخدمة

  • الإنتاجية:

في حالة الاستدلال، فإن الإنتاجية هي مقياس لعدد الطلبات/المطالبات التي تتم معالجتها لفترة زمنية معينة. يتم قياس الإنتاجية عادةً بطريقتين:

  • الطلبات في الثانية (RPS) :
    • يقيس RPS عدد طلبات الاستدلال التي يمكن للنموذج التعامل معها خلال ثانية واحدة. يتضمن طلب الاستدلال عادةً إنشاء استجابة أو تنبؤ بناءً على بيانات الإدخال.
    • بالنسبة إلى إنشاء LLM، يشير RPS إلى مدى سرعة استجابة النموذج للمطالبات أو الاستعلامات الواردة. تشير قيم RPS الأعلى إلى استجابة وقابلية توسع أفضل لتطبيقات الوقت الفعلي أو تطبيقات الوقت الفعلي تقريبًا.
    • غالبًا ما يتطلب تحقيق قيم RPS العالية استراتيجيات نشر فعالة، مثل تجميع الطلبات المتعددة معًا لاستهلاك النفقات العامة وزيادة الاستفادة من الموارد الحسابية.
  • الرموز في الثانية (TPS) :
    • يقيس TPS السرعة التي يمكن للنموذج من خلالها معالجة وإنشاء الرموز المميزة (الكلمات أو الكلمات الفرعية) أثناء إنشاء النص.
    • في سياق إنشاء LLM، يعكس TPS إنتاجية النموذج من حيث إنشاء النص. فهو يشير إلى مدى سرعة النموذج في إنتاج استجابات متماسكة وذات معنى.
    • تشير قيم TPS الأعلى إلى إنشاء نص أسرع، مما يسمح للنموذج بمعالجة المزيد من بيانات الإدخال وإنشاء استجابات أطول في فترة زمنية معينة.
    • غالبًا ما يتضمن تحقيق قيم TPS العالية تحسين بنية النموذج، وموازنة العمليات الحسابية، والاستفادة من مسرعات الأجهزة مثل وحدات معالجة الرسومات لتسريع إنشاء الرموز المميزة.
  • وقت الإستجابة:

يشير زمن الوصول في LLMs إلى التأخير الزمني بين الإدخال والإخراج أثناء الاستدلال. يعد تقليل زمن الوصول أمرًا ضروريًا لتعزيز تجربة المستخدم وتمكين التفاعلات في الوقت الفعلي في التطبيقات التي تستفيد من LLMs. من الضروري تحقيق التوازن بين الإنتاجية وزمن الوصول بناءً على الخدمة التي نحتاج إلى تقديمها. يعد زمن الوصول المنخفض أمرًا مرغوبًا فيه لحالة مثل روبوتات الدردشة/مساعد الطيار التفاعلية في الوقت الفعلي، ولكنه ليس ضروريًا لحالات معالجة البيانات المجمعة مثل إعادة معالجة البيانات الداخلية.

اقرأ المزيد عن التقنيات المتقدمة لتعزيز إنتاجية LLM هنا.