Deep Learning (یادگیری ژرف) نیاز به توان محاسباتی بسیار بالایی دارد و برای توسعهٔ برنامههای مبتنی بر یادگیری ژرف، به سختافزارهای متناسب با این موضوع احتیاج داریم. در حال حاضر، تلاشهای بسیار زیادی در زمینهٔ توسعهٔ سختافزارهای مناسب برای اجرای اپلیکیشنهای یادگیری ژرف صورت گرفته است که در این مقاله قصد داریم به نیازمندیهای سختافزارهای یادگیری ژرف بپردازیم.
یادگیری ژرف یکی از داغترین مباحث در عصر جاری است و ممکن است این روند را در دهههای آتی نیز شاهد باشیم. هرچند دورنمای یادگیری ژرف به ظاهر فقط شامل مسائل ریاضیاتی، مدلسازی، یادگیری و بهینهسازی باشد، اما حقیقت امر آن است که این موضوع بسیار فراتر از عناوین فوقالذکر است (برای کسب اطلاعات بیشتر، توصیه میکنیم به مقالهٔ یادگیری ژرف چیست و چگونه کار میکند؟ مراجعه نمایید.)
الگوریتمهای یادگیری ژرف باید روی سختافزارهای بهینهسازی شده اجرا شوند و به خاطر داشته باشید که یادگیری از میان میلیونها دیتای مختلف ممکن است هفتهها به طور انجامد. وجود این شرایط سبب ایجاد نیاز روزافزون شبکههای یادگیری ژرف به سختافزارهایی بهتر و سریعتر شده است.
نیاز به توضیح نیست که از یک پردازندهٔ معمولی نمیتوان انتظار انجام تمام کارهای پیچیده -به خصوص زمانی که پای یادگیری ماشینی به میان میآید- را داشت. مثلاً برای انجام بازیهای کامپیوتری به یک پردازندهٔ گرافیکی قدرتمند نیازمندیم؛ یا برای پردازش سیگنال، به پردازشگرهای تخصصی این موضوع احتیاج داریم.
کمپانیهای گوناگونی برای تولید سختافزارهای بهینهٔ یادگیری ژرف تلاش کردهاند. برای مثال، نرمافزار AlphaGO شرکت DeepMind که توانست در ماه مارس 2016 رقیب کرهای خودش Lee Sedol را طی پنج مرحله بازی Go شکست دهد و تنها یک دست را واگذار کند. جالب است بدانیم که این سیستم از یک ماژول محاسباتی قدرتمند شامل 1920 عدد CPU و 280 عدد GPU بهره میبرد!
ملزومات پلتفرمهای سختافزاری یادگیری ژرف
برای پی بردن به این موضوع که چه سختافزاری برای یادگیری ژرف مناسب است، ابتدا باید نحوهٔ کارکرد سیستم یادگیری ژرف را به خوبی درک کرده باشیم. موضوع از این قرار است که در بدو امر، حجم زیادی از دادهها توسط سیستم دریافت میشود؛ سپس یک مدل یادگیری ژرف انتخاب میشود و هر مدل هم برای خودش پارامترهایی داخلی دارد که با تنظیم و استفاده از آنها، یادگیری از روی دادهها شروع میشود.
معرفی DeepBench
لابراتوار هوش مصنوعی Baidu واقع در سیلیکونولی سیستمی به نام DeepBench را برای بنچمارک سختافزارهای یادگیری ژرف معرفی کرده است؛ این سیستم بیشتر بر نحوهٔ انجام محاسبات پایهای در سختافزار تمرکز میکند تا بررسی مدلهای یادگیری. در واقع، هدف این سیستم مشخص کردن تنگناهایی است که باعث ناکارآمدی و کُندی در محاسبات میشود؛ بنابراین تمرکز بر این است که ساختارهایی مطلوب جهت انجام عملیات پایهای برای تمرین و تقویت شبکههای عصبی پدید آیند. علاوه بر اینها، اگر زمان تمرین برای یادگیری دادهها زیاد باشد، باید میزان مصرف برق را هم در نظر گرفت. بنابراین کیفیت اجرا باتوجه به مقدار برق مصرفی، شاخص بسیار مهمی برای طراحی این سختافزارها به شمار میرود.
شرکت NVIDIA با یکسری GPU موازی متعدد و فریمورک قدرتمند برنامهنویسی پردازندهٔ گرافیکی تحت عنوان CUDA یکهتاز بازار سختافزارهای یادگیری ژرف است اما امروزه شاهد رشد چشمگیر شرکتهای سازندهٔ سختافزارهای یادگیری ژرف هستیم.
واحد پردازشگر تانسور گوگل که به اختصار TPU نامیده میشود، Xeon Phi Knight's Landing از شرکت اینتل، پردازندهٔ شبکهٔ عصبی شرکت کوالکام که به اختصار NNU نامیده میشود و غیره نمونههایی از این موارد هستند (برای آشنایی بیشتر با TPU، توصیه میکنیم به مقالهٔ TPU: اولین تراشهٔ یادگیری ماشینی گوگل که 30 برابر سریعتر است از CPUها و GPUهای فعلی بازار! مراجعه نمایید.)
برخی شرکتها مانند Teradeep بهجای GPU، در سختافزارشان از FPGA که مخفف عبارت Field-Programmable Gate Arrays است استفاده میکنند. FPGA میتواند تا ده برابر از لحاظ مصرفی کارآمدتر از GPU باشد اما برنامهنویسی FPGA نیازمند دانش تخصصی دربارهٔ سختافزارها است و اخیراً هم شاهد پیشرفت و توسعهٔ بخش نرمافزاری مدلهای FPGA بودهایم (با تمام این صحبتها، نمیتوان یک سختافزار مشخص را برای استفاده در تمام مدلهای یادگیری ژرف استفاده کرد؛ زیرا هر مدل سختافزار خاص خودش را میطلبد اما محققان در صدد هستند تا با استفاده از FPGA به این موضوع خاتمه دهند.)