نماذج ومنصات الذكاء الاصطناعي

UltraFastBERT: مقدمة في النماذج اللغوية الأسرع بشكل كبير

mm
أضف Unite.AI إلى مصادرك المفضلة على Google

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

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

هذا المقال يقدم UltraFastBERT، إطارًا قائمًا على BERT يطابق فعالية نماذج BERT الرائدة ولكن يستخدم فقط 0.3٪ من العصبونات أثناء الاستدلال، وبالتحديد 12 عصبونًا من أصل 4095 عصبون في كل طبقة. سنستكشف بنية UltraFastBERT ووظائفها ونَتائجها. دعونا نبدأ.

UltraFastBERT: مقدمة في النماذج اللغوية الأسرع بشكل كبير

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

في جوهره، إطار UltraFastBERT هو متغير من إطار BERT، ويتأسس على هذا المفهوم، ويرد الطبقات المتقدمة بالشبكات المتقدمة الأسرع في بنيته، مما يؤدي في النهاية إلى استخدام إطار UltraFastBERT فقط 0.3٪ من العصبونات المتاحة بينما يُنتج نتائج قابلة للمقارنة مع نماذج BERT بنفس الحجم وعمليات التدريب، خاصة في المهام الجانبية. بسبب تنفيذات تصميمه، تكون الطبقات الوسطة في إطار UltraFastBERT أسرع بشكل كبير،

إذا كان لدينا شبكة متقدمة سريعة (FFF) وشبكة متقدمة (FF)، كل منهما مع عدد n من العصبونات، فإن التعقيد الزمني لممر أمامي في شبكة متقدمة هو O(n) بينما التعقيد الزمني هو O(log2n) لشبكة متقدمة سريعة، والفرق في التعقيد الزمني يعود بشكل رئيسي إلى حقيقة أن العصبونات في شبكة متقدمة سريعة منظمة في شجرة ثنائية متوازنة، وعندما يتم توفير المدخل، تنفذ الشبكة فقط فرعًا واحدًا من الشجرة بشكل شرطي. بالإضافة إلى ذلك، يؤدي أداء الاستدلال على شبكة متقدمة سريعة إلى ضرب المصفوفة الشرطي (CMM)، حيث يتم ضرب صفوف المدخل مع أعمدة الوزن الطبيعية بشكل فردي، ويتحدد وزن الأعمدة للمتابعة بواسطة مخرجات العملية السابقة للضرب النقطي. وبالتالي، تستخدم الشبكة جميع العصبونات فقط لمدخلات قليلة، ولا يحتاج أي مدخل إلى أكثر من عصبونات قليلة لمعالجته بواسطة الشبكة. يتناقض ضرب المصفوفة الشرطي مع ضرب المصفوفة الكثيفة (DMM) الذي يحسب ضرب النقاط لجميع المدخلات مع جميع أعمدة الوزن.

لتلخيص، إطار UltraFastBERT هو إطار قائم على BERT يوفر نتائج قابلة للمقارنة مع نماذج اللغة الرائدة التي

  1. يستخدم فقط 0.3٪ من العصبونات المتاحة أثناء مرحلة الاستدلال، ويشغل فقط 12 عصبونًا من أصل 4095 عصبون في كل طبقة.
  2. يوفر أداءً قويًا قابلاً للمقارنة مع نماذج BERT الرائدة من خلال تنفيذ استراتيجيات التعدين الدقيق على المهام الجانبية.
  3. يوفر تنفيذًا أصليًا لضرب المصفوفة الشرطي (CMM) الذي يشكل الأساس للشبكة المتقدمة السريعة، ويتسبب في النهاية في تحقيق 78 ضعفًا في سرعة الأداء عند مقارنته بضرب المصفوفة الكثيفة المُحسّن الأصلي.

الشبكات العصبونية المتقدمة

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

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

متحركًا إلى الأمام، هناك مرحلتان رئيسيتان في عمل الشبكة العصبونية المتقدمة السريعة: مرحلة التحرك الأمامي، ومرحلة التخلف.

مرحلة التحرك الأمامي

في مرحلة التحرك الأمامي، يتم توفير المدخل للشبكة، وتنفذ الشبكة التحرك الأمامي. ثم تقوم الطبقات الخفية بحساب المجموع الوزني للمدخلات، وتُدخل غير الخطية في النموذج عن طريق تمرير مجموع المدخلات عبر دالة تنشيط مثل ReLu، Sigmoid، وTanH. يتكرر هذا العملية مرة بعد مرة حتى تصل الأوزان إلى طبقة المخرجات، ويتوقع النموذج.

