مقدمه یی بر معماری سخت افزاری برای پیاده سازی یادگیری ژرف

Deep Learning یا «یادگیری ژرف» نیاز به توان محاسباتی بسیار بالایی دارد. برای توسعه و تبلیغ برنامه های یادگیری ژرف، به سخت افزارهای متناسب با این موضوع احتیاج داریم. در حال حاضر تلاش های بسیار زیادی در زمینه ی توسعه ی سخت افزارهای مناسب برای اجرای اپلیکیشن های یادگیری ژرف صورت گرفته است. در این مقاله قصد داریم به نیازمندی های سخت افزارهای یادگیری ژرف و آینده ی این شاخه از تکنولوژی بپردازیم. با سکان آکادمی همراه شوید.

یادگیری ژرف داغ ترین بحث دهه ی جاری است و ممکن است این روند را در دهه های آتی نیز شاهد باشیم. هرچند دورنمای یادگیری ژرف به ظاهر فقط شامل مسائل ریاضیاتی، مدل سازی، یادگیری و بهینه سازی باشد، اما حقیقت امر این است که این موضوع بسیار فراتر از عناوین فوق الذکر است. الگوریتم های یادگیری ژرف باید روی سخت افزارهای بهینه سازی شده اجرا شوند. به خاطر داشته باشید که یادگیری ده ها هزار داده ی اطلاعاتی ممکن است هفته ها به طور انجامد. وجود این شرایط سبب ایجاد نیاز روز افزون شبکه های یادگیری ژرف به سخت افزارهایی بهتر و سریع تر شده است. پیش از ادامه ی مبحث سخت افزارهای مورد نیاز برای یادگیری ژرف، بهتر است نیم نگاهی به تعریف Deep Learning از نگاه ویکیپدیا داشته باشیم:

Deep Leaning یا «یادگیری ژرف» یک زیر شاخه از یادگیری ماشینی و بر مبنای مجموعه‌ای از الگوریتم‌ها است که در تلاش هستند مفاهیم انتزاعی سطح بالا را به صورت مدلی درآورده و در اختیار کاربر قرار دهند که این فرایند را با استفاده از یک گراف عمیق که دارای چندین لایه پردازشی متشکل از چندین لایه تبدیلات خطی و غیر خطی هستند، مدل می‌کنند.

تقریبا همه ی ما می دانیم که از یک پردازنده نمی توان انتظار انجام تمام کارهای پیچیده -به خصوصی زمانی که پای یادگیری ماشینی به میان می آید- را داشت. مثلا برای انجام بازی های ویدئویی به یک پردازنده ی گرافیکی قدرتمند نیازمندیم؛ یا برای پردازش سیگنال به پردازشگرهای تخصصی این موضوع احتیاج داریم و ...

افراد گوناگونی برای تولید سخت افزارهای بهینه ی یادگیری ژرف تلاش کرده اند. برای مثال نرم افزار AlphaGO شرکت DeepMind که توانست در ماه مارس 2016، رقیب کره ای خودش لی سدُل را طی 5 مرحله بازی Go شکست دهد و تنها یک دست را واگذار کند. این سیستم از یک ماژول محاسباتی قدرتمند شامل 1920 عدد CPU و 280 عدد GPU بهره می برد و اخیرا هم شرکت NVIDIA سری جدیدی از GPU های پاسکال را معرفی کرده و اعلام کرده است که از این پس تمرکزش را بر هر دو جنبه ی نرم افزاری و سخت افزاری یادگیری ژرف معطوف خواهد کرد.

ملزومات پلتفرم های سخت افزاری یادگیری ژرف 
برای پی بردن به این موضوع که چه سخت افزاری برای یادگیری ژرف مناسب است، ابتدا باید نحوه ی کارکرد سیستم یادگیری ژرف را به خوبی درک کرده باشیم. در بدو امر، حجم زیادی از داده ها توسط سیستم دریافت می شود. سپس یک مدل یادگیری ژرف انتخاب می شود. هر مدل برای خودش پارامترهایی داخلی دارد که با تنظیم و استفاده از آن ها، یادگیری داده ها شروع می شود. این تنظیم پارامترها به میزان بهینه سازی مد نظر ما بستگی دارد و این که با استفاده از آن، چه میزان از محدودیت های برنامه را می خواهیم  بهینه سازی کنیم.

