Design-Time Optimization of Deep Neural Networks for Intermittent Learning on Microcontrollers
تقدم هذه الورقة إطار عمل للتحسين متعدد الأهداف ومراعٍ للأجهزة، يتيح اختيار الشبكات العصبية العميقة في وقت التصميم من أجل تعلم مستمر وموثوق على الأجهزة عند مرحلة التصميم للتعلم المتقطع على المتحكمات الدقيقة ذاتية الطاقة، وذلك عبر التنبؤ بدقة باستهلاك الطاقة لكل طبقة وتكاليف نقاط الفحص.
المؤلفون الأصليون:Jakob Schubert, Maximilian Kasper, Maximilian Linke, Benedict Herzog, Mark Deutel, Axel Plinge, Dominik Seuss, Christopher Mutschler
المؤلفون الأصليون: Jakob Schubert, Maximilian Kasper, Maximilian Linke, Benedict Herzog, Mark Deutel, Axel Plinge, Dominik Seuss, Christopher Mutschler
تخيل أنك تحاول تعليم روبوت صغير يعمل بالبطارية التعرف على صوت صديق أو رصد جزء مكسور في آلة. يعيش هذا الروبوت في غابة نائية أو على عوامة طافية، يستمد طاقته فقط من الشمس أو الرياح. تكمن المشكلة في أن الطبيعة متقلبة؛ فقد تختبئ الشمس خلف سحابة، أو تهدأ الرياح، مما يؤدي إلى نفاد بطارية الروبوت في منتصف مهمته. في عالم الذكاء الاصطناعي، يعد هذا كابوساً. فعادةً، إذا انقطع التيار الكهربائي عن جهاز كمبيوتر أثناء تعلمه، فإنه ينسى كل ما توصل إليه للتو، وعليك البدء من الصفر. تعالج هذه الورقة البحثية هذا الصداع تحديداً: كيف نعلم هذه الروبوتات الصغيرة المتعطشة للطاقة التعلم حتى عندما يكون إمداد الطاقة لديها غير موثوق ويتغير باستمرار بين التشغيل والإيقاف؟ يعمل المؤلفون عند تقاطع "الحواسيب الصغيرة" (المتحكمات الدقيقة)، و"حصاد الطاقة" (امتصاص الطاقة من البيئة)، و"الحوسبة المتقطعة" (طريقة لحفظ التقدم بحيث يمكنك استئناف العمل من حيث توقفت تماماً بعد انقطاع التيار).
أدرك الباحثون، بقيادة ياكوب شوبرت وفريقه، أن تصميم عقل ذكي لهذه الروبوتات يشبه محاولة بناء منزل دون معرفة كمية الأمطار التي ستسقط غداً. فإذا بنيت منزلاً ثقيلاً ومعقداً (شبكة عصبية عميقة)، فقد يكون رائعاً في التعلم، ولكن إذا تطلب بناء طبقة واحدة من المنزل طاقة أكبر مما يمكن لبطارية الروبوت استيعابه دفعة واحدة، فإن المشروع بأكمله سينهار عندما تومض الطاقة. وتتضمن الأساليب التقليدية لاختبار هذه التصاميم بناء الروبوت، ووضعه في الميدان، والانتظار حتى تنفد الطاقة لمعرفة ما سيحدث. وهذا أمر بطيء ومكلف ومحبط.
بدلاً من انتظار فشل الطاقة، ابتكر المؤلفون "بلورة سحرية" لاستهلاك الطاقة. لقد بنوا نموذجاً رياضياً يمكنه التنبؤ بدقة بمقدار الطاقة التي ستستغرقها كل خطوة من خطوات عملية تعلم الروبوت، قبل حتى بناء الروبوت نفسه. إنهم يسمون ذلك "التحسين في وقت التصميم". فكر في الأمر مثل مصمم ألعاب فيديو يمكنه محاكاة فيزياء القفزة في برنامج كمبيوتر ليرى ما إذا كانت الشخصية ستعبر الفجوة، دون الحاجة أبداً لبناء ترامبولين حقيقي. ينظر نموذجهم إلى "مكونات" الشبكة العصبية (كم عدد الحسابات التي تحتاجها وكم مقدار الذاكرة التي تلمسها) ويقدر تكلفة الطاقة بدقة مذهلة.
وهنا يكمن الجزء الذكي: لم يتنبأوا فقط بمقدار الطاقة اللازمة "للنظر" إلى البيانات (الاستدلال)؛ بل تنبأوا أيضاً بمقدار الطاقة اللازمة "للتعلم" من البيانات (التدريب). وهذا أمر بالغ الأهمية لأن التعلم يستهلك طاقة أكبر بكثير. كما أخذوا في الاعتبار التكاليف الإضافية لعملية "نقاط التحقق" (checkpointing)—وهي تلك القدر الضئيل من الطاقة الإضافية اللازمة لحفظ تقدم الروبوت في ذاكرة خاصة غير متطايرة (مثل دفتر ملاحظات رقمي لا يحتاج إلى طاقة ليبقى مفتوحاً) في كل مرة تنخفض فيها البطارية.
اختبر الفريق فكرتهم على نوع معين من الحواسيب الصغيرة يسمى متحكم "Cortex-M4" (تحديداً nRF52840). استخدموا "بلورتهم السحرية" للطاقة للبحث عبر الآلاف من تصاميم أدمغة الروبوتات المحتملة لإيجاد تلك التي كانت ذكية بما يكفي لرصد الشذوذ (مثل محمل آلة مكسور) وصغيرة بما يكفي لتناسب ميزانية الطاقة المتقطعة الضئيلة للروبوت. ووجدوا أن نموذج التنبؤ الخاص بهم كان جيداً جداً، حيث بلغ الخطأ المرجح حوالي 16.6% لطبقات الشبكة، ونسبة ضئيلة بلغت 0.9% لجزء حفظ الذاكرة.
كانت النتائج مبهرة. فمن خلال استخدام نموذجهم لاختيار التصميم المناسب، تمكنوا من إيجاد دماغ لروبوت يستخدم طاقة أقل بنسبة 94% تقريباً من نسخة أقل تحسيناً، مع استمرار أدائه للمهمة بشكل صحيح. وقد أظهروا أن التصميم الذي يبدو فعالاً على الورق قد يفشل فعلياً إذا تطلبت خطوة واحدة منه الكثير من الطاقة دفعة واحدة، لكن نموذجهم استطاع رصد هذه "الفخاخ الطاقية" قبل حدوثها. باختصار، أثبتوا أنه يمكنك تصميم روبوتات ذكية تتعلم ذاتياً للعمل في البرية دون الحاجة إلى بناء واختبار مئات النماذج الأولية، وذلك ببساطة عن طريق استخدام حاسبة ذكية للتنبؤ باحتياجات الطاقة لكل خطوة صغيرة من عملية التعلم. وهذا يسد الفجوة بين الذكاء الاصطناعي المعقد والواقع القاسي للعمل بالطاقة الشمسية أو طاقة الرياح في العالم الحقيقي.
ملخص تقني: تحسين تصميم الشبكات العصبية العميقة في وقت التصميم للتعلم المتقطع على المتحكمات الدقيقة
بيان المشكلة يمثل نشر الذكاء الاصطناዊ (AI) على وحدات المتحكم الدقيق (MCUs) محدودة الموارد في بيئات حصاد الطاقة تحديًا جوهريًا: توفر الطاقة يكون متقطعًا وغير حتمي. في سيناريوهات مثل الاستشعار عن بُعد الذي يعمل بالطاقة الشمسية، قد تنفد ذاكرة تخزين الطاقة قبل أن تكتمل عملية استنتاج أو تدريب لشبكة عصبية عميقة (DNN). تعالج نماذج الحوسبة المتقطعة (IC) التقليدية هذا الأمر من خلال حفظ حالة البرنامج في ذاكرة غير متطايرة (NVM) عند نقاط التحقق عندما تنخفض الطاقة، مما يسمح باستئناف التنفيذ بمجرد استعادة الطاقة. ومع ذلك، فإن منهجيات تصميم الشبكات العصبية العميقة الحالية غالبًا ما تعتمد على إجمالي استهلاك الطاقة أو الدقة كمعايير أساسية. هذا النهج غير كافٍ للتعلم المتقطع لأن نموذجًا ذا طاقة إجمالية منخفضة قد يظل غير قابل للتنفيذ إذا تجاوز طلب الطاقة لطبقة واحدة سعة مخزن الطاقة في دورة واحدة. علاوة على ذلك، تتطلب معظم أساليب البحث عن البنية العصبية (NAS) والتحسين متعدد الأهداف (MOO) التقليدية النشر الفعلي وإجراء قياسات متكررة على الأجهزة المستهدفة لتقييم المرشحين، وهي عملية بطيئة، وعرضة للخطأ، وغير عملية لمساحات البحث الواسعة المطلوبة في تصميم الشبكات العصبية العميقة. بالإضافة إلى ذلك، تركز معظم نماذج التنبؤ بالطاقة الموجودة حاليًا على الاستنتاج فقط، وتفتقر إلى القدرة على تقدير تكاليف عمليات التمرير الخلفي (backward passes) المطلوبة للتدريب على الجهاز.
المنهجية يقترح المؤلفون مسار عمل يتكون من مرحلتين يتيح التحسين خارج وقت التشغيل (offline) لتصميم الشبكات العصبية العميقة خصيصًا للتعلم المتقطع على المتحكمات الدقيقة. يفصل هذا النهج عملية البحث عن البنية عن النشر الفعلي باستخدام نموذج تنبؤ بالطاقة مدرك للأجهزة.
بناء نموذج التنبؤ بالطاقة: قام المؤلفون بتطوير نموذجين خفيفي الوزن من الانحدار الخطي تم تدريبهما باستخدام بيانات تجريبية دنيا تم جمعها من متحكم دقيق مستهدف (nRF52840 Cortex-M4).
متنبئ طاقة الطبقة: يقدر هذا النموذج استهلاك الطاقة لطبقات الشبكة العصبية العميقة الفردية لكل من عمليات التمرير الأمامي (الاستنتاج) والتمرير الخلفي (التدريب). يستخدم النموذج ميزات مستخرجة من تمثيل ONNX للشبكة، وتحديدًا عدد عمليات الضرب والجمع (MAC) وبتات الإدخال/الإخراج للذاكرة (الوصول إلى RAM). يأخذ النموذج في الاعتبار تفاصيل التنفيذ الخاصة بالعتاد، مثل استخدام تعليمات DSP.
متنبئ حفظ الحالة: يقدر هذا النموذج الطاقة المطلوبة لحفظ واستعادة حالات الطبقة من/إلى ذاكرة (FRAM)، وهو أمر ضروري لعمليات التحقق (checkpointing) أثناء التنفيذ المتقطع. يستخدم حجم البيانات (بالبايت) المراد كتابتها أو قراءتها كميزة أساسية.
جمع البيانات: تم إنشاء مجموعة بيانات التدريب عن طريق أخذ عينات من بنيات متنوعة للشبكات العصبية العميقة، وتجميعها إلى كود لغة C، وتنفيذها طبقة تلو الأخرى على الجهاز المستهدف. تم إجراء توصيف للطاقة باستخدام Joulescope JS220، مع استخدام تبديل GPIO لعزل استهلاك الطاقة لكل طبقة ولكل عملية تحقق.
التحسين متعدد الأهداف (MOO) المدرك للتقطع: يتم دمج نماذج التنبؤ المدربة في إطار عمل التحسين متعدد الأهداف (باستخدام عينة NSGA-II من Optuna) للبحث عن بنيات مثلى للشبكات العصبية العميقة.
الأهداف: يسعى التحسين إلى تعظيم دقة التحقق (أو تقليل خسارة إعادة البناء) مع تقليل إجمالي الطاقة، وبصمة الذاكرة (RAM/ROM)، والأهم من ذلك، ذروة طلب طاقة الطبقة الواحدة.
القيود: يتم تقييد مساحة البحث بالحدود الفيزيائية للمتحكم الدقيق (SRAM, Flash) وميزانية الطاقة المتقطعة (أقصى طاقة متاحة في كل دورة).
العملية: يتم اقتراح بنيات مرشحة، ويتم تقييم جدواها بالكامل "خارج وقت التشغيل" باستخدام متنبئات الطاقة. يتم النظر فقط في البنيات التي تستوفي ميزانية طاقة الطبقة الواحدة (مما يضمن عدم تجاوز أي طبقة منفردة لسعة المخزن) وقيود الذاكرة. ثم يتم اختيار مجموعة الحلول المثلى من نوع Pareto.
المساهمات الرئيسية
التنبؤ بالطاقة في وقت التصميم للتدريب: قدمت الورقة طريقة للتنبؤ باستهلاك طاقة الطبقة لكل من الاستنتاج (التمرير الأمامي) والتدريب (التمرير الخلفي) دون الحاجة إلى النشر الفعلي. هذا يوسع العمل السابق الذي ركز بشكل أساسي على الاستنتاج.
استخراج الميزات المدركة للعتاد: يستخدم النهج مساحة ميزات تعتمد على الحوسبة (MACs) والوصول إلى الذاكرة (بتات الإدخال/الإخراج) المستمدة من نموذج ONNX وتكوينات العتاد المحددة، مما يضمن أن تكون المتنبئات قابلة للنقل ودقيقة للمتحكم الدقيق المستهدف.
البحث عن البنية العصبية (NAS) المدرك للتقطع: أظهر المؤلفون إطار عمل للتحسين متعدد الأهداف (MOO) يدمج صراحةً قيود التقطع (تحديدًا حدود ميزانية طاقة الطبقة الواحدة) في عملية البحث عن البنية، مما يتيح اكتشاف نماذج قابلة للتنفيذ تحت ظروف الطاقة المتقطعة.
التحقق التجريبي: تم التحقق من الطريقة باستخدام مهمة كشف الشذوذ باستخدام المشفرات التلقائية (autoencoders) على متحكم دقيق من نوع Cortex-M4.
النتائج أُجري التقييم باستخدام مجموعة بيانات CWRU لعلبة المحامل لكشف الشذوذ.
دقة التنبؤ: حقق متنبئ طاقة الطبقة خطأً مطلقًا مرجحًا (WAPE) بنسبة 16.6% لطبقات الشبكة، ومتوسط خطأ مطلق (MAPE) بنسبة 32.2%. حقق متنبئ حفظ حالة FRAM دقة عالية بـ WAPE و MAPE بلغت 0.9%. يشير المؤلفون إلى أنه على الرغم من أن خطأ الطبقة قد يبدو مرتفعًا، إلا أنه كافٍ للتمييز بشكل موثوق بين البنيات القابلة للتنفيذ وغير القابلة للتنفيذ تحت قيود الطاقة الصارمة.
تأثير التحسين: في تجربة التحسين متعدد الأهداف (MOO)، نجح النهج في تحديد جبهة باريتو (Pareto front) للبنيات. من خلال اختيار نموذج ذي خسارة تحقق أعلى قليلاً (النقطة B مقابل النقطة A في جبهة باريتو)، انخفض طلب الطاقة الإجمالي المتوقع من 0.0268 مللي جول إلى 0.00163 مللي جول (انخفاض بنحو 94%). والأهم من ذلك، انخفض طلب طاقة الطبقة الأكثر تكلفة من 0.0198 مللي جول إلى 0.000449 مللي جول، مما يضمن ملاءمة النموذج لمخزن الطاقة المتقطع. نجح كلا النموذجين المختارين في فصل عينات الاختبار الشاذة عن البيانات الطبيعية.
الأهمية تدعي الورقة أنها تسد الفجوة بين التحسين متعدد الأهداف، والتصميم الآلي للشبكات العصبية العميقة، والنشر على أنظمة حصاد الطاقة. من خلال تمكين الاختيار المسبق للبنيات التي تقلل استهلاك طاقة الطبقة الواحدة (بما في ذلك عبء نقاط التحقق)، يسهل هذا العمل تحقيق "ذكاء اصطناعي مستقل حقًا عند الحافة". فهو يسمح بتصميم شبكات عصبية عميقة يمكنها إجراء التدريب على الجهاز في البيئات المتقطعة دون الحاجة إلى قياسات فيزيائية متكررة ومستهلكة للوقت أثناء مرحلة التصميم. ويؤكد المؤلفون أن هذا النهج يجعل من الممكن نشر شبكات عصبية أضخم على المتحكمات الدقيقة من خلال ضمان عدم تجاوز أي طبقة منفردة لسعة مخزن الطاقة، وهو قيد غالبًا ما يتجاهله تحسين إجمالي الطاقة التقليدي.