هوش مصنوعی کم‌حافظه‌ای که به کمک یادگیری هوشمند، سریع‌تر و بهینه‌تر تصویرها رو می‌فهمه!

Fall Back

ببین خب، الان توی حوزه بینایی ماشین (یعنی ماشینی که بتونه تصویرها رو ببینه و تحلیل کنه)، یه مدل خیلی باحال و قوی داریم به اسم Deformable Attention Transformers یا همون DAT. حالا شاید بپرسی DAT چیه؟! اینا هوش مصنوعی‌هایی هستن که می‌تونن توی عکس‌ها، دقیق‌تر و هوشمندتر تمرکز کنن روی بخش‌های مهم تصویر. مثلاً به‌جای اینکه کل تصویر رو با دقت یکسان نگاه کنن، باهوش بازی در میارن و فقط جاهایی که لازمه رو زیر ذره‌بین می‌برن.

ولی خب… هر چی مدل باهوش‌تر میشه، اجرا کردنش روی سخت‌افزار معمولی – مثل FPGAها (که یک نوع قطعه سخت‌افزاری قابل‌برنامه‌ریزیه و برای کارهای هوش مصنوعی روی دستگاه‌هایی با منابع محدود به کار می‌ره) – سخت‌تر میشه. چون DATها وقتی میخان اطلاعات رو پردازش کنن، حافظه رو به شکل نامنظم و پیچیده‌ای مصرف می‌کنن و این باعث میشه سخت‌افزار گیج بشه و اجرای مدل کند بشه یا حتی نشه اونو درست اجرا کرد.

تا اینجای داستان، خیلی‌ها سعی کردن این مشکل رو حل کنن. بعضی روش‌ها باعث میشن سخت‌افزار خیلی سنگین و گرون شه، بعضی‌هاش هم دقت مدل رو کلی پایین میاره که خب هیچ‌کدوم جذاب نیست!

حالا یه راه‌حل جدید اومده که اومده هم حافظه رو خیلی بهینه‌تر کرده، هم تقریبا دقت مدل رو نگه داشته، هم روی سخت‌افزارهای دم‌دستی مثل FPGA عالی جواب می‌ده. جریانش چیه؟ خب، این تیم یه چارچوب (framework) جدید و کم‌حافظه باحال ساختن بر پایه چیزی به اسم Neural Architecture Search یا همون NAS. NAS یعنی مهندسا و هوش مصنوعی باهم می‌گردن دنبال بهترین معماریِ مدل، جوری که هم سریع باشه، هم دقتش خوب بمونه، و هم منابع سخت‌افزاری رو هدر نده.

توی این روش جدید، مدل میان میاد کل داده‌های ورودی رو توی inference (یعنی وقتی مدل داره کار اصلیش رو انجام میده و تصویر جدید می‌خواد تحلیل کنه) به چند تا تیکه یکسان برش می‌زنه. بعد، هر بخش رو جداگانه تحلیل می‌کنه. مزیت این برش زدن اینه که دیگه حافظه‌ی دستگاه توی پردازش تصویر قاطی‌پاطی نمی‌شه و تداخل حافظه‌ای به وجود نمیاد! بخش جالب‌ترش اینه که اصل معماری مدل بزرگ رو تغییر نمیدن؛ فقط روش پردازش موقع اجرا بهینه‌تر و منظم‌تر میشه.

بعدش اومدن روی سخت‌افزاری مثل Xilinx FPGA امتحان کردن – این قطعه‌های FPGA مثل کارگرای چندکاره قابل برنامه‌ریزی هستن، خیلی به درد هوش مصنوعی روی گجت‌های کم‌مصرف می‌خورن. آزمایش‌ها نشون دادن که تعداد دفعاتی که باید مدل به DRAM (یه نوع حافظه مهم توی دستگاه‌ها) مراجعه کنه، به ۱۸٪ مقدار اولیه رسید! یعنی یک عالمه کم‌تر دست توی حافظه کرده و خب این یعنی سرعت و صرفه‌جویی بیشتر.

از طرف دیگه، دقت مدل توی آزمایش‌های تصویری روی دیتاست معروف ImageNet-1K (این یکی بانک تصاویر معروف برای آموزش مدل‌های بینایی ماشینه) فقط ۰.۲٪ نسبت به حالت ایده‌آل DAT کاهش داشته. یعنی تقریبا همون دقت رو نگه داشته اما خیلی بهینه‌تر کار می‌کنه.

در کل، این مدل جدید برای کسایی که میخوان مدل‌های هوش مصنوعی تصویری‌شون رو روی گجت‌ها یا دستگاه‌های محدود اجرا کنن، عــالیه: هم سخت‌افزار رو اذیت نمی‌کنه، هم نیازی به هیولا کردن دستگاه نداره، هم کیفیت مدل رو پایین نمیاره. خلاصه اگر دنبال هوش مصنوعی تصویری کم‌خرج و کار راه‌انداز می‌گردی، این ایده رو از دست نده!

منبع: +