Новий «Детектор 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 дозволяє виявити токени, чия маса уваги перевищує типовий розкид.

Виявлено два класи поглиначів

  1. Справжні поглиначі (True sinks) — токен початку речення (BOS) стабільно поглинає величезну частину уваги, незалежно від змісту промпту.
  2. Структурні поглиначі (Structural sinks) — токени, що належать до системних промптів, наприклад, маркери, що використовуються в ChatML (<im_start>, <im_end>), утворюють невеликі кластери, які також притягують увагу. Вони діють як логічні межі, допомагаючи моделі відокремлювати повідомлення користувача від системних інструкцій.

Контраргумент: Чи справді нам потрібна сира матриця?

Автор зазначає, що без необроблених чисел явище поглиначів залишається прихованим, і будь-яка політика обрізки кешу, заснована на неповних даних, ризикує дестабілізувати модель.

За чим стежити далі

Детектор є другим етапом чотирьохчастинної серії, яка розпочалася з трекера ентропії для оцінки якості генерації. Наступна частина інтегруватиме виявлення поглиначів зі спекулятивним декодуванням під керуванням ентропії. Фінальним етапом буде емпіричне дослідження.

Висновок: Attention sinks — це не маловідома особливість; це структурні стовпи, які підтримують належний розподіл уваги Transformer під час prefill. Будь-яка стратегія обрізки KV-кешу, яка їх ігнорує, поставить під загрозу стабільність моделі. Виявлення та збереження цих токенів є недорогим засобом захисту, який може зробити інференс із довгим контекстом як надійним, так і ефективним.