تکنیک های جدید به طور موثر تانسورهای پراکنده را برای مدل های عظیم هوش مصنوعی تسریع می کنند
1 min read

تکنیک های جدید به طور موثر تانسورهای پراکنده را برای مدل های عظیم هوش مصنوعی تسریع می کنند

رویکردهای تکمیلی – “HighLight” و “Tailors and Swiftiles” – می توانند عملکرد وظایف سخت یادگیری ماشینی را افزایش دهند.

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

تانسورها ساختارهای داده ای هستند که توسط مدل های یادگیری ماشینی استفاده می شوند. هر دو روش جدید به دنبال بهره برداری کارآمد از آنچه به عنوان پراکندگی – مقادیر صفر – در تانسورها شناخته می شود، هستند. هنگام پردازش این تانسورها، می توان از صفرها عبور کرد و در محاسبات و حافظه صرفه جویی کرد. به عنوان مثال، هر چیزی که در صفر ضرب شود، صفر است، بنابراین می تواند آن عملیات را رد کند. و می تواند تانسور را فشرده کند (صفرها نیازی به ذخیره ندارند) بنابراین می توان بخش بزرگتری را در حافظه روی تراشه ذخیره کرد.

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

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

محققان MIT و NVIDIA دو راه حل برای رفع این مشکلات ایجاد کردند. برای نمونه، آن‌ها تکنیکی را توسعه دادند که به سخت‌افزار اجازه می‌دهد تا مقادیر غیرصفر را برای طیف گسترده‌تری از الگوهای پراکندگی به‌طور کارآمد پیدا کند.

برای راه‌حل دیگر، آنها روشی را ایجاد کردند که می‌تواند مواردی را که داده‌ها در حافظه جا نمی‌شوند، کنترل کند، که استفاده از بافر ذخیره‌سازی را افزایش می‌دهد و ترافیک حافظه خارج از تراشه را کاهش می‌دهد.

هر دو روش باعث افزایش عملکرد و کاهش انرژی مورد نیاز شتاب دهنده های سخت افزاری می شوند که به طور خاص برای سرعت بخشیدن به پردازش تانسورهای پراکنده طراحی شده اند.

«معمولاً، وقتی از شتاب‌دهنده‌های سخت‌افزاری تخصصی‌تر یا اختصاصی‌تر استفاده می‌کنید، انعطاف‌پذیری را که از پردازنده‌های همه‌منظوره‌تر، مانند CPU به دست می‌آورید، از دست می‌دهید. ویوین سزه، دانشیار دپارتمان مهندسی برق و علوم کامپیوتر MIT (EECS)، می‌گوید: آنچه که با این دو کار برجسته می‌شود این است که نشان می‌دهیم شما همچنان می‌توانید انعطاف‌پذیری و سازگاری را حفظ کنید، در حالی که متخصص و کارآمد هستید. آزمایشگاه تحقیقات الکترونیک (RLE) و نویسنده ارشد مقالات در مورد هر دو پیشرفت.

از نویسندگان همکار او می توان به یانان نلی وو دکترای 23 و زی یو ژو، دانشجوی فارغ التحصیل مهندسی برق و علوم کامپیوتر اشاره کرد. و یکی از نویسندگان ارشد جوئل امر، استاد MIT در علوم کامپیوتر و مهندسی برق و عضو آزمایشگاه علوم کامپیوتر و هوش مصنوعی (CSAIL)، و همچنین سایرین در NVIDIA. هر دو مقاله در سمپوزیوم بین المللی IEEE/ACM در زمینه ریزمعماری ارائه خواهند شد.

Highlight: یافتن کارآمد مقادیر صفر

پراکندگی می تواند به دلایل مختلفی در تانسور ایجاد شود. به عنوان مثال، محققان گاهی اوقات قطعات غیرضروری از مدل‌های یادگیری ماشینی را با جایگزین کردن برخی مقادیر در تانسور با صفر، هرس می‌کنند و پراکندگی ایجاد می‌کنند. درجه پراکندگی (درصد صفرها) و مکان صفرها می تواند برای مدل های مختلف متفاوت باشد.

برای آسان‌تر کردن یافتن مقادیر غیرصفر باقی‌مانده در مدلی با میلیاردها مقدار جداگانه، محققان اغلب مکان مقادیر غیر صفر را محدود می‌کنند تا در الگوی خاصی قرار بگیرند. با این حال، هر شتاب دهنده سخت افزاری معمولاً برای پشتیبانی از یک الگوی پراکندگی خاص طراحی شده است که انعطاف پذیری آن را محدود می کند.

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

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

سپس، بلوک ها را در یک سلسله مراتب ترکیب می کنند، جایی که هر مجموعه از بلوک ها نیز الگوی ساده و پراکنده خود را دارند (شاید یک بلوک صفر و سه بلوک غیر صفر در یک سطح با چهار بلوک). آنها به ترکیب بلوک ها در سطوح بزرگتر ادامه می دهند، اما الگوها در هر مرحله ساده باقی می مانند.