مرحلة التخلف

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

UltraFastBERT: بنية النموذج وطريقة العمل

إطار UltraFastBERT مبني على بنية crammedBERT، ويتخذ إطار UltraFastBERT جميع مكونات إطار crammedBERT باستثناء طبيعة الطبقات الوسطة. بدلاً من ذلك، يُستبدل إطار UltraFastBERT المُشفر الموجود في الطبقات المتقدمة في الطبقات الوسطة بإطار crammedBERT بشبكات متقدمة سريعة. يقوم إطار UltraFastBERT بالتعديلات التالية على الشبكات المتقدمة الأصلية.

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

متحركًا إلى الأمام، في التدريب، يتبع إطار UltraFastBERT إجراء التدريب الذي تستخدمه إطار crammedBERT، والذي يتضمن تعطيل الإسقاط أثناء التدريب المسبق، و使用 جدول تعلم ثلاثي الحلقات. ثم يتم تعدين النموذج لتحقيق أداءه الأفضل على مجموعة واسعة من المهام، وخاصة معايير GLUE، لمدة 5 دورات.

الاستدلال

الاستدلال هو جزء مهم للشبكات المتقدمة السريعة، وهذه الشبكات المتقدمة السريعة تشكل جزءًا كبيرًا من النماذج اللغوية الكبيرة، وتمتاز بإمكانيات تسريع استثنائية. لفهم هذه الإمكانيات التسعيرية، دعونا نتخذ مثالًا من أحد النماذج اللغوية الأكثر تقدمًا، GPT-3، حيث تحتوي الشبكات المتقدمة في كل طبقة من طبقات المُشفر على أكثر من 49,100 عصبون. إذا كان يمكن تدريب شبكة متقدمة سريعة (بعمق أقصى 15)، يمكن أن تحل محل الشبكة المتقدمة الأصلية. ستكون الشبكة المتقدمة السريعة المقدمة تحتوي على أكثر من 65,000 عصبون، ولكنها ستستخدم فقط 16 من هذه العصبونات للاستدلال، وهو ما يعادل تقريبًا 0.03٪ من العصبونات المتاحة ل GPT-3.

الخوارزمية والتوافق

يستخدم إطار UltraFastBERT خوارزمية كودية وهمية للاستدلال السريع، والخوارزمية موضحة في الصورة أدناه.

هنا، يُ biểuظ B حجم الدفعة، و H يُ biểuظ عرض طبقات المدخلة، و M يُ biểuظ أعمدة.もう سبب قلق رئيسي مع استخدام نهج ضرب المصفوفة الشرطي هو ما إذا كان يجعل الشبكات المتقدمة السريعة غير متوافقة مع العملية التي يتم استخدامها حاليًا لضرب المصفوفة الكثيفة و الإطارات التعلم العميق الحالية.幸运ًا، لا يؤثر استخدام CMM على الأداء أو يُحدث عدم توافق، على الرغم من أنه يزيد من تعقيد التخزين المؤقت.

من المهم ملاحظة أن كجزء من الشبكة المتقدمة السريعة، يعتمد ضرب المصفوفة الكثيفة أحادي الخيط على تنفيذ تعليمات الضرب والتراكم (MAC)، ونتيجة لذلك، سيستفيد استبدال DMM bằng CMM من وحدات المعالجة المركزية (CPUs) لأنها تحتاج إلى تعليمات MAC أقل لحساب مخرجات الطبقة لكل عنصر. وبالتالي، على الرغم من أن “الفرع العصبي” يُعتبر إضافة إلى الإزاحة الذاكرة للمؤشرات ذات الصلة في الإطار، إلا أنه لا يُشغل تنبؤ الفرع بشكل كامل لتحقيق الشرطية من CMM، ويتحمل فقط تحميل أعمدة الوزن ذات الصلة من المصفوفة الوزنية بشكل فردي. بالإضافة إلى ذلك، نظرًا لأن الإطار يؤدي ضرب النقاط الصف-العامود، لا يزال المعالجة المتوازيّة للبيانات الفردية (SIMD) خيارًا جيدًا لتسريع تنفيذ الاستدلال لبعض الأجهزة.

UltraFastBERT: الأداء والنتائج

سنناقش أداء إطار UltraFastBERT لتعدين الدقيق وكذلك لمهام الاستدلال لتحليل كيفية أداء الإطار مقارنة بنماذج اللغة الرائدة.

نتائج التعدين الدقيق

الرسم التالي يُظهر أداء مختلف النماذج على مجموعات اختبار GLUE-dev. هنا، يُ biểuظ N عدد العصبونات المتاحة للإطارات للتدريب، و “المتوسط” يُ biểuظ متوسط الدرجات لجميع المهام.

كما يمكن رؤيته بوضوح، يُدير إطار UltraFastBERT الذي تم تدريبه على وحدة معالجة الرسومات A6000 لمدة 24 ساعة يحافظ على ما يقرب من 96٪ من الأداء التنبؤي على مهام GLUE الجانبية مقارنة بإطار BERT الأصلي. بالإضافة إلى ذلك، يمكن رؤية أن زيادة عمق الشبكات المتقدمة السريعة يؤدي إلى انخفاض في أداء الإطارات، على الرغم من أن معظم تدهور الأداء يحدث فقط لمهمة CoLa. إذا تم تجاهل مهمة CoLa لفترة، يُدير إطار UltraFastBERT درجة أداء تنبؤية تبلغ حوالي 98.6٪.

نتائج الاستدلال

في هذا القسم، سنقارن أداء شبكات متقدمة وشبكات متقدمة سريعة على تنفيذ الاستدلال، وتنقسم هذه التنفيذات إلى ثلاثة مستويات.

  1. في مستوى 1، يتم بناء التنفيذ باستخدام روتينات BLAS من المستوى 1، وهي منتجات ناقلة-مصفوفة وضرب ناقلة-ناقلة.
  2. في المستوى 2، تستخدم التنفيذات روتينات BLAS من المستوى 2، وهي منتجات ناقلة-مصفوفة المجموعة وضرب مصفوفة-مصفوفة المجموعة.
  3. في المستوى 3، تستخدم التنفيذات نهج ضرب المصفوفة-المصفوفة غير المجمعة من المستوى 3، و尽管 أنه أسرع تنفيذ متاح للشبكات المتقدمة، إلا أن هذه التنفيذات غير متاحة للشبكات المتقدمة السريعة لأن المكتبة لا تدعم التفرق الناقلي لضرب المصفوفة الشرطي.

بالإضافة إلى ذلك، يُشرع إطار UltraFastBERT تنفيذات GPU باستخدام نوى CUDA أو PyTorch المخصصة.

الجدول السابق يقارن أداء إطار UltraFastBERT مع سابقة إطارات BERT فيما يتعلق بالطبقات المتقدمة والطبقات المتقدمة السريعة، حيث تحتوي كل عمود على تعجيلات الاستدلال السريعة للطبقات المتقدمة مقارنة بالطبقات المتقدمة عند استخدام نفس المُحسّنات الخطية.

ومن الجدير بالذكر أن التعجيلات المُبلغ عنها في الجدول السابق مخصصة للمقارنات العادلة، أي أن كلا التنفيذين السريع والمتقدم يستخدمان نفس المُحسّنات الخطية. بالإضافة إلى ذلك، على المستويين 1 و 2، تكون تنفيذات الشبكات المتقدمة السريعة قادرة على أداء الاستدلال 48 و 78 مرة أسرع على التوالي من أسرع تنفيذ متقدم.

أفكار نهائية

في هذا المقال، تحدثنا عن UltraFastBERT، وهو متغير من إطار BERT، يُبنى على概念 أن الطبقات المتقدمة لا تستخدم 100٪ من العصبونات المتاحة لها لتوليد مخرجات لكل مدخل أثناء الاستدلال، مما يؤدي إلى هدر للموارد الذي يزيد التعقيد ووقت الحساب وتكلفة الحساب، ويرد الطبقات المتقدمة بالشبكات المتقدمة السريعة في بنيته، مما يؤدي في النهاية إلى استخدام إطار UltraFastBERT فقط 0.3٪ من العصبونات المتاحة بينما يُنتج نتائج قابلة للمقارنة مع نماذج BERT بنفس الحجم وعمليات التدريب، خاصة في المهام الجانبية.

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

كونال كيجريوال مهندس خلفية متخصص في بايثون، PostgreSQL، Redis، والبنية التحتية السحابية على GCP و AWS. لديه ثلاث سنوات من الخبرة في بناء وتوسيع الأنظمة الإنتاجية، وهو يكتب عن بنية تحتية الذكاء الاصطناعي، الأنظمة الموزعة، والهندسة المعمارية وراء نشر أعباء العمل لتعلم الآلة.