یه شتاب‌دهنده‌ی عجیب و کم‌مصرف برای شناسایی دست‌خط با شبکه عصبی اسپایکینگ روی FPGA!

Fall Back

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

حالا یه تیم زرنگ اومدن یه کاری کردن که اصلاً اسمش رو هم شاید نشنیده باشی: شبکه عصبی اسپایکینگ یا Spiking Neural Networks (SNN). این مدل شبکه مثل مغز آدم کار می‌کنه! یعنی اطلاعات رو نه به صورت پیوسته، بلکه به صورت پالس‌های زمانی یا همون اسپایک (مثل شلیک عصبی) می‌فرسته. این باعث میشه فقط وقتی نیاز باشه، محاسبه انجام بشه و در نتیجه حسابی توی مصرف برق صرفه‌جویی میشه. بهش میگن event-driven و temporally sparse. یعنی فقط وقتی نیاز باشه، یه اتفاق میفته و پردازش انجام میشه، نه همیشه و بی‌هدف.

حالا اینا اومدن و از FPGA استفاده کردن. FPGA مخفف Field Programmable Gate Array هست، یعنی تراشه‌هایی که می‌تونن بعداً برنامه‌ریزی بشن تا هر الگوریتمی رو اجرا کنن. خیلی به درد دستگاه‌های کم‌مصرف و خاص می‌خوره. ایده اینه که شبکه‌های اسپایکینگ روی FPGA اجرا بشه و بشه با مصرف برق خیلی کم کارهایی مثل تشخیص دست‌خط رو انجام داد، مثلاً با دیتاست معروف MNIST که حاوی عکسِ عددهای دست‌نویسه.

حالا مشکل چیه؟ طراحی این مدل‌ها برای سخت‌افزار معمولاً دردسر داره. ولی اینجا یه ابزار متن‌باز به اسم Spiker+ وارد میشه! این ابزار کار رو شدیداً راحت‌تر کرده: کافیه شما هندونه رو بِبری، اون خودش شربتش رو درست می‌کنه! یعنی شما به راحتی شبکه‌تون رو تو Spiker+ با جزئیات (مثل مدل نرون‌هاتون، مقدار کم کردن دقت عددی یا quantization، که یعنی اعداد رو کوچیک‌تر و ساده‌تر می‌کنه تا سریع‌تر حساب بشه) تعریف می‌کنید، و بعد این ابزار خودش کدهایی تولید می‌کنه که قابل اجرا روی FPGA هست (این کدها در واقع HDL هستن که سخت‌افزارها می‌فهمن).

توی مقاله میان و چندجور تنظیمات مختلف روی شبکه، مدل نرون و کار با quantization رو بررسی می‌کنن و در نهایت نشون میدن که بسته به نیاز، یه تعادل بین دقت و مصرف انرژی و سرعت وجود داره (به این میگن trade-off). این خیلی مهمه برای دستگاه‌هایی که همیشه سرویس نمی‌دن و باید مصرف برق کمی داشته باشن (که بهش میگن edge devices).

در کل، این مقاله نشون میده با یک شبکه عصبی اسپایکینگ و طراحی مناسب برای FPGA، خیلی راحت‌تر، سریع‌تر و کم‌مصرف‌تر از قبل می‌تونیم کارهایی مثل تشخیص دست‌خط رو انجام بدیم. تازه با Spiker+ هم لازم نیست دردسر کدنویسی برای سخت‌افزار رو بکشی، خودش اتوماتیک تولیدش می‌کنه!

خلاصه، اگه دنبال این هستی که هوش مصنوعی رو ببری روی دستگاه‌های کوچیک و هوشمند و دلت می‌خواد مصرف برقش بره پایین، این چیزا خیلی به دردت می‌خوره! 😉

منبع: +