این سادگی، HighLight را قادر می‌سازد تا صفرها را به‌طور مؤثرتری پیدا کند و از آن بگذرد، بنابراین می‌تواند از این فرصت برای کاهش محاسبات اضافی نهایت استفاده را ببرد. به طور متوسط، طراحی شتاب دهنده آنها حدود شش برابر محصول تأخیر انرژی (معیار مربوط به بهره وری انرژی) بهتر از سایر رویکردها داشت.

وو می‌گوید: «در پایان، شتاب‌دهنده HighLight می‌تواند به طور موثر مدل‌های متراکم را شتاب دهد زیرا سربار زیادی وارد نمی‌کند، و در عین حال قادر است از بار کاری با مقادیر مختلف مقادیر صفر بر اساس پراکندگی ساختار سلسله مراتبی بهره‌برداری کند». توضیح می دهد.

در آینده، او و همکارانش می‌خواهند پراکندگی ساختاری سلسله مراتبی را برای انواع بیشتری از مدل‌های یادگیری ماشینی و انواع مختلف تانسورها در مدل‌ها اعمال کنند.

خیاط ها و سوئیفتایل ها: به طور موثر برای تسریع حجم کار، “بیش از حد رزرو” انجام می شود

محققان همچنین می‌توانند از پراکندگی برای انتقال و پردازش کارآمدتر داده‌ها روی یک تراشه رایانه استفاده کنند.

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

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

اما در یک تانسور پراکنده، بسیاری از مقادیر داده‌ها صفر هستند، بنابراین یک کاشی حتی بزرگ‌تر از آنچه ممکن است بر اساس ظرفیت آن انتظار می‌رود، می‌تواند در بافر قرار بگیرد. مقادیر صفر نیازی به ذخیره سازی ندارند.

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

برای پرداختن به این عدم قطعیت، محققان استفاده از “بیش از حد رزرو” را پیشنهاد می کنند تا به آنها اجازه دهد اندازه کاشی را افزایش دهند، و همچنین راهی برای تحمل آن در صورت عدم تناسب کاشی با بافر.

همانطور که یک ایرلاین بلیط پرواز را بیش از حد رزرو می کند، اگر همه مسافران حاضر شوند، شرکت هواپیمایی باید به کسانی که از هواپیما برخورد کرده اند غرامت بدهد. اما معمولاً همه مسافران حاضر نمی شوند.

در یک تانسور پراکنده، اندازه کاشی را می توان به گونه ای انتخاب کرد که معمولاً کاشی ها به اندازه کافی صفر داشته باشند که اکثر آنها همچنان در بافر قرار می گیرند. اما گاهی اوقات، یک کاشی مقادیر غیرصفر بیشتری نسبت به مقدار مناسب دارد. در این مورد، آن داده ها از بافر خارج می شوند.

محققان سخت‌افزار را قادر می‌سازند تا فقط داده‌های برهم‌خورده را بدون گرفتن و پردازش دوباره کل کاشی دوباره واکشی کند. آنها “انتهای انتهایی” بافر را برای رسیدگی به این تغییر می دهند، از این رو نام این تکنیک، Tailors است.

سپس آنها همچنین رویکردی برای یافتن اندازه کاشی ها ایجاد کردند که از رزرو بیش از حد استفاده می کند. این روش که Swiftiles نام دارد، به سرعت اندازه کاشی ایده آل را تخمین می زند به طوری که درصد خاصی از کاشی ها که توسط کاربر تنظیم شده است، بیش از حد رزرو می شوند. (نام‌های «خیاط‌ها» و «سوئیفتایلز» به تیلور سویفت ادای احترام می‌کنند، که تور اخیر او در دوره‌های زمانی مملو از کدهای پیش‌فروش بیش از حد برای بلیط‌ها بود).

Swiftiles تعداد دفعاتی را که سخت افزار باید تانسور را برای شناسایی اندازه کاشی ایده آل بررسی کند، کاهش می دهد و در محاسبه صرفه جویی می کند. ترکیبی از Tailors و Swiftiles سرعت را بیش از دو برابر می‌کند در حالی که تنها به نیمی از انرژی مورد نیاز شتاب‌دهنده‌های سخت‌افزاری موجود نیاز دارد که نمی‌توانند رزرو بیش از حد را انجام دهند.

Swiftiles به ما امکان می‌دهد بدون نیاز به تکرارهای متعدد برای اصلاح تخمین، تخمین بزنیم که این کاشی‌ها چقدر باید بزرگ باشند. این فقط به این دلیل کار می کند که رزرو بیش از حد پشتیبانی می شود. Xue می‌گوید حتی اگر با مقدار مناسبی کاهش پیدا کنید، همچنان می‌توانید کمی سرعت را به دلیل نحوه توزیع غیرصفرها استخراج کنید.

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

این تحقیق تا حدی توسط برنامه سخت افزار هوش مصنوعی MIT تامین می شود.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

code