الذكاء الاصطناعي
PowerInfer: خدمة نموذج لغة كبير سريع مع وحدة معالجة رسومات مستهلك

بسبب قدراتهم الاستثنائية في إنشاء المحتوى، أصبحت النماذج اللغوية الكبيرة التوليدية في طليعة ثورة الذكاء الاصطناعي، مع الجهود الجارية لتعزيز قدراتها التوليدية. ومع ذلك، على الرغم من التقدم السريع، تتطلب هذه النماذج قدرة حسابية و موارد كبيرة. هذا يرجع في الغالب إلى أن هذه النماذج تتكون من مئات المليارات من المعاملات. بالإضافة إلى ذلك، لتشغيل النماذج الذكية التوليدية بشكل سلس، تعتمد على آلاف وحدات معالجة الرسومات، مما يؤدي إلى تكاليف تشغيلية كبيرة. التكاليف التشغيلية العالية هي أحد الأسباب الرئيسية التي تجعل نماذج الذكاء الاصطناعي التوليدية لم يتم نشرها بعد على أجهزة شخصية.
في هذه المقالة، سنناقش PowerInfer، وهو محرك استدلال سريع لنموذج لغة كبير مصمم لأجهزة الكمبيوتر القياسية التي تعمل بوحدة معالجة رسومات مستهلكة واحدة. إطار PowerInfer يهدف إلى استخدام الخصائص المحلية العالية الموجودة في استدلال نموذج لغة كبير، والتي يتميز بها توزيع القوة في تنشيط العصبونات. هذا يعني أن هناك مجموعة صغيرة من العصبونات “الساخنة” تكون نشطة باستمرار عبر المدخلات، في حين أن الباقي، المسمى “العصبونات الباردة”، يتم تنشيطها بناءً على مدخلات أو متطلبات محددة. هذا النهج يسمح لإطار PowerInfer بتقليل القدرة الحسابية اللازمة لنموذج الذكاء الاصطناعي لإنتاج المخرجات المرغوبة.
سنغوص في إطار PowerInfer بالتفصيل، واستكشاف منهجيته وخط أنابيبه وتطبيقاته العملية. هيا نبدأ.
PowerInfer: نموذج لغة كبير سريع مع وحدة معالجة رسومات مستهلك
نماذج اللغة الكبيرة التوليدية، مثل ChatGPT و DALL-E، معروفة بمهام معالجة اللغة الطبيعية المتقدمة. بسبب متطلباتها الحسابية العالية، يتم نشر هذه النماذج عادةً في مراكز البيانات مع وحدات معالجة رسومات متقدمة. الحاجة إلى这种 القدرة الحسابية العالية تقيد نشرها بمراكز البيانات، مما يبرز الحاجة إلى نشر نماذج اللغة الكبيرة على منصات محلية أكثر سهولة مثل أجهزة الكمبيوتر الشخصية.
زيادة إمكانية الوصول إلى نماذج اللغة الكبيرة يمكن أن تقلل من تكاليف الاستدلال وتوليد المحتوى، وتحسين خصوصية البيانات، وتمكين تعديل النماذج. بالإضافة إلى ذلك، في حين أن نشر مراكز البيانات يركز على الإنتاجية العالية، يمكن لنشر النماذج اللغوية المحلية التركيز على انخفاض التأخير بسبب أحجام الدفعات الصغيرة.
ومع ذلك، نشر هذه النماذج على أجهزة محلية يطرح تحديات كبيرة بسبب متطلباتها الكبيرة من الذاكرة. تعمل نماذج اللغة الكبيرة، كمنقولات ذاتية، لتوليد النص حرفًا بعد حرف، مع كل حرف يتطلب الوصول إلى النموذج بأكمله، الذي يتكون من مئات المليارات من المعاملات. هذا يتطلب العديد من وحدات معالجة الرسومات المتقدمة من أجل توليد مخرجات منخفضة التأخير. بالإضافة إلى ذلك، تعمل النشرات المحلية عادةً على معالجة الطلبات الفردية بشكل تسلسلي، مما يحد من إمكانية المعالجة المتوازية.
لمواجهة متطلبات الذاكرة المعقدة لإطار الذكاء الاصطناعي التوليدي، تستخدم الحلول الحالية أساليب مثل إزالة النموذج وتقليل الحجم. تقنيات مثل التقطير والتقليم والكمية تقلل من حجم النموذج ولكن لا تزال كبيرة جدًا لوحدات معالجة الرسومات من الدرجة المستهلكة في أجهزة الكمبيوتر الشخصية. إزالة النموذج، التي تقسم النموذج في طبقة الترانسفورمر بين وحدات المعالجة المركزية ووحدات معالجة الرسومات، تسمح بمعالجة الطبقات الموزعة عبر ذاكرة وحدة المعالجة المركزية ووحدة معالجة الرسومات. ومع ذلك، هذا الأسلوب محدود بسبب الاتصال البطيء بين وحدات المعالجة المركزية ووحدات معالجة الرسومات، وقدرات الحوسبة المحدودة لوحدات المعالجة المركزية، مما يؤدي إلى زمن استدلال عالٍ.
يطرح إطار PowerInference أن عدم التطابق بين سمات استدلال نموذج اللغة الكبيرة وهيكل الأجهزة هو السبب الرئيسي لمشاكل الذاكرة في استدلال نموذج اللغة الكبيرة. في المثالية، يجب تخزين البيانات التي يتم الوصول إليها بانتظام في وحدات معالجة الرسومات عالية السعة وذاكرة محدودة، بينما يجب تخزين البيانات التي يتم الوصول إليها أقل في وحدات المعالجة المركزية منخفضة السعة وذاكرة كبيرة. ومع ذلك، يؤدي حجم المعاملات الكبير في كل تكرار من استدلال نموذج اللغة الكبيرة إلى جعل مجموعة العمل كبيرة جدًا لوحدة معالجة رسومات واحدة، مما يؤدي إلى استغلال غير فعال للخصائص المحلية.
عملية الاستدلال في نماذج اللغة الكبيرة تظهر خصائص محلية عالية، مع كل تكرار ينشط عددًا محدودًا من العصبونات. يهدف إطار PowerInference إلى استغلال هذه الخصائص المحلية من خلال إدارة عدد صغير من العصبونات “الساخنة” مع وحدة معالجة الرسومات، بينما تعمل وحدة المعالجة المركزية على العصبونات “الباردة”. قبل تشغيل الطلبات، يقوم بتحديد وتحميل العصبونات الساخنة في وحدة معالجة الرسومات، ويتعرف على العصبونات النشطة أثناء وقت التشغيل. هذا النهج يقلل من عمليات نقل البيانات التكلفة عبر وحدات المعالجة المركزية ووحدات معالجة الرسومات، مما يسمح لوحدات المعالجة المركزية ووحدات معالجة الرسومات بمعالجة العصبونات المخصصة بشكل مستقل.
ومع ذلك، يواجه نشر نماذج اللغة الكبيرة على أجهزة محلية عقبات. تتطلب المنظمات التنبؤية، التي تعتبر أساسية لتحديد العصبونات النشطة، ذاكرة وحدة معالجة رسومات كبيرة. يستخدم إطار PowerInfer طريقة تكيّف لإنشاء منظمات تنبؤية صغيرة للطبقات التي تظهر انحرافًا وفراغًا أكبر، مع الحفاظ على الدقة أثناء تقليل الحجم. بالإضافة إلى ذلك، تتطلب إطارات نموذج اللغة الكبيرة مشغلين خفيفين. يستخدم إطار PowerInfer مشغلين خفيفين يتواصلون مباشرة مع العصبونات، مما يلغي الحاجة إلى تحويلات تنسيق خفيف خلال وقت التشغيل.
أخيرًا، يعتبر وضع العصبونات النشطة بين وحدة المعالجة المركزية ووحدة معالجة الرسومات تحديًا. يستخدم إطار PowerInfer مرحلة غير متصل لإنشاء سياسة وضع العصبونات، ويقيس تأثير كل عصبون على نتائج استدلال نموذج اللغة الكبيرة، ويسطرها كمسألة خطية صحيحة.
الهيكل والمنهجية
الشكل التالي يشرح هيكل إطار PowerInfer المكون من مكونات غير متصل ومتصل في خط الأنابيب.

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

