
کاهش مصرف انرژی در شبکههای عصبی تا 95٪
هوش مصنوعی در حال رشد است و به همراه آن، مصرف انرژی نیز به شدت افزایش یافته است. بر اساس گزارشها، ChatGPT احتمالاً بیش از نیم میلیون کیلووات ساعت برق را برای پاسخ به حدود 200 میلیون درخواست روزانه مصرف میکند. به بیان دیگر، ChatGPT روزانه به اندازه برق 17 هزار خانه در آمریکا انرژی مصرف میکند.
جمع به جای ضرب
یک تحقیق با عنوان «جمع تنها چیزی است که نیاز دارید: برای مدلهای زبانی با مصرف انرژی بهینه» اشاره کرده که ضرب اعداد اعشاری (floating point) به مراتب انرژی بیشتری نسبت به عملیات با اعداد صحیح مصرف میکند. این مقاله توضیح میدهد که ضرب دو عدد اعشاری 32 بیتی (fp32) چهار برابر بیشتر از جمع دو عدد اعشاری 32 بیتی انرژی مصرف میکند و 37 برابر بیشتر از جمع دو عدد صحیح 32 بیتی انرژی نیاز دارد.
محققان یک تکنیک جدید به نام ضرب با پیچیدگی خطی (L-Mul) پیشنهاد دادهاند که مشکل ضربهای اعشاری پرمصرف در شبکههای عصبی بزرگ را حل میکند. پیش از معرفی L-Mul، شبکههای عصبی معمولاً از ضربهای استاندارد اعشاری استفاده میکردند که این روش از نظر محاسباتی و مصرف انرژی بسیار پرهزینه بود. در واقع این مشکل به ویژه در مدلهای زبانی بزرگ (LLM) که معمولاً بر روی میلیاردها پارامتر اجرا میشوند، شدیدتر بود.
این عملیاتها، بهویژه در مکانیسمهای توجه و ضرب ماتریسی، منابع محاسباتی و انرژی زیادی مصرف میکردند. نکته جالب این روش این است که به هیچ معماری خاصی وابسته نیست. محققان این روش را بر روی مدلهای واقعی مانند Llama 3.1 8b، Mistral-7b و Gemma2-2b آزمایش کردهاند تا صحت نتایج را ثابت کنند.
پس از آزمایش این مدلها، محققان به این نتیجه رسیدند که روش پیشنهادی میتواند ماژولهای مختلف در لایههای ترانسفورمر را در هنگام تنظیم دقیق (fine-tuning) یا حتی بدون نیاز به آموزش مجدد، جایگزین کند.

