یک «آشکارساز سینک توجه» (Attention Sink Detector) جدید، توکنهایی را شناسایی میکند که بخش اعظم جرم توجه (attention mass) را در مرحله prefill هنگام استنتاج مدلهای زبانی بزرگ (LLM) به خود اختصاص میدهند. این ابزار نشان میدهد که حذف این توکنهای سینک از حافظه پنهان کلید-مقدار (KV cache)، عملکرد مدل را مختل کرده و نشان میدهد که آنها لنگرهای ضروری برای تولید پایدار هستند.
چرا مرحله prefill اهمیت دارد
بیشتر تحقیقات LLM بر حلقه تولید توکنبهتوکن تمرکز میکنند، اما کاری که قبل از اولین توکن انجام میشود — یعنی مرحله prefill — مسیر را برای تمام مراحل بعدی تعیین میکند. در طول مرحله prefill، مدل کل پرامپت را پردازش میکند، KV cache را میسازد و توجه را در تمام موقعیتها پخش میکند. از آنجایی که تابع softmax که وزنهای توجه را تولید میکند باید مجموعاً برابر با ۱ باشد، مدل نمیتواند بگوید «هیچ چیز مرتبط نیست». در عوض، جرم احتمالی باقیمانده را روی توکنی تخلیه میکند که دسترسی به آن آسان است، که معمولاً اولین توکن در توالی است. آن توکن به یک سینک توجه (attention sink) تبدیل میشود.
سینک توجه به زبان ساده چیست
در یک ترنسفورمر (Transformer)، هر هد (head) یک وزن برای هر جفت توکن محاسبه میکند. وقتی توزیع به شدت منحرف شود، یک توکن واحد ممکن است سهم نامتناسبی از وزن توجه را دریافت کند. این پدیده یک باگ نیست؛ بلکه از محدودیت softmax ناشی میشود. اولین توکن (که اغلب نشانگر شروع جمله یا BOS است) به عنوان یک «شیر تخلیه» برای احتمال باقیماندهای عمل میکند که نمیتوان آن را به جای دیگری اختصاص داد.
مخاطرات مدیریت KV-cache
حافظههای KV cache، بردارهای کلید (key) و مقدار (value) را برای هر توکن پردازششده ذخیره میکنند و امکان جستجوی سریع در طول تولید را فراهم میسازند. در سناریوهای با متن طولانی (long-context)، متخصصان برای باقی ماندن در محدوده محدودیتهای حافظه GPU، حافظه پنهان را هرس (prune) میکنند. آشکارساز جدید نشان میدهد که حذف بیرویه توکنهایی که «ناهمچندان مهم» به نظر میرسند، در واقع همان سینکهایی را که مدل به آنها متکی است حذف میکند و باعث سقوط عملکرد میشود. ثابت نگه داشتن (pinning) توکنهای سینک در حافظه پنهان، تعادل داخلی مدل را حفظ کرده و تولید را پایدار نگه میدارد.
آشکارساز چگونه کار میکند
- توجه مشتاقانه (Eager attention): این پیادهسازی از هستههای سریع مانند FlashAttention که ماتریس کامل توجه را فشرده میکنند عبور کرده و در عوض، امتیازات توجه خام را برای هر هد ثبت میکند.
- تجمیع در سطح لایه (Layer-wide aggregation): امتیازها در تمام لایهها و هدها میانگینگیری میشوند تا یک پروفایل واحد از جرم توجه برای هر توکن تولید شود.
- انحراف مطلق میانه لگاریتمی (MAD): از آنجایی که وزنهای توجه دارای چولگی شدید به راست هستند، یک تست ساده میانگین-انحراف معیار، واریانس عادی را به اشتباه به عنوان داده پرت (outlier) طبقهبندی میکند. تبدیل لگاریتمی وزنها، توزیع را نرمال میکند؛ سپس اعمال MAD، توکنهایی را که جرم توجه آنها از پراکندگی معمول فراتر میرود، علامتگذاری میکند.
دو کلاس از سینکهای کشفشده
۱. سینکهای واقعی (True sinks) – توکن شروع جمله (BOS) بدون توجه به محتوای پرامپت، به طور مداوم بخش عظیمی از توجه را جذب میکند.
۲. سینکهای ساختاری (Structural sinks) – توکنهایی که متعلق به پرامپتهای سطح سیستم هستند، مانند نشانگرهای استفاده شده در ChatML (مانند <im_start> و <im_end>)، خوشههای کوچکی را تشکیل میدهند که آنها نیز توجه را به خود جلب میکنند. آنها به عنوان مرزهای منطقی عمل کرده و به مدل کمک میکنند تا پیامهای کاربر را از دستورالعملهای سیستم جدا کند.
نکته مقابل: آیا واقعاً به ماتریس خام نیاز داریم؟
نویسنده اشاره میکند که بدون اعداد خام، پدیده سینک پنهان میماند و هر سیاست هرس کردن حافظه پنهان که بر اساس دادههای ناقص باشد، خطر بیثبات کردن مدل را به همراه دارد.
آنچه باید در آینده زیر نظر داشت
این آشکارساز، دومین بخش از یک مجموعه چهار قسمتی است که با یک ردیاب آنتروپی برای کیفیت تولید شروع شد. بخش بعدی، تشخیص سینک را با رمزگشایی گمانهزن هدایتشده با آنتروپی (entropy-guided speculative decoding) ادغام خواهد کرد. مطالعه نهایی نیز یک مطالعه تجربی خواهد بود.
نتیجهگیری: سینکهای توجه یک ویژگی عجیب و مبهم نیستند؛ آنها ستونهای ساختاری هستند که توزیع توجه یک ترنسفورمر را در مرحله prefill منظم نگه میدارند. هر استراتژی هرس کردن KV-cache که آنها را نادیده بگیرد، پایداری مدل را به خطر میاندازد. شناسایی و حفظ این توکنها یک محافظ کمهزینه است که میتواند استنتاج در متنهای طولانی را هم قابل اعتماد و هم کارآمد کند.