منظمات تنبؤية تكيّفية
المفهوم الأساسي لتقليل الأحمال الحسابية بواسطة محرك الاستدلال المتصل في إطار PowerInfer هو أنه يعالج فقط العصبونات التي يتوقع أن تكون نشطة. تقليديًا، في كل طبقة من طبقات الترانسفورمر، يستخدم الإطار منظمين تنبؤيين لتنبؤ بتنشيط العصبونات في كتلة MLP وكتلة الانتباه الذاتي، ونتيجة لذلك يتم تقييد حساب الاستدلال إلى العصبونات التي تتنبأ بنشاطها. ومع ذلك، من الصعب تصميم منظمات تنبؤية فعالة لنشر محلي بسبب أن الموارد المحدودة تجعل من الصعب تحقيق توازن بين حجم النموذج ودقة التنبؤ. منذ أن يتم نشر هذه المنظمات التنبؤية بشكل متكرر لتنبؤ بالعصبونات النشطة، يجب تخزينها في وحدة معالجة الرسومات لتمكين الوصول السريع. ومع ذلك، عادة ما ينشر الإطارات عددًا كبيرًا من المنظمات التنبؤية التي تحتل ذاكرة كبيرة، حتى تلك المطلوبة لتخزين معاملات نموذج اللغة الكبيرة.
علاوة على ذلك، يتم تحديد حجم المنظمات التنبؤية عادةً بواسطة两个 عوامل: الانحراف الداخلي وفراغ طبقات نموذج اللغة الكبيرة.

