بهینهسازی سختافزارهای یادگیری عمیق
به گزارش واحد فناوری اطلاعات سایبربان؛ توسعهی هوش مصنوعی و فناوری یادگیری عمیق یکی از اصلیترین موضوعاتی است که شرکتهای بزرگ فناوری در دنیای امروز روی آن سرمایه گزاری میکنند. به نظر میرسد کاربردهای یادگیری عمیق، بسیار گستردهتر از انجام محاسبات، ایجاد مدلها، یادگیری و بهینهسازی است. این الگوریتمها باید روی سختافزارهای بسیار بهینهای اجرا شوند؛ زیرا یادگیری آنها از روی دهها هزار دادهی مختلف تزریق شده، ممکن است چندین هفته زمان نیاز داشته باشد. از طرفی با رشد شبکههای یادگیری عمیق به سختافزارهای قدرتمندتر و بهینهتر نیاز پیدا میشود.
در حال حاضر برای رفع مشکل یاد شده، بخشی از محاسبات هوش مصنوعی از پردازندهی مرکزی (CPU) به پردازندهی گرافیکی (GPU) منتقل شده است. به عنوان مثالی بهتر میتوان به این موضوع اشاره کرد که پردازشهای اصلی بازیهای ویدئویی و محتوای چندرسانهای –به سختافزار اختصاصی خود- کارت گرافیک نیاز دارد. به عنوان مثال میتوان به هوش مصنوعی آلفاگو (AlphaGo) اشاره کرد که توسط آزمایشگاه دیپماند گوگل (DeepMind) برای شکست قهرمان بازی گو (Go) ایجاد شد. ماژول توزیع شده مورد استفاده در سختافزار این هوش مصنوعی، از 1920 پردازندهی مرکزی و 280 پردازندهی گرافیکی تشکیل شده است. به عنوان مثالی دیگر میتوان به شرکت انویدیا (NVIDIA) اشاره کرد که با معرفی نسل جدید معماری کارت گرافیکی خود با نام پاسکال (Pascal) نشان دادند تمرکز خود را روی ایجاد تعادل بین توسعهی همزمان سختافزار و نرمافزار هوش مصنوعی قرار دادهاند. مثالهای بالا به وضوح اهمیت توجه به سختافزارهای یادگیری عمیق و هوش مصنوعی نشان میدهد.
برای درک بهتر نیاز سختافزاری یادگیری عمیق باید ابتدا نحوهی عملکرد این فناوری را متوجه شد. در ابتدا مجموعه عظیمی از دادههای به دست آمده و مدل یادگیری عمیق موردنظر انتخاب میشوند. هر کدام از مدلها دارای پارامترهای ذاتی مخصوص به خود است که به منظور آموزش از طریق دادهها به کار گرفته میشوند. تنظیم هر یک از پارامترهای اصلی یاد شده باعث برطرف شدن مشکلات بهینهسازی شده و در نهایت محدودیتهای خاص بهینهسازی را از بین خواهند برد.
«آزمایش هوش مصنوعی بایدو سیلیکون ولی1» (SVAIL) معیار جدیدی به نام «دیپبنچ» (DeepBench benchmark) را برای سختافزارهای یادگیری عمیق پیشنهاد داده است. معیار دیپبنچ بهجای تمرکز روی مدلهای یادگیری بر عملکرد سختافزارها روی محاسبات بنیادی تمرکز میکند. پژوهشگران اعلام کردهاند این رویکرد جدید با هدف پیدا کردن مشکلاتی که باعث کندتر یا ناکارآمد شدن محاسبات، ایجاد شد. به همین دلیل تمرکز اصلی روی طراحی معماریهایی است که بهترین عملکرد را در محاسبات بنیادی شبکههای یادگیری عمیق ارائه میدهد.
بیشتر شبکههای یادگیری عمیق امروزی از شبکههای عصبی کانولوشن2 (Convolutional Neural Networks) و بازگشتی3 (Recurrent Neural Networks) تشکیل شدهاند. معیار دیپ بنچ نیز با تکیه بر این دو شبکه 4 عملکرد مختلف را ارائه میدهد که در ادامه معرفی شدهاند:
• ضرب ماتریس (Matrix Multiplication): این ویژگی تقریباً در تمام مدلهای یادگیری عمیق وجود دارد و از محاسبات فشرده به حساب میآید.
• کانولوشن: یکی دیگر از عملیات معمولی مورداستفاده در یادگیری عمیق است که عملیاتهای اعشاری بسیاری را انجام میدهد.
• لایه بازگشتی: این لایهها به صور بازگشتی در مدلها وجود دارند و معمولاً با دو عملیات آخر انجام شده ترکیب میشوند.
• کاهش همهچیز: این مورد دنبالهای از عملیاتها برای برقراری ارتباط یا تجزیه پارامترهای قبل از بهینهسازی است. به عنوان مثال میتوان از آن برای بهینهسازی همزمان الگوریتم روی سراسر خست افزارهای توزیع شده استفاده کرد.
علاوه بر موارد ذکر شده در بالا، بهبود عملکرد سختافزار در محاسبات، نیازمند سطحبندی دادهها، خطوط انتقال موازی، پردازشهای چند نخی و پهنای باند بسیار بالا است. همچنین توان مصرفی معماریهای ایجاد شده باید بسیار پایین باشد؛ بنابراین ارزیابی معمار باید بر اساس میزان عملکرد در هر وات صورت گیرد.
شرکت انویدیا هماکنون با استفاده از چارچوبهای برنامهنویسی خود به نام کودا (CUDA) بازار یادگیری عمیق را در دست گرفته است. با وجود این تعداد شرکتهای فعال در زمینهی توسعهی سختافزار هوش مصنوعی در حال گسترش پیدا کردن هستند. به عنوان مثالی از محصولات این شرکتها میتواند به واحد پردازش تنسور گوگل4 (TPU)، پردازندهی نایت لندینگ زئون فای اینتل (Intel’s Xeon Phi Knight’s Landing) و پردازندهی شبکهی عصبی کوالکام (NNU5) اشاره کرد. به علاوه تعدادی از شرکتها شروع به استفاده از آرایه دریچهای برنامه پذیر میدانی6 (FPGA) کردهاند که عملکردی 10 برابر سریعتر از پردازندهی گرافیکی دارند؛ زیرا از انعطافپذیری و مقیاسپذیری بیشتری برخوردار بوده و نسبت به کارتهای گرافیک در هر وات عملیاتهای بیشتری را انجام میدهد.
محققان معتقدند مفهومی بسیار گسترده وجود دارد که نمیتوان برای همهی مدلها از یک معماری و سختافزار ثابت استفاده کرد؛ به همین دلیل آنها قصد دارند با استفاده از آرایههای برنامه پذیر این مفهوم را به چالش بکشند. با وجود این هماکنون چارچوبهای نرمافزاری بسیاری مانند تنسورفلو گوگل (TensorFlow)، «Torch»، «Theano» و CNTK برای یادگیری عمیق وجود دارند که به صورت منبع باز ارائه شدهاند. از طرفی شرکت فیسبوک نیز به زودی پلتفرم سختافزاری خود را با نام «Big Sur» برای یادگیری عمیق منتشر میکند.
___________________________________
1- Baidu’s Silicon Valley AI Lab
2- کانولوشن، یک شبکهی سلسله مراتبی عصبی است. یکی از کاربردهای آن این است که بر روی تصاویر دوبعدی اعمال میشود و فرآیندهای استخراج ویژگی و طبقهبندی را در یک ساختار واحد و کاملاً تطبیقی ادغام میکند.
3- شبکهی عصبی بازگشتی، نوعی الگوریتم هوش مصنوعی است که واحدهای آن به صورت یک حلقهی درونی با یکدیگر ارتباطات دارند تا الگوریتم مذکور بتواند بهصورت پویا به وظایف خود رسیدگی کند. همچنین این فناوری از حافظهی داخلی خود برای انجام پردازشها استفاده میکند.
4- Google’s Tensor Processing Unit
5- Qualcomm’s Neural Network Processor
6- آرایه دریچهای برنامه پذیر میدانی یاافپیجیاِی (Field-programmable gate array) یک مدار مجتمع نوعی طراحی است که بعد از تولید انبوه توسط طراح یا مشتری، قابل پیکربندی میشود.