لابراتوار هوش مصنوعی Baidu واقع در Silicon Valley ، سیستمی به نام DeepBench را برای بنچمارک سخت افزار های یادگیری ژرف معرفی کرده است. این سیستم بیشتر بر نحوه ی انجام محاسبات پایه یی در سخت افزار تمرکز می کند تا بررسی مدل های یادگیری. هدف این سیستم مشخص کردن تنگناهایی است که باعث ناکارآمدی و کندی در محاسبات می شود. بنابراین تمرکز بر این است که ساختارهایی مطلوب جهت انجام عملیات پایه برای تمرین و تقویت شبکه های عصبی پدید آیند. حال این سوال مطرح می شود که این عملیات پایه یی چیست و شامل چه چیزهایی می شود؟ امروزه الگوریتم های یادگیری ژرف، بیشتر متشکل از شبکه های عصبی Convolutional (همگشتی) و شبکه های عصبی Recurrent (بازگشتی) هستند. بر اساس این الگوریتم ها، DeepBench به چهار عملکرد زیر اشاره کرده است:

Matrix Multiplication (ضرب ماتریس)
در تمام مدل های یادگیری ژرف وجود دارد و شامل محاسبات سنگین است.

Convolution (همگشت)
عملکردی که در بیشتر مدل ها دیده می شود و بیشتر عملیات مربوط به اعداد اعشاری را انجام می دهد.

Recurrent Layers (لایه های برگشتی)
لایه های فیدبک که متشکل از دو مورد قبلی است.

All Reduce
توالی عملیاتی خاصی است که از آن برای برقراری ارتباط یا کوتاه کردن پارامترهای آموخته شده استفاده می شود. از این عملیات برای بهینه سازی همگام در یک شبکه ی یادگیری ژرف که خود شامل چند سخت افزار مختلف است استفاده می شود. مانند سیستم AlphaGO.

علاوه بر این ها، اگر زمان تمرین برای یادگیری داده ها زیاد باشد باید میزان مصرف برق را هم در نظر گرفت. بنابراین کیفیت اجرا با توجه به مقدار برق مصرفی، شاخص بسیار مهمی برای طراحی این سخت افزارها به شمار می رود.

شرکت NVIDIA، در حال حاضر با GPU های موازی متعدد و فریمورک قدرتمند برنامه نویسی جی پی یو  تحت عنوان CUDA، یکه تاز بازار سخت افزار های یادگیزی ژرف است. اما امروزه شاهد رشد چشمگیر شرکت های توسعه دهنده ی سخت افزار های یادگیری ژرف هستیم. واحد پردازشگر تانسور گوگل که به اختصار TPU نامیده می شود، Xeon Phi Knight's Landing از شرکت اینتل، پردازنده ی شبکه ی عصبی شرکت کوالکام که به اختصار NNU نامیده می شود و غیره نمونه هایی از این موارد هستند. بعضی شرکت ها مانند Teradeep به جای GPU، در سخت افزارشان از FPGA (مخفف Field-Programmable Gate Arrays) استفاده می کنند. FPGA می تواند تا 10 برابر از لحاظ مصرفی کارآمدتر از GPU باشد. اما برنامه نویسی FPGA نیازمند دانش تخصصی درباره ی سخت افزارها است و اخیرا هم شاهد پیشرفت و توسعه ی بخش نرم افزاری مدل های FPGA بوده ایم.

با تمام این صحبت ها، نمی توان یک سخت افزار مشخص را برای استفاده در تمام مدل های یادگیری ژرف استفاده کرد؛ زیرا هر مدل سخت افزار خاص خودش را می طلبد. البته محققان در صدد هستند که با استفاده از FPGA به این موضوع خاتمه دهند.

با توجه به اپن سورس بودن بیشتر فریمورک های نرم افزاری یادگیری ژرف مانند Tensor Flow، Torch، Theano و CNTK و البته اقدام اخیر فیسبوک مبنی بر اوپن سورس کردن کد Big Sur برای استفاده در یادگیری ژرف، می توان گفت در آینده ای نه چندان دور شاهد سخت افزار های اپن سورس زیادی در زمینه ی یادگیری ژرف خواهیم بود.

Introduction To Hardware Architecture for Deep Learning

0


روزبه ژوله

روزبه ژوله در سال ١٣٧٥ در شهر تهران به دنیا آمد و در حال حاضر هم ساكن كرج و مشغول به تحصيل در مقطع كارشناسى رشته مديريت است. روزبه شيفته ى دنياى تكنولوژى، سينما، تلويزيون و موسيقى بوده و در اصل خود را بیش از هر چیزی، یک «نرد» مى داند. او از بچگی به يادگيری زبان علاقه نشان می داد و اکنون هم در تیم تولید محتوای سکان آکادمی به عنوان مترجم و مولف مقالات مرتبط با آی تی، برنامه نویسی و ... فعالیت می کند.






از طریق این فرم، می توانید بدون ثبت نام نظر دهید و یا اگر قبلا ثبت نام کرده اید، با ورود ناحیه ی کاربری می توانید علاوه بر ثبت نظر، به مدیریت نظرات خود نیز بپردازید.
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)