لتحسين هذه العوامل، يستخدم إطار PowerInfer طريقة تدريب تكراري لكل منظم تنبؤي في طبقة الترانسفورمر دون حجم ثابت. في الخطوة الأولى من هذه الطريقة التدريبية، يتم تحديد حجم نموذج الأساس بناءً على ملف تعريف فراغ النموذج، ويتم تعديل حجم النموذج تكرارياً مع مراعاة انحراف التنشيط الداخلي للحفاظ على الدقة.
وضع وادارة العصبونات
كما ذكرنا سابقًا، أثناء تحديد مكون حل السياسة غير المتصل سياسة وضع العصبونات، يقوم محرك الاستدلال المتصل بتحميل النموذج إلى ذاكرة وحدة المعالجة المركزية ووحدة معالجة الرسومات وفقًا للسياسة المولدة. لكل طبقة قد تحتوي على مصفوفات وزن متعددة، يخصص إطار PowerInfer كل عصبون إلى وحدة المعالجة المركزية أو وحدة معالجة الرسومات بناءً على ما إذا كان العصبون نشطًا بشكل ساخن. من المهم ضمان حساب دقيق للعصبونات المقسمة في التسلسل المحدد للحصول على نتائج دقيقة. لمواجهة هذا، يولد إطار PowerInfer جدولين للعصبونات: واحد في ذاكرة وحدة معالجة الرسومات، وواحد في ذاكرة وحدة المعالجة المركزية، مع كل جدول يرتبط العصبونات الفردية بموضعها الأصلي في المصفوفة.
مشغل ذو وعي بالعصبونات
نظرًا لفراغ التنشيط الملاحظ في نماذج اللغة الكبيرة، يمكن تجاوز العصبونات غير النشطة وأوزانها بواسطة عمليات الضرب المصفوفي، مما يخلق حاجة لاستخدام مشغلين خفيفين. بدلاً من استخدام مشغلين خفيفين لهذه القيود، يستخدم إطار PowerInfer مشغلين ذوي وعي بالعصبونات لحساب العصبونات النشطة وأوزانها مباشرةً على وحدة المعالجة المركزية ووحدة معالجة الرسومات دون الحاجة إلى تحويل إلى تنسيق كثيف خلال وقت التشغيل. تختلف مشغلات العصبونات عن المشغلات الخفيفة التقليدية لأنها تركز على صفوف وعمود فردية داخل مصفوفة واحدة بدلاً من التركيز على المصفوفة بأكملها.
سياسة وضع العصبونات
للاستفادة من القدرات الحسابية لوحدات المعالجة المركزية ووحدات معالجة الرسومات، يولد المكون غير المتصل في إطار PowerInfer سياسة وضع توجيهية توجيه الإطار عند تخصيص العصبونات إلى وحدة المعالجة المركزية أو وحدة معالجة الرسومات. يولد مكون حل السياسة هذه السياسة ويتحكم في وضع العصبونات داخل كل طبقة، مما يساعد في تحديد التحميل الحسابي للوحدات المعالجة الفردية. عند توليد سياسة الوضع، يأخذ مكون حل السياسة في الاعتبار عوامل مختلفة بما في ذلك تكرار التنشيط لكل عصبون، وأعباء الاتصالات، والقدرات الحسابية مثل النطاق الترددي وحجم الذاكرة لكل وحدة معالجة.
النتائج والتنفيذ
لإظهار قدرات التعميم لإطار PowerInfer عبر الأجهزة ذات التكوينات المادية المختلفة، يتم إجراء التجارب على جهازين كمبيوتر شخصيين متميزين: واحد مجهز بمعالج Intel i9-13900K، ووحدة معالجة رسومات NVIDIA RTX 4090، و 192 جيجابايت من ذاكرة المضيف، بينما يعمل الآخر بمعالج Intel i7-12700K، ووحدة معالجة رسومات NVIDIA RTX 2080Ti، و 64 جيجابايت من ذاكرة المضيف.
يتضمن أداء نهاية إلى نهاية لإطار PowerInfer مقارنة مع llama.cpp ب حجم دفعة 1، وإعدادات نشر افتراضية. ثم يتم أخذ عينات من الدفعات من مجموعات بيانات ChatGPT و Alpaca، مع مراعاة تباين طول المدخلات والمخرجات في الحوارات الواقعية. يظهر الشكل التالي أوقات توليد الموديلات المختلفة.

