декодирование
decode
Фаза письма. После префилла модель выдаёт по одному токену за проход, каждый дописывается к промпту и подаётся обратно на вход. Именно эту фазу меряют токены в секунду, и она упирается в пропускную способность памяти: каждый активный вес приходится вычитывать из памяти ради каждого отдельного токена.
Декодирование строго идёт по одному токену, потому что модель не может знать второе слово, пока не зафиксировала первое. Из-за этой последовательной зависимости лишние ядра GPU здесь почти не помогают, а пропускная способность памяти помогает.
Отсюда два следствия. Уменьшение модели делает декодирование быстрее, а не только компактнее, потому что на токен приходится читать меньше. И KV-кеш существует ровно затем, чтобы декодирование не перечитывало весь разговор ради каждого слова, — это и есть та сделка, которая превращает задачу вычислений в задачу памяти.
Поскольку чип большую часть декодирования ждёт память, арифметика у него простаивает. Спекулятивное декодирование и multi-token prediction существуют затем, чтобы её потратить.