В prefill обрабатывается весь prompt и создаётся KV-cache. В decode вычисляют Q/K/V нового токена, добавляют K/V в кеш и используют его для внимания к прошлым позициям.
Разбери отдельно prefill и decode: Q/K/V, формы матриц и различия фаз.
В prefill обрабатывается весь prompt и создаётся KV-cache. В decode вычисляют Q/K/V нового токена, добавляют K/V в кеш и используют его для внимания к прошлым позициям.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В prefill обрабатывается весь prompt и создаётся KV-cache. В decode вычисляют Q/K/V нового токена, добавляют K/V в кеш и используют его для внимания к прошлым позициям.
Для обычного multi-head attention Q/K/V имеют форму [B,H,T,d] в prefill, а scores — [B,H,T,T]. На одном decode-шаге Q — [B,H,1,d], кеш K/V — [B,H,L,d], scores — [B,H,1,L]. Старые Q не кешируют для следующего шага. При grouped-query attention число KV-голов меньше числа Q-голов; здесь указана базовая схема.
Источник: huggingface.co.