كما يمكن ملاحظة، يولد إطار PowerInfer 8.32 رمزًا في الثانية، ويمكن أن يصل إلى 16 رمزًا في الثانية، وبالتالي يتفوق على إطار llama.cpp بحجم هام. بالإضافة إلى ذلك،随ما يزيد عدد الرموز المخرجة، يتحسن أداء إطار PowerInfer، حيث يؤثر مرحلة التوليد بشكل كبير على وقت الاستدلال الإجمالي.

علاوة على ذلك، كما يمكن ملاحظة في الصورة أعلاه، يتفوق إطار PowerInfer على إطار llama.cpp على أجهزة الكمبيوتر الشخصية منخفضة المواصفات، مع معدل توليد أقصى يصل إلى 7 رموز في الثانية، ومعدل توليد رموز متوسط يصل إلى 5 رموز في الثانية.

تظهر الصورة أعلاه توزيع أحمال العصبونات بين وحدة المعالجة المركزية ووحدة معالجة الرسومات للإطاراتين. كما يمكن ملاحظة، يزيد إطار PowerInfer من حصة وحدة معالجة الرسومات من أحمال العصبونات بشكل كبير، من 20% إلى 70%.

تظهر الصورة أعلاه مقارنة الأداء بين الإطاران على جهازين كمبيوتر شخصيين مختلفين. كما يمكن ملاحظة، ي提供 إطار PowerInfer بشكل متسق سرعة توليد رموز عالية عند مقارنته بإطار llama.cpp.
أفكار ختامية
في هذه المقالة، ناقشنا PowerInfer، وهو محرك استدلال سريع لنموذج لغة كبير مصمم لأجهزة الكمبيوتر القياسية التي تعمل بوحدة معالجة رسومات مستهلكة واحدة. في جوهره، يحاول إطار PowerInfer استغلال الخصائص المحلية العالية الموجودة في استدلال نماذج اللغة الكبيرة، وهو أسلوب يتميز بتوزيع القوة في تنشيط العصبونات. إطار PowerInfer هو نظام استدلال سريع مصمم لنموذج لغة كبير يستخدم منظمات تنبؤية تكيّفية ومشغلين ذوي وعي بالعصبونات لتنشيط العصبونات والفراغ الحسابي.












