الکس پارالل: راه جدید و خفن برای سرعت‌دادن به مدل‌های هوش مصنوعی با متن‌های خیلی بزرگ

Fall Back

بذار یه موضوع مهم رو برات توضیح بدم، مخصوصاً اگر درگیر هوش مصنوعی یا مدل‌های زبانی بزرگ (LLM) شدی یا حتی اسمشون به گوشت خورده! این روزها مدل‌های زبانی خیلی پیشرفته‌ای مثل ChatGPT و DeepSeek دارن با متن‌هایی کار می‌کنن که دیگه از حد گذشتن، یعنی حافظه مدل (یا اصطلاحاً KV history که یعنی همون حافظه‌ای که مدل باید یادت نگه داره چی گفته بوده و کی چی پرسیده بوده) رسیده به میلیون‌ها توکن! بذار ساده بگم: «توکن» یعنی قطعه‌های کوچیک متن، مثل یه کلمه یا نصفش! حالا فکر کن باید یک متن چند میلیون تکه‌ای رو سریع پردازش کنی و همزمان مکالمه هم روان و لحظه‌ای باشه. سخت شد دیگه!

مشکل بزرگ اینجاست که وقتی مدل داره لحظه‌ای (real-time) جواب می‌ده، زمان پاسخ‌گویی به هر توکن خیلی مهمه. به این می‌گن Token-to-Token Latency یا همون TTL. اگه TTL زیاد بشه دیگه احساس مکالمه طبیعی از بین می‌ره.

حالا اصلی‌ترین گره‌های کار چیه؟ دو تا چیز: یکی اینکه مدل باید سریع وزن‌های بخشی به اسم شبکه پیش‌خور (Feed-Forward Network یا همون FFN) رو بخونه و دومی اینکه باید به سرعت تو اون حافظه KV سر بزنه (یعنی تاریخچه بلندبالایی که داره ذخیره می‌کنه). برای حل این مشکلات چند راه حل معروف وجود داشته، مثلاً Tensor Parallelism یا همون TP. این یعنی تقسیم کردن وزن‌ها یا محاسبات رو روی چند تا پردازنده گرافیکی (GPU) که هر کدوم یه تکه کوچیک‌تر رو سریع‌تر حساب کنن. اما یک نکته مهم هست: وقتی تعداد قطعه‌های TP بره بالاتر از تعداد هدهای حافظه (KV heads – یعنی بخش‌هایی که حافظه مدل رو کنترل می‌کنن)، کارایی میاد پایین چون کلی حافظه باید الکی کپی بشه و خیلی از منابع هدر می‌ره!

از یه سمت دیگه، وقتی تعداد ورودی‌ها یا «بچ» (Batch – یعنی حجم درخواست‌های همزمان) زیاد بشه، باید حافظه بیشتری از رم (DRAM – حافظه‌ای که دیتا توش ذخیره شده و باید سریع خونده بشه) خونده بشه که این هم باز یه محدودیت بزرگ و وقت‌گیر درست می‌کنه.

حالا اینجاست که Helix Parallelism یا همون «الکس پارالل» میاد وسط و بازی رو عوض می‌کنه! Helix Parallelism یه روش ترکیبیه که اومده از سیستم موازی‌سازی به روشی متفاوت و بهینه استفاده کنه. توی بخش توجه مدل (attention – یعنی جایی که مدل باید تصمیم بگیره به کدوم تیکه‌های مکالمه بیشتر توجه کنه)، Helix کاری می‌کنه که حافظه KV در بین چند تا GPU به طور هوشمند پخش بشه (به این می‌گن KV parallelism؛ یعنی موازی‌سازی حافظه کلید-مقدار). بعد بلافاصله همون GPUها برای بخش FFN یا حتی مدل تخصصی‌تر به اسم Mixture of Experts (MoE – مدل‌هایی که چند بخش تخصصی دارن و هر بخش یه کار رو خوب انجام می‌ده) دوباره کار موازی‌سازی وزنی (Tensor Parallelism یا TP) و حتی ترکیب TP و EP (Expert Parallel) رو انجام می‌دن.

شاید بپرسی حالا اگه اینطوری حافظه رو تقسیم کنیم، خروجی مدل عوض نمی‌شه؟! نه، چون Helix یه مرحله ارتباطی سبک و هوشمندانه داره که اطلاعات لازم رو رد و بدل می‌کنه تا همه چیز به همون دقت باقی بمونه. تازه یه تکنیک ویژه هم بهش اضافه کردن به اسم Helix HOP-B – این یعنی ارتباط‌دهی‌ها رو به صورت گروهی انجام می‌دن (batchwise overlap)، که سرعت کلی حسابی بالا بره و زمان انتظار خیلی کم بشه، در حالی که GPUها هم بهتر استفاده بشن.

نتیجه چی شده؟ اگه با روش‌های مرسوم موازی‌سازی مقایسه کنیم، Helix تونسته TTL رو تا ۱.۵ برابر کم کنه (یعنی توکن‌ها سریع‌تر تولید می‌شن) با همون اندازه بچ، و تازه اگر بخواهی تو همون زمان، حجم درخواست‌ها رو بالا ببری، تا ۳۲ برابر بچ بزرگ‌تر رو جواب می‌ده! این برای مدل‌هایی مثل DeepSeek-R1 واقعاً یک جهش رو به جلو حساب می‌شه، مخصوصاً روی سخت‌افزارهای جدید NVIDIA Blackwell که GPUهای مخصوص AI هستن.

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

پس خلاصه داستان اینه: اگر با مدل‌های LLM سر و کار داری یا دوست داری بدونی چطور این مکالمه‌های هوش مصنوعی اینقدر سریع و طبیعی می‌شن، Helix Parallelism یه تکنیک باحال و بروزئه که مطمئناً پیشرفت‌های زیادی باهاش میشه دید!

منبع: +