EMZETT.
Войти

KV-кэш

Коротко: KV-кэш хранит промежуточные результаты (ключи и значения) предыдущих токенов, чтобы модели не приходилось пересчитывать их каждый раз.

Подробнее: Кэш растёт с каждым токеном. При длинных контекстах он может занимать несколько гигабайт и должен помещаться в память вдобавок к модели. Современные модели с «grouped-query attention» заметно его уменьшают.

Подробности

  • Размер: 2 × слои × KV-головы × размер головы × байт на значение × токены. Модели на 8 млрд параметров с 32 слоями в FP16 нужно около 0,13 МБ на токен, около 4 ГБ на 32 000 токенов.
  • Квантованный: кэш можно хранить в 8 бит — потребность уменьшается вдвое.
  • Влияние на скорость: при длинных контекстах каждый новый токен читает и весь кэш. Это замедляет работу.
  • Повторное использование: общее начало нескольких запросов (системный промпт) может оставаться в кэше («prompt caching»).

См. также: Контекстное окно, VRAM и размер модели