DuoAttention: Efficient Long-Context LLM Inference with Retrieval and Streaming Heads
автор недавно упомянутых
ретривал голов и
аттеншн синков решил объединить эти 2 концепции и нехило так сэкономить по памяти для кв кэша
продолжая идею, которой они прогревали в статье про ретривал головы, про компрессию кв кэша - давайте хранить весь кэш только для этих голов, а остальным оставлять кэш только для синк токенов и недавних токенов (степень “недавности” определяется гипером в соответствии с трейдоффами по памяти и перформансу)
определяют же ретривал головы в этот раз по другому сетапу - ставят обучаемый гейт на каждую голову каждого слоя, с помощью которого фиксируют пропорцию между фулл аттеншном и “стриминг аттеншном” + л1 регуляризация. получается num_layers x num_heads параметров, которые можно зафиттить на классический форвард пасс за 2к степов на 8 а100 (по заверениям авторов). обучались же на их синтетике (не особо понятно почему это было проще чем запустить сразу на needle in a haystack + есть вопросы по поводу того, действительно ретривал головы не меняются если менять датасеты на которых мы их ищем)
а в принципе звучит даже интересно, посмотрим как приживется, если они код смогут попроще причесать
👀LINK