چرا این روش فراتر از مدلهای زبانی بزرگ است؟
ازآنجاییکه این رویکرد محدود به شبکههای عصبی نیست، پیادهسازی L-Mul نباید تنها به مدلهای زبانی بزرگ (LLM) محدود شود؛ بلکه میتواند به سختافزار نیز گسترش یابد تا در طیف وسیعتری به بهبود مصرف انرژی کمک کند.
L-Mul یک روش نوین است که ضرب اعداد اعشاری را با استفاده از جمعهای ساده اعداد صحیح تقریب میزند. این کار باعث افزایش سرعت میشود، زیرا زمان اجرای آن به طور مستقیم با اندازه اعداد رشد میکند (پیچیدگی خطی)، برخلاف روشهای سنتی که با بزرگتر شدن اعداد بهمراتب کندتر میشوند (پیچیدگی درجه دوم).
L-Mul از عملیاتهای ساده بیت و جمع برای جلوگیری از ضرب پیچیده بخشهای عدد و مراحل دشوار گرد کردن استفاده میکند. این رویکرد نه تنها هزینه محاسباتی را کاهش میدهد، بلکه میتواند مصرف انرژی را تا ۹۵٪ در ضرب عناصر تانسورهای اعشاری و تا ۸۰٪ در حاصلضربهای نقطهای کاهش دهد. در عین حال، دقت آن در بسیاری از موارد قابل مقایسه یا حتی بهتر از عملیات اعشاری ۸ بیتی است.
به همین دلیل است که شرکت گوگل توسعه bfloat16 (یک فرمت اعشاری کوتاه شده مخصوص یادگیری ماشین) را انجام داده است. در همین حال، NVIDIA نیز فرمت TensorFloat-32 را برای کاربردهای هوش مصنوعی روی کارتهای گرافیک (GPU) خود ایجاد کرده است.
مصرف انرژی تنها به مدلهای زبانی بزرگ محدود نمیشود و فراتر از آن نیز گسترش مییابد. یک کاربر redit اشاره کرده که این مقاله تحقیقاتی احتمالاً باعث میشود تمامی تولیدکنندگان پردازندههای مرکزی (CPU) عملیات ضرب اعشاری 8 بیتی را به حالت قدیمی یا حالت سازگاری منتقل کنند.
در عوض، هر ضرب اعشاری FP8 میتواند به طور بومی با استفاده از الگوریتم L-Mat انجام شود و این قابلیت بهاحتمال زیاد در سختافزارهای آینده مانند پردازندههای گرافیکی سری 6090، پردازندههای مرکزی بعد از سری 9000 یا تراشههای M5 اپل پیادهسازی خواهد شد.
این مسئله ممکن است شرکتهایی مانند Intel، AMD، NVIDIA و Apple را مجبور کند تا بهسرعت و به طور چشمگیری پهنای گذرگاههای حافظه را در تمامی خطوط تولید سختافزاری خود گسترش دهند. اگر آنها خود را تطبیق ندهند، ممکن است توسط جایگزینهای دیگر عقب بمانند. بهعنوان مثال، مشتقات ارزانقیمت RISC-V با حافظههای HBM (حافظه با پهنای باند بالا) یا حتی FPGAهای استاندارد با SRAM کافی، میتوانند از کارتهای گرافیکی سطح بالای NVIDIA مانند GB200 پیشی بگیرند. این تحول ممکن است قبل از آنکه این شرکتهای بزرگ فرصت توسعه و عرضه محصولات رقابتی را پیدا کنند، رخ دهد. در نتیجه میتواند دینامیک بازار را تنها در چند ماه تغییر دهد.
آیا این روش بیش از حد خوب به نظر میرسد؟
با اینکه این روش امیدوارکننده به نظر میرسد، کاربران برخی نگرانیها را مطرح کردهاند. یکی از کاربران Redit اشاره کرده که جمع اعداد صحیح ممکن است بیشتر از یک چرخه ساعت در پردازندههای گرافیکی مدرن زمان ببرد، بهویژه اگر از دستکاریهای سطح بیت و تقریبها استفاده شود. همچنین، تبدیل میان اعداد اعشاری و صحیح میتواند باعث اضافه شدن بار اضافی شود.
علاوه بر این، اگر به موضوع سرعت توجه کنیم، این رویکرد پیشنهادی ممکن است به افزایش سرعت در معماریهای پردازنده گرافیکی کنونی منجر نشود، زیرا پردازندههای گرافیکی برای انجام عملیاتهای اعشاری به صورت بومی بهینهسازی شدهاند. این رویکرد تقریباً ممکن است نیاز به مراحل بیشتری داشته باشد یا عملیاتهای پیچیدهتری را برای اعداد صحیح انجام دهد که این امر میتواند سرعت را کاهش دهد.
مقاله اشاره میکند که اگر سختافزار تخصصی برای اجرای الگوریتم L-Mul طراحی شود، میتواند هم سرعت و هم بهرهوری انرژی را بهبود بخشد. البته در معماریهای پردازنده گرافیکی کنونی که برای عملیاتهای اعشاری سنتی بهینه شدهاند، این روش بیشتر به کاهش مصرف انرژی کمک میکند تا افزایش سرعت.
L-Mul در حال حاضر همسطح با استانداردهای موجود عمل میکند و در عین حال مقدار زیادی از انرژی را ذخیره میکند؛ بنابراین، حتی اگر سرعت بهتری به دست نیاید، L-Mul هنوز هم باید به عنوان یک تکنیک عالی برای کاهش مصرف انرژی در شبکههای عصبی در نظر گرفته شود.