به نظرتون راه سادهای برای اجرای شبکههای عصبی روی میکروکنترلرها وجود داره!؟
جواب کوتاه بلهست! و اما جواب بلند: پروژه Zant یه SDK اوپنسورس و کراسپلتفرمه که با زبان Zig نوشته شده و مخصوص اجرای شبکههای عصبی (NN) روی میکروکنترلرهاست. این ابزار کمک میکنه که مدلهای یادگیری عمیق به صورت بهینه روی سختافزارهای کمقدرت اجرا بشه. بدون اینکه دردسرهای معمول رو داشته باشه.
توسعهدهندههای این پروژه (که قبلاً با اسم Zig-ant شناخته میشد) متوجه شدن که خیلی از میکروکنترلرها کتابخونههای یادگیری عمیق قوی ندارن. برای همین تصمیم گرفتن یه راهکار سبک، سریع و انعطافپذیر ارائه بدن که روی پلتفرمهای مختلف مثل ARM Cortex-M، RISC-V و حتی x86 اجرا بشه. برعکس پلتفرمهایی مثل Edge Impulse که روی ایجاد مدلها تمرکز دارن، Zant روی اجرا متمرکزه و در نهایت یه کتابخونه استاتیک و بهینه تولید میکنه که راحت میشه توی پروژهها ازش استفاده کرد.
تو این پروژه از تکنیکهای کوانتایزیشن، پرونینگ، SIMD و GPU Offloading استفاده میشه.همچنین دلیل استفاده از Memory Pooling، تخصیص استاتیک و بهینهسازی بافر، روی سختافزارهای ضعیف هم قابل استفادهس. طراحی ماژولار، APIهای شفاف و داکیومنتیشن کاملی که داره کار باهاش خیلی آسون میکنه.
از این پروژه میتونید برای بینایی ماشین (مثل تشخیص اشیا و پردازش تصویر), نگهداری پیشبینانه (Predictive Maintenance) و سیستمهای خودران (پهپادها، رباتها و...) استفاده کنید.
البته فعلا Zant میتونه روی Raspberry Pi Pico 2 مدل MNIST رو اجرا کنه با پشتیبانی از مدلهای ONNX. هدف بعدی، اجرای مدل YOLO روی Raspberry Pi Pico 2 تا پایان آپریله.
البته باید بگم اجرای یادگیری ماشین روی میکروکنترلرها چیز جدیدی نیست. پلتفرمهایی مثل Edge Impulse، BitNetMCU و TensorFlow Lite for MCUs هم تو این حوزه فعالن. اما برتری Zant تو سادگی اجرا روی پلتفرمهای مختلف بدون نیاز به تغییر زیاد توی کدهاست.
برای اطلاعات و جزییات بیشتر میتونید به گیتهاب این پروژه تو لینک زیر سر بزنید.
https://github.com/ZIGTinyBook/Z-Ant
Post #212
1.69K

- 👍 9
- 👌 6