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

EfficientViT: محول رؤية موفّر للذاكرة للرؤية الحاسوبية عالية الدقة

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

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

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

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

مقدمة في محولات الرؤية وEfficientViT

تظل محولات الرؤية واحدة من الإطارات الأكثر شعبية في صناعة الرؤية بالكمبيوتر لأنها توفر أداءً متفوقًا وقدرات حاسوبية عالية. ومع ذلك، مع تحسين الدقة والأداء لنموذج محول الرؤية، تزداد التكاليف التشغيلية والتحميل الحاسوبي أيضًا. على سبيل المثال، تستخدم النماذج الحالية المعروفة بتوفير أداء متقدم على مجموعات بيانات ImageNet مثل SwinV2 وV-MoE 3 مليارات و14.7 مليار معلمة على التوالي. حجم هذه النماذج الكبير جنبًا إلى جنب مع التكاليف الحاسوبية والمتطلبات يجعلها غير مناسبة بشكل عملي للأجهزة والتطبيقات في الوقت الفعلي.

يهدف نموذج EfficientViT إلى استكشاف كيفية تعزيز أداء نماذج محولات الرؤية، واكتشاف المبادئ التي تكمن وراء تصميم هياكل الإطار القائمة على التحويل الفعال. يعتمد نموذج EfficientViT على إطارات تحويل رؤية موجودة مثل Swin وDeiT، ويفحص ثلاثة عوامل أساسية تؤثر على سرعة الاستدلال للنماذج، بما في ذلك التكرار الحسابي والوصول إلى الذاكرة واستخدام المعلمات. بالإضافة إلى ذلك، يلاحظ النموذج أن سرعة نماذج محول الرؤية مقيدة بالذاكرة، مما يعني أن الاستخدام الكامل للقدرة الحاسوبية في وحدات المعالجة المركزية / وحدات معالجة الرسومات مقيد أو محظور بسبب تأخير الوصول إلى الذاكرة، مما يؤدي إلى تأثير سلبي على سرعة تشغيل التحويلات. العمليات على مستوى العناصر وإعادة تشكيل الموترات في MHSA أو شبكة الانتباه الذاتي متعددة الرؤوس من أكثر العمليات التي تحدّها حركة البيانات في الذاكرة. ويؤدي ضبط التوازن بين طبقات الشبكة الأمامية FFN وطبقات MHSA إلى تقليل الوصول إلى الذاكرة دون التضحية بالأداء. كما وجد الباحثون أن التشابه بين خرائط الانتباه عبر الرؤوس يرجع إلى تكرار الإسقاطات الخطية، وهو ما يمكن معالجته بتصميم أفضل.

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

كما يمكن رؤيته في الصورة أعلاه، يؤدي إطار EfficientViT بشكل أفضل من نماذج CNN وViT الحالية من حيث الدقة والسرعة. ولكن كيف تمكّن إطار EfficientViT من التفوق على بعض الأطر الحالية؟

EfficientViT: تحسين كفاءة محولات الرؤية

يهدف نموذج EfficientViT إلى تحسين كفاءة نماذج محول الرؤية الحالية من ثلاث زوايا:

  1. التكرار الحسابي.
  2. الوصول إلى الذاكرة.
  3. استخدام المعلمات.

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

الوصول إلى الذاكرة والكفاءة

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

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

من ناحية أخرى، يهدف إطار EfficientViT إلى تقليل تكلفة الوصول إلى الذاكرة من خلال تقليل عدد الطبقات غير الفعالة للذاكرة في الإطار. يقلل النموذج من حجم DeiT-T وSwin-T إلى شبكات فرعية صغيرة بمعدلات معالجة للاستدلال أعلى بمقدار 1.25 و1.5 مرة، ويقارن أداء هذه الشبكات الفرعية مع نسبة طبقات MHSA. ويقارن الشكل أدناه الدقة عند تغيير نسبة طبقات MHSA. ويصف النص الأصلي التحسن بأنه 20–40٪؛ وهذا نقل لوصف المقال للرسم، وليس نتيجة قياس مستقلة هنا.

كفاءة الحساب

تقسّم طبقات MHSA تسلسل الإدخال إلى فضاءات فرعية أو رؤوس متعددة، وتحسب خرائط الانتباه لكل منها، مما يحسّن الأداء. لكن حساب هذه الخرائط مكلف، ولذلك يدرس EfficientViT تكرار الانتباه في نماذج ViT الصغيرة. ويقيس أقصى تشابه جيبي بين كل رأس والرؤوس الأخرى في نموذجي DeiT-T وSwin-T المخفّضي العرض، عند تسريع الاستدلال بمقدار 1.25 مرة. وتبيّن الخرائط أن رؤوسًا كثيرة تتعلم أنماطًا متشابهة بسبب إسقاط الميزات الكاملة نفسها على كل رأس، مما يسبب تكرارًا حسابيًا.

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

كفاءة المعلمات

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

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

EfficientViT: البنية

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

مكونات إطار EfficientViT

تمثل الكتلة الأساسية لشبكة محول الرؤية الأكثر كفاءة في الشكل التالي.

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

تخطيط الساندويتش

