گوگل کتابخانهی GPipe مخصوص آموزش شبکههای عصبی را متنباز کرد
فعالان حوزهی هوش مصنوعی، خصوصا در ابعاد بزرگ، با خبر خوشحالکنندهی گوگل روبهرو شدند. زیرمجموعهی تحقیقات هوش مصنوعی گوگل اعلام کرد کتابخانهی کاربردی GPipe خود را بهصورت متنباز دراختیار توسعهدهندگان قرار میدهد. این ابزار کتابخانهای برای آموزش حرفهای شبکههای عصبی عمیق است که با فریمورک Lingvo از TensorFlow کار میکند. فریمورک مذکور برای مدلسازی تناوبی در شبکهی عصبی استفاده میشود. بهبیانِدیگر، میتوان آن را روی هر شبکهی متشکل از لایههای متوالی متعدد اجرا کرد. یانپینگ هوانگ، مهندس هوش مصنوعی گوگل، در وبلاگش خبر متنبازشدن کتابخانهی مذکور را اعلام کرد. او میگوید:
شبکههای عصبی عمیق در بسیاری از وظایف مهم یادگیری ماشینی، همچون تشخیص گفتار و شناسایی بصری و پردازش زبان کاربردهای پیشرفتهای دارد. مدلهای بزرگتر و پیشرفتهتر شبکههای عمیق عصبی بهرهوری بیشتری در انجام وظایف دارند. بهعنوان مثال، در مواردی همچون شناسایی بصری و رابطهی مستقیمی بین ابعاد شبکهی عصبی و دقت تشخیصهای سیستم هوش مصنوعی وجود دارد. ما در GPipe، با ایجاد سیستمهای موازی تلاش میکنیم تا مشکل مقیاسدهی به شبکههای عمیق عصبی را برطرف کنیم.
هوانگ و همکارانش مقالهای برای توضیح بهتر نحوهی کارکرد GPipe منتشر کردهاند. جزئیات آن مقاله میگوید کتابخانهی گوگل دو روش آموزش هوش مصنوعی را بهکار میگیرد. یکی از آنها با نام Synchronous Stochastic Gradient Descent شناخته میشود که الگوریتمی برای بهینهسازی بهروزرسانی پارامترهای هوش مصنوعی است. روش دیگر Pipeline Parallelism نام دارد که سیستم اجرا ایجاد و خروجی هر مرحله از آموزش را بهعنوان ورودی به مرحلهی بعد وارد میکند.
سهم عمدهی مزایای GPipe بهدلیل اختصاص بهتر حافظه به مدلهای هوش مصنوعی بهدست میآید. در TPUهای نسل دوم گوگل (پردازندههای اختصاصی هوش مصنوعی گوگل در فضای ابری)، GPipe اشغال حافظه را از ۶.۲۶ گیگابایت به ۳.۴۶ گیگابایت کاهش داد. درنتیجه، ۳۱۸ میلیون پارامتر در یک هستهی شتابدهندهی واحد اجرا شد. هوانگ میگوید بدون استفاده از GPipe، هر هسته میتواند تنها ۸۲ میلیون پارامتر مدل را آموزش دهد.
مزیت یادشده، تنها نقطهی برتری GPipe نیست. آن کتابخانه مدلها را در بین شتابدهندههای جداگانه دستهبندی و بهطور خودکار آنها را تقسیمبندی میکند (ساختار Mini-Batches). سپس، این بخشهای کوچکشده از نمونههای آموزشی به بخشهای کوچکتر (Micro-Batches) تبدیل میشوند و درنهایت، فرایند اجرایی بین همان دستههای میکرو اجرا میشود. بهبیان سادهتر، قابلیت فراوان به هستهها امکان میدهد بهصورت موازی کار کنند که تأثیر منفی دستهبندیها روی کیفیت مدلها را کاهش میدهد.
گوگل در مثالی از کاربرد کتابخانهی خود، الگوریتم یادگیری عمیق بهنام AmoebaNet-B را آموزش داد. در آن فرایند، ۵۵۷ میلیون پارامتر مدلسازی و تصاویر نمونه روی TPUها اجرا شدند و درنهایت، روی هر هسته ۱.۸ میلیارد پارامتر ترکیب شد که ۲۵ برابر بیش از حالتهای بدون استفاده از GPipe بود. هوانگ میگوید آن الگوریتم یادگیری روی دیتاستهای مشهور عملکردی عالی داشت. طبق آمار او، دقت دیتاست ImageNet با استفاده از کتابخانه به ۸۳.۴ درصد، CIFAR-10 به ۹۹ درصد و CIFAR-100 به ۹۱.۳ درصد رسید.
با استفاده از کتابخانهی GPipe، سرعت آموزش نیز افزایش یافت. در آزمایشی دیگر روی الگوریتم AmoebaNet-D، توزیع مدل روی TPUهایی چهاربرابر بیشتر از مدلهای پیشین، سرعت را ۳.۵ برابر افزایش داد. در مثالی دیگر، وقتی محققان گوگل مدلهای مبتنی بر زبان Transformer را با ۸ میلیارد پارامتر روی TPUهای نسل سوم اجرا کردند، سرعت ۱۱ برابر افزایش پیدا کرد. آن پردازندههای اختصاصی به ۱۶ هسته و ۲۵۶ گیگابایت حافظهی رم مجهز بودند.
هوانگ در پایان پست وبلاگیاش نوشت:
توسعهی ادامهدار و موفقیت بسیاری از کاربردهای یادگیری ماشین، مانند خودروهای خودران و تصویربرداریهای پزشکی، منوط به دستیابی به بیشترین دقت ممکن است. چنین دستاوردی اغلب نیازمند مدلهای بزرگتر و پیچیدهتر خواهد بود. ما خوشحالیم GPipe را به جامعهی بزرگتر محققان عرضه میکنیم و امیدواریم محصول ما، زیرساختی کاربردی برای آموزش مفید شبکههای عصبی عمیق باشد.
نظرات