FlashMemory حافظه KV مدل DeepSeek-V4 را به ۱۳.۵٪ کاهش میدهد
مدلهای با Context طولانی با مشکل بزرگی روبرو هستند. محدودیت اصلی، حافظه است، نه محاسبات ریاضی.
با اضافه شدن توکنها، KV cache رشد میکند. در ۵۰۰,۰۰۰ توکن، این حافظه بسیار عظیم میشود و تمام حافظه GPU را اشغال میکند. این امر، ارائه Context طولانی را پرهزینه و کند میکند.
مقاله جدیدی با عنوان FlashMemory-DeepSeek-V4 این مشکل را با استفاده از Lookahead Sparse Attention (LSA) حل میکند.
روش کار به این صورت است:
مدلهای سنتی از یک KV cache متراکم (dense) استفاده میکنند. آنها تکتک اطلاعات گذشته را در حافظه نگه میدارند. این کار درست مثل این است که کل یک کتابخانه را فقط برای خواندن یک جمله، با خود به میز کارتان بیاورید.
LSA متفاوت عمل میکند. این روش از یک Neural Memory Indexer استفاده میکند. این نمایهساز مانند یک دستیار عمل میکند؛ پیشبینی میکند که در حال حاضر به کدام بخشهای خاص از گذشته نیاز دارید و فقط همان بخشهای مشخص را به میز کار میآورد.
نتایج بهدست آمده روی DeepSeek-V4 خیرهکننده است:
- میزان اشغال حافظه فیزیکی به ۱۳.۵٪ اندازه اصلی کاهش مییابد.
- این یعنی ۹۰٪ کاهش در ۵۰۰,۰۰۰ توکن.
- دقت در واقع ۰.۶٪ افزایش مییابد.
چرا این روش بهتر از متدهای قبلی است؟
سایر روشهای sparse attention در زمان محاسبات صرفهجویی میکنند، اما همچنان کل cache را در حافظه نگه میدارند. اما LSA گیگابایتها فضای واقعی را ذخیره میکند؛ زیرا اصلاً از نگه داشتن cache جلوگیری میکند.
همچنین، آموزش این نمایهساز ارزان است. تیم تحقیق از آموزش backbone-free استفاده کرده است. آنها برای آموزش این نمایهساز کوچک، نیازی به بارگذاری مدل تریلیون پارامتری ندارند.
این امر باعث میشود اجرای مدلهایی با Context بسیار طولانی، مقرونبهصرفه شود.
خلاصه رویکردها:
- Full KV Cache: دقیق اما با مصرف حافظه بسیار زیاد.
- Sliding Window: حافظه کم اما اطلاعات قدیمی را فراموش میکند.
- Block-Sparse: در محاسبات صرفهجویی میکند اما cache همچنان بزرگ باقی میماند.
- LSA: حافظه بسیار زیادی را ذخیره کرده و دقت را بالا نگه میدارد.
منبع: https://dev.to/pueding/flashmemory-cuts-deepseek-v4s-kv-cache-to-135-lookahead-sparse-attention-5coe
انجمن یادگیری اختیاری: https://t.me/GyaanSetuAi