زمان تخمینی مطالعه: 6 دقیقه
جعبه ابزار OpenVINO یک ابزار یادگیری عمیق بین پلتفرمی است که توسط اینتل توسعه یافته است. عبارت OpenVINO مخفف “Open Visual Inference and Neural Network Optimization” است. تمرکز اصلی OpenVINO بر بهینهسازی استنتاج شبکههای عصبی با رویکرد یکبار نوشتن، استقرار در هر نقطه برای پلتفرمهای سختافزاری اینتل است که شامل ابزار بهینهسازی پس از آموزش نیز هست. این جعبه ابزار منبع باز بوده و برای استفاده تحت مجوز آپاچی نسخه 2.0 رایگان است و همچنین دو نسخه دارد:
- جعبه ابزار OpenVINO، که توسط جامعهای منبع باز پشتیبانی می شود
- Intel Distribution of OpenVINO Toolkit که توسط خود اینتل پشتیبانی میشود.
با استفاده از جعبه ابزار OpenVINO، توسعهدهندگان نرمافزار میتوانند مدلهای مختلف را از طریق یک API سطح بالا انتخاب کنند. به طور نمونه مدلهایی که در قالبهای مدلهای محبوب و مدلهای یادگیری عمیق از پیش آموزشدیدهاند (YOLO v3، ResNet 50، YOLOv8، و غیره). از این رو، OpenVINO عملکردهای یکپارچهای را برای تسریع در توسعه برنامهها و راه حلهایی ارائه میدهد که چندین کار را با استفاده از بینایی رایانه، تشخیص خودکار گفتار، پردازش زبان طبیعی (NLP)، سیستمهای توصیه، یادگیری ماشینی و غیره حل میکند.
چرا باید از جعبه ابزار OpenVINO استفاده کنیم؟
شبکههای عصبی عمیق (DNN) در چند سال گذشته پیشرفتهای قابلتوجهی در بسیاری از حوزههای صنعتی داشتهاند و دقت الگوریتمهای بینایی رایانه را به سطح جدیدی رساندهاند. با این حال، استقرار و تولید چنین مدلهای دقیق و مفیدی نیاز به سازگاری با روشهای سختافزاری و محاسباتی دارد. جعبه ابزار OpenVINO اجازه میدهد تا بهینهسازی مدلهای DNN برای استنتاج یک فرآیند کارآمد از طریق ادغام ابزارهای مختلف، از جمله توانایی خواندن مدلها در فرمتهای رایج، تضمین عملکرد بهینه و کاهش تأخیر استنتاج در سخت افزار اینتل باشد. جعبه ابزار OpenVINO بر اساس آخرین نسلهای شبکههای عصبی مصنوعی (ANN)، مانند شبکههای عصبی کانولوشن (CNN) و همچنین شبکههای تکراری(Recurrent) و مبتنی بر توجه(Attention base) است.
جعبه ابزار OpenVINO هم حجم کاری بینایی کامپیوتر و هم بینایی غیر کامپیوتری را در سخت افزار اینتل پوشش میدهد. این ابزار عملکرد را به حداکثر رسانده و توسعه برنامه را سرعت میبخشد. ابزارOpenVINO قصد دارد با استفاده از کتابخانهای از توابع از پیش تعیین شده و همچنین هستههای از پیش بهینه شده، بارهای کاری هوش مصنوعی را کم کرده و زمان عرضه به بازار را تسریع کند. علاوه بر این، سایر ابزارهای بینایی کامپیوتر مانند OpenCV، هستههای OpenCL و موارد دیگر در جعبه ابزار OpenVINO گنجانده شده است. جعبه ابزار OpenVINO همچنین یک نمایش میانی ساده (IR) برای بهینهسازی کارآمد و استقرار مدلهای یادگیری عمیق در پلتفرمهای سخت افزاری متنوع ارائه میدهد.
مزایای جعبه ابزار OpenVINO چیست؟
- تسریع عملکرد: با فعال کردن روشهای اجرای ساده در پردازندهها و شتابدهندههای مختلف اینتل مانند CPU، GPU/Intel Processor Graphics، VPU (Intel AI Stick NCS2 با Myriad X) و FPGA، بار کاری بینایی رایانه را میتوان تسریع کرد.
- سهولت استقرار یادگیری عمیق: از توابع یادگیری عمیق مبتنی بر شبکه عصبی کانولوشن (CNN) میتوان با استفاده از یک API مشترک علاوه بر بیش از 30 مدل از پیش آموزش دیده و نمونه کد مستند شده استفاده کرد. با بیش از 100 مدل عمومی و سفارشی، جعبه ابزار OpenVINO نوآوری یادگیری عمیق را با ارائه یک روش متمرکز برای پیادهسازی دهها مدل یادگیری عمیق ساده میکند.
- گسترش و سفارشیسازی: هستههای OpenCL (زبان محاسبات باز) و سایر ابزارها یک راه استاندارد باز و بدون حق امتیاز برای افزودن قطعات کد سفارشی مستقیماً به خط لوله کار، سفارشیسازی لایههای مدل یادگیری عمیق بدون سربار فریمورک و پیادهسازی برنامهنویسی موازی از شتاب دهندههای مختلف ارائه میدهند.
- ایجاد نوآوری در هوش مصنوعی: ابزار کامل Deep Learning Deployment در OpenVINO به کاربران این امکان را میدهد تا هوش مصنوعی را در برنامههای خود استفاده کنند و هوش مصنوعی را با فرآیندهایی مانند Model Optimizer، Intermediate Representation، nGraph Integration و غیره بهینه کنند.
از جعبه ابزار OpenVINO برای چه مواردی میتوان استفاده کرد؟
- استقرار استنتاج بینایی کامپیوتر را بر روی سخت افزارهای مختلف
- وارد کردن و بهینهسازی مدلها از چارچوبهای مختلف مانند PyTorch، TensorFlow و غیره (پس از آموزش برای تسریع در استنتاج)
- اجرای مدلهای یادگیری عمیق در حوزه بیرون از بینایی کامپیوتر
- انجام وظایف بینایی رایانهای “سنتی” (مانند تفریق پس زمینه)
علاوه بر موارد بالا OpenVINO نمیتواند کارهای زیر را انجام دهد:
- آموزش یک مدل یادگیری ماشین
- اجرای یادگیری ماشین «سنتی» در حوزه به غیر بینایی رایانه (مانند Support Vector Machine)
- تفسیر خروجی مدل
چگونه OpenVINO در سطح بالا کار میکند
گردش کار OpenVINO اساساً شامل چهار مرحله اصلی است:
- آموزش(Train): یک مدل با کد آموزش داده میشود.
- بهینهسازی مدل: مدل آموزش داده شده به بهینهساز مدل داده میشود که هدف آن بهینهسازی مدل و تولید یک نمایش میانی (فایلهای xml + .bin) از مدل است. مدلها با تکنیکهایی مانند کوانتیزاسیون(quantization)، انجماد(freezing)، همجوشی(fusion) و غیره بهینه شدهاند. در این مرحله، مدلهای از پیش آموزش دیده با توجه به چارچوب انتخاب شده پیکربندی شده و سپس با یک دستور ساده و تک خطی تبدیل میشوند. کاربران میتوانند از میان مجموعهای از مدلهای از پیش آموزشدیده شده در مجموعه مدل OpenVINO، که شامل مدلهایی برای هر هدفی است، از تشخیص اشیاء گرفته تا تشخیص متن و تخمین حالت انسانی، انتخاب کنند.
- موتور استنتاج Inference Engine: نمایش میانی به همراه دادههای ورودی به موتور استنتاج داده میشود. کار موتور استنتاج بررسی سازگاری مدل بر اساس چارچوب مورد استفاده برای آموزش مدل و همچنین سخت افزار مورد استفاده (که در غیر این صورت به عنوان محیط شناخته میشود) است. فریمورکهای پشتیبانی شده توسط OpenVINO عبارتند از TensorFlow، TensorFlow Lite، Caffe، MXNet، ONNX (PyTorch، Apple ML) و Kaldi است.
- استقرار: برنامه به همراه مدل بهینهسازی شده و دادههای ورودی، در دستگاهها مستقر میشود.