يستخدم النموذج ترتيب «الساندويتش» لبناء كتلة أكثر كفاءة في الذاكرة. ويضع طبقة MHSA واحدة لخلط المعلومات المكانية بين طبقات FFN الكفؤة للتواصل بين القنوات، فيقل عدد طبقات الانتباه الذاتي المقيّدة بحركة الذاكرة. ولتعزيز التفاعل المحلي بين الرموز قبل كل شبكة أمامية، يضيف عملية DWConv، مما يمنح التصميم انحيازًا استقرائيًا محليًا.

انتباه المجموعة المتسلسلة

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

إعادة تخصيص المعلمات

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

تظهر نظرة عامة على إطار EfficientViT في الصورة أعلاه، حيث تظهر الأجزاء:

  1. هيكل EfficientViT،
  2. كتلة تخطيط الساندويتش،
  3. انتباه المجموعة المتسلسلة.

 

EfficientViT: هياكل الشبكة

تُظهر الصورة أعلاه بنية شبكة EfficientViT. ويستخدم النموذج تضمين رقع متداخلة [20,80] يحوّل الرقع بحجم 16×16 إلى رموز ذات بُعد C1، لتعزيز تعلّم الخصائص البصرية منخفضة المستوى. وتتكون الشبكة من ثلاث مراحل؛ وعند الانتقال بينها، تُخفض الدقة المكانية إلى النصف، فينخفض عدد الرموز إلى الربع. وتستخدم كتل خفض الدقة تصميمًا متبقيًا معكوسًا يحل محل طبقة الانتباه. كما يُستخدم BatchNorm بدلًا من LayerNorm، إذ يمكن دمجه في الطبقة الخطية أو الالتفافية السابقة عند الاستدلال لتقليل كلفة التنفيذ.

عائلة EfficientViT

تتكون عائلة EfficientViT من 6 نماذج ذات أعماق وعروض مختلفة، مع عدد محدد من الرؤوس لكل مرحلة. وعلى غرار MobileNetV3، تستخدم المراحل المبكرة كتلًا أقل لأن الميزات عالية الدقة أغلى حسابيًا، وتزيد عروض القنوات تدريجيًا بزيادات صغيرة. وفي الجدول، تشير C وL وH إلى عرض القنوات وعمق الشبكة وعدد رؤوس الانتباه، على الترتيب.

EfficientViT: تنفيذ النموذج والنتائج

بُني النموذج باستخدام Timm وPyTorch، ودُرّب من الصفر على ImageNet-1K لمدة 300 حقبة، بحجم دفعة 2,048 وعلى 8 وحدات Nvidia V100. واستخدم مُحسّن AdamW وجدولًا جيبيًا تماميًا لمعدل التعلّم، مع قص الصور وتغيير حجمها عشوائيًا إلى 224×224. وفي مهام تصنيف الصور اللاحقة، ضُبط النموذج لمدة 300 حقبة بحجم دفعة 256 وباستخدام AdamW. أما كشف الكائنات على COCO، فاستخدم النموذج المسمى RetineNet في النص الأصلي، ودُرّب لمدة 12 حقبة.

النتائج على ImageNet

لتحليل الأداء، يُقارن EfficientViT بنماذج ViT وCNN الحالية على ImageNet. وتُظهر المقارنة توازنًا أفضل بين الدقة والسرعة في معظم الحالات. كما تحلل الدراسة العوامل التي تؤثر في سرعة الاستدلال، وتستخدم نتائجها لتحسين كفاءة التصميم.

المقارنة مع CNN الفعالة وViTs الفعالة

يُقارن EfficientViT بشبكات CNN الكفؤة مثل EfficientNet، وبالشبكات التقليدية مثل MobileNets. ووفق نتائج المقال، يحقق دقة Top-1 أفضل، مع معدل معالجة أعلى بمقدار 3.0 مرات على معالج Intel المركزي و2.5 مرة على وحدة Nvidia V100 مقارنةً بنموذج MobileNet المقارن.

يُظهر الصورة أعلاه مقارنة أداء EfficientViT مع نماذج ViT الكبيرة على مجموعة بيانات ImageNet-1K.

تصنيف الصور في المهام اللاحقة

يُطبّق EfficientViT على مهام تصنيف لاحقة لاختبار قدرته على نقل التعلّم، وتعرض الصورة التالية النتائج. ويحقق EfficientViT-M5 دقة مماثلة أو أفضل مع معدل معالجة أعلى عبر مجموعات البيانات المقارنة، باستثناء مجموعة Cars التي تقل فيها الدقة.

كشف الكائنات

لتحليل قدرة EfficientViT على كشف الكائنات، يتم مقارنته مع نماذج فعالة على مهمة كشف الكائنات على COCO، ويُظهر الصورة التالية نتائج المقارنة.

أفكار ختامية

في هذه المقالة، تحدثنا عن EfficientViT، وهي عائلة من نماذج محول الرؤية السريعة التي تستخدم انتباه المجموعة المتسلسلة وتوفر عمليات ذاكرة فعالة. أظهرت التجارب الشاملة التي أجريت لتحليل أداء EfficientViT نتائج واعدة، حيث يتفوق نموذج EfficientViT على نماذج CNN وViT الحالية في معظم الحالات. كما تحلل الدراسة العوامل التي تؤثر في سرعة الاستدلال، وتستخدم نتائجها لتحسين كفاءة التصميم.

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