Caffe2: فریمورک اپن‌سورس فیسبوک برای یادگیری ژرف

Caffe2: فریمورک اپن‌سورس فیسبوک برای یادگیری ژرف

Caffe2 فریمورک یادگیری ژرف اپن‌سورس فیسبوک است که برخلاف ابزار دیگری از فیسبوک تحت عنوان PyTorch، این فریمورک به منظور افزودن قابلیت یادگیری ژرف به اپلیکیشن‌های موبایل در اختیار دولوپرها گذاشته شده است (برای آشنایی با PyTorch، به مقالهٔ PyTorch: فریمورک اپن‌‌سورس فیسبوک برای توسعهٔ دیپ لرنینگ مراجعه نمایید.) این ایده که یادگیری ژرف فقط در مورد ریاضیات مطرح می‌باشد به نوعی اشتباه است! امروزه تیم‌های نرم‌افزاری متعددی در سرتاسر دنیا در تلاشند تا فریمورک‌هایی کارا و سریع ایجاد نمایند تا بتوانند مدل‌های یادگیری ژرف را برای همگان ملموس‌تر کنند. چه در حال حاضر و چه در آینده، فریمورک‌های کارآمد آن‌هایی هستند که هم‌زمان قادر به رفع نیاز‌های متعددی باشند که به‌ نظر می‌رسد Caffe2 می‌خواهد یکی از آن‌ها باشد.

Caffe2 با سایر فریمورک‌های یادگیری ژرف چه فرقی دارد؟
Caffe2 یک فریمورک ماژولار یادگیری ژرف است که توسط شرکت فیسبوک و به‌ منظور استفاده در Mobile Computing (رایانش موبایلی) به بازار عرضه شده است. پیش از این نیز فریمورک‌های یادگیری ژرف و یادگیری ماشینی متنوعی برای تقریباً تمام زبان‌های برنامه‌نویسی مهم وجود داشت که از جملۀ پرکاربردترین این فریمورک‌ها می‌توان به Tensorflow ،(Py)Torch و Theano اشاره نمود اما پیشتازان صنعت فناوری همواره نیاز دارند تا به‌ منظور افزایش قابلیت‌‌های مورد نظر خود و پشتیبانی از آن‌ها، سخت‌افزارهای موجود را ارتقاء دهند اما سخت‌افزار فقط یک جنبه از این پیشرفت بوده و جنبۀ دیگر، پشتیبانی نرم‌افزاری آن است.

اگر یادگیری ژرف را به معجون‌های جادویی جادوگران توصیف کنیم، می‌توان گفت که روز به‌ روز معجون‌های جادویی جدیدتر و مؤثرتری در حال شکل‌گیری هستند؛ اما نمی‌توان این معجون‌های جادویی جدید را در همان دیگ‌های جوشان قدیمی استفاده کرد و برای استفاده از آن‌ها به دیگ‌های پیشرفته‌تری نیاز است! و اینجا درست همان‌ جایی است که پای فریمورک‌های اپن‌سورس به‌ میان می‌آید.

Caffe2 چه ویژگی جدیدی برای ارائه کردن دارد؟
نخست اینکه پژوهشگران مرکز تحقیقات هوش مصنوعی فیسبوک موسوم به FAIR به مفهوم Unframework و ساخت بلوک‌های هوش مصنوعی به صورت لایبرری‌های مجزا (مانند FAISS ،Gloo و ...) گرایش داشته و بر روی تکمیل و ارتقاء انعطاف‌پذیری و سرعت آن‌ها به صورت ابزارهای سَبک و کم‌حجمی مانند Caffe2 و PyTorch  تمرکز نموده‌اند. نکتۀ دوم اینکه Caffe به دلیل تنظیمات ساده، پیش از این یک فریمورک یادگیری ژرف محبوب در مجامع آکامیک بوده است و Caffe2 نسخۀ توسعه‌ یافتۀ Caffe برای تولید اپلیکیشن‌های به‌اصطلاح Production-Ready بر مبنای مدل‌های تحقیقاتی است.

آشنایی با برخی قابلیت‌های کلیدی فریمورک Caffe2
به طور کلی در Caffe2 بر روی رایانش موبایلی تأکید شده است و این در حالی است که Caffe2 برای پردازنده‌های ARM نیز بهینه شده و باعث بهبود پرفورمنس پردازشگرهای به اصطلاح On-Board خواهد شد. برخی از دیگر ویژگی‌های شاخص این فریمورک عبارتند از:

- از Android و iOS پشتیبانی می‌کند.
- سَبک و مقیاس‌پذیر است.
- از رایانش توزیع شده (Distributed Computing) پشتیبانی می‌کند.
- آماده برای استفاده در پروژه‌های واقعی است.
- دارای API انعطاف‌پذیری برای زبان‌های پایتون و سی‌پلاس‌پلاس است.
- با استفاده از آن می‌توانید «یک بار کد بزنید و همه‌جا اجرا کنید!»

علاوه بر این، در Caffe2 هم می‌توان یادگیری ژرف را از ابتدایی‌ترین مراحل شروع کرد و هم می‌توان از مدل‌های معماری یادگیری ژرف موجود در این فریمورک استفاده نمود (برای آشنایی بیشتر با مفهوم یادگیری ژرف، می‌توانید به مقالهٔ یادگیری ژرف چیست و چگونه کار می‌کند؟ مراجعه نمایید.)

ساخت ابزارهای اپن‌سورس کاربردی و پایدار به‌ خودی‌خود دشوار است و مدیریت چنین ابزارهایی در حوزه‌ای مانند Deep Learning دشوارتر از آن است که بتوان تصورش کرد! معمولاً دولوپرهای متعددی در طراحی و توسعهٔ لایبرری‌های اپن‌سورس مشارکت دارند و حجم بالای کدها می‌تواند اجرا، بازبینی و مدیریت کدهای نوشته شده توسط تک‌تک این دولوپرها را به کاری زمان‌بر و طاقت‌فرسا تبدیل نماید. از سوی دیگر، تأخیر در رسیدگی به کدهای هر یک از دولوپرها می‌تواند موجب دلسردی و ناامیدی آن‌ها شود اما برای رفع این مشکل توسعه‌دهندگان Caffe2 در فیسبوک افزایش شفافیت و سرعت دریافت و رسیدگی به کدها را به دولوپرهای علاقمندی که در بهبود هرچه بیشتر Caffe2 مشارکت می‌کنند، وعده داده‌اند.

علاوه بر این، مرکز تحقیقات هوش مصنوعی فیسبوک (FAIR) وعده داده است که میان Caffe2 و Pytorch امکان تبادل دیتا وجود خواهد داشت و بدین ترتیب مدل‌های آزمایشی می‌توانند با استفاده از Caffe2 مستقیماً از Pytorch به پلتفرم‌های موبایل منتقل شوند. ذکر این نکته ضروری است که Caffe2 نمودارهای دینامیک، که در Pytorch پشتیبانی می‌شود، را ساپورت نمی‌کند زیرا وجود این نوع نمودارها سبب ایجاد اضافه‌‌بار محاسباتی می‌شود که در حال حاضر خارج از توان پلتفرم‌های موبایلی است.