Новий «Детектор attention sink» виявляє токени, які накопичують більшу частину маси уваги під час етапу prefill інференсу великих мовних моделей (LLM). Інструмент показує, що видалення цих токенів-поглиначів із кешу ключ-значення (KV-кешу) підриває продуктивність моделі, роблячи їх важливими якорями для стабільної генерації.
Чому етап prefill є важливим
Більшість досліджень LLM зосереджені на циклі генерації токен за токеном, але робота, що відбувається до першого токена — prefill — задає тон усьому подальшому процесу. Під час prefill модель обробляє весь промпт, будує KV-кеш і розподіляє увагу по всіх позиціях. Оскільки softmax, який створює ваги уваги, має в сумі давати 1, модель не може сказати «нічого не є релевантним». Вона скидає залишки ймовірнісної маси на токен, до якого легко звернутися, зазвичай це перший токен у послідовності. Цей токен стає поглиначем уваги (attention sink).
Що таке attention sink простими словами
У Transformer кожна голова обчислює вагу для кожної пари токенів. Коли розподіл сильно зміщений, один токен може отримати непропорційно велику частку ваги уваги. Це явище не є помилкою; воно випливає з обмеження softmax. Перший токен (часто маркер початку речення) діє як «випускний клапан» для залишку ймовірності, який неможливо призначити в іншому місці.
Значення для управління KV-кешем
KV-кеші зберігають вектори ключів та значень для кожного обробленого токена, що дозволяє швидко здійснювати пошук під час генерації. У сценаріях із довгим контекстом практики обрізають (prune) кеш, щоб вписатися в ліміти пам'яті GPU. Новий детектор показує, що бездумне видалення токенів, які здаються «неважливими», також видаляє ті самі поглиначі, на які покладається модель, що призводить до різкого падіння продуктивності. Закріплення токенів-поглиначів у кеші зберігає внутрішню рівновагу моделі та забезпечує стабільність генерації.
Як працює детектор
- Eager attention: Реалізація обходить швидкі ядра, такі як FlashAttention, які стискають повну матрицю уваги, і натомість записує необроблені (raw) показники уваги для кожної голови.
- Агрегація по всіх шарах: Показники усереднюються по всіх шарах і головах, щоб отримати єдиний профіль маси уваги для кожного токена.
- Логарифмічне медіанне абсолютне відхилення (MAD): Оскільки ваги уваги мають сильне правостороннє зміщення, проста перевірка середнього значення та стандартного відхилення помилково класифікує нормальну варіативність як викиди. Логарифмічне перетворення ваг нормалізує розподіл; застосування MAD дозволяє виявити токени, чия маса уваги перевищує типовий розкид.
Виявлено два класи поглиначів
- Справжні поглиначі (True sinks) — токен початку речення (BOS) стабільно поглинає величезну частину уваги, незалежно від змісту промпту.
- Структурні поглиначі (Structural sinks) — токени, що належать до системних промптів, наприклад, маркери, що використовуються в ChatML (
<im_start>,<im_end>), утворюють невеликі кластери, які також притягують увагу. Вони діють як логічні межі, допомагаючи моделі відокремлювати повідомлення користувача від системних інструкцій.
Контраргумент: Чи справді нам потрібна сира матриця?
Автор зазначає, що без необроблених чисел явище поглиначів залишається прихованим, і будь-яка політика обрізки кешу, заснована на неповних даних, ризикує дестабілізувати модель.
За чим стежити далі
Детектор є другим етапом чотирьохчастинної серії, яка розпочалася з трекера ентропії для оцінки якості генерації. Наступна частина інтегруватиме виявлення поглиначів зі спекулятивним декодуванням під керуванням ентропії. Фінальним етапом буде емпіричне дослідження.
Висновок: Attention sinks — це не маловідома особливість; це структурні стовпи, які підтримують належний розподіл уваги Transformer під час prefill. Будь-яка стратегія обрізки KV-кешу, яка їх ігнорує, поставить під загрозу стабільність моделі. Виявлення та збереження цих токенів є недорогим засобом захисту, який може зробити інференс із довгим контекстом як надійним, так і ефективним.
