SpeedLLM؛ موتور جادویی و سریع پردازش مدل‌های زبانی روی FPGA

Fall Back

بچه‌ها، امروز می‌خوام درباره یه تکنولوژی خفن و جدید حرف بزنم که اسمش SpeedLLM هست. داستان از این قراره که وقتی مدل‌های زبانی بزرگ (همون LLMهایی که مثلاً ChatGPT رو ساختن) رو می‌خوایم روی دستگاه‌های کم‌مصرف و کوچیک اجرا کنیم، کلی مشکل داریم. چون اجرای این مدل‌ها سرعت می‌خواد، حافظه می‌خواد و خب معمولاً لپ‌تاپ یا گوشی، اندازه‌ی دیتاسنتر قدرت پردازش نداره!

این مقاله اومده یه راه‌حل پیشنهادی داده که SpeedLLM نامشه. این سیستم یه نوع شتاب‌دهنده عصبی یا neural network accelerator ـه که روی پلتفرم Xilinx Alevo U280 ساخته شده. یادت باشه FPGA یعنی یه تراشه قابل برنامه‌ریزی که هر بار میشه اون‌رو برای کاربرد خاصی تنظیم کرد و باهاش کارای عجیب و جالب انجام داد!

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

چندتا نوآوری خفن هم داره:

  1. موازی‌سازی جریان داده — یعنی data stream parallelism: این باعث میشه اطلاعات همزمان توی چند مسیر حرکت کنه و سرعت کلی سیستم خیلی بالاتر بره.
  2. یه راهبرد تکرار استفاده از حافظه یا memory reuse strategy گذاشتن که معنیش اینه که بخش‌های مختلف مدل بجای این‌که مرتب حافظه جدید مصرف کنن، تا جای ممکن منابع حافظه رو با هم شریک میشن و اینجوری فشار روی FPGA کمتر میشه و تو انرژی هم صرفه‌جویی میشه.
  3. Llama2 operator fusion: این یعنی چند تا عمل ریاضی یا همون عملیات مدل ZLlama۲ رو با هم ترکیب می‌کنن تا کارها جمع‌وجورتر و با سرعت بیشتری پیش بره. مثلاً به جای این‌که هر قسمت مدل جدا جدا اجرا بشه، کلی عملیات رو توی یه مرحله انجام میدن و اینجوری راندمان کلی بهتر میشه.

معماری خط لوله داده — data pipeline architecture — هم بهینه‌سازی شده تا پروسه خوندن داده، پردازش و نوشتن خروجی به صورت هماهنگ و سَرعَت‌یافته انجام بشه.

وقتی این SpeedLLM رو با Tinyllamaهای معمولی مقایسه کردن، دیدن این سیستم جدید تا ۴.۸ برابر سریع‌تر جواب میده! تازه مصرف انرژی‌اش هم ۱.۱۸ برابر کمتر شده. یعنی هم سرعت رفته بالا، هم برق کمتر مصرف میشه و این دقیقاً همون چیزیه که تو دستگاه‌های کوچیک و کم‌مصرف لازم داریم.

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

منبع: +