Кэширование KV-выходов: как сделать длинный контекст дешевле в памяти
Стандартная реализация механизма внимания требует хранения всех предыдущих ключей и значений для вычисления нового токена. При контексте в 10 тыс. и больше токенов это становится узким местом.
Новые версии библиотек реализовали явное кэширование KV-выходов между запусками, что исключает пересчёт и экономит пропускную способность памяти. Техника давно известна, но редко была доступна в открытых проектах.
Практическое внедрение
Кэширование работает при последовательной генерации текста и автоматически включается в режиме вывода. Интеграция в популярные фреймворки вроде Hugging Face обеспечивает удобство использования.
Экономия позволяет работать с контекстом в 32 тыс. токенов на GPU с 16 Гб памяти, что раньше требовало квантизации или специализированных методов сжатия.
Улучшение применимо ко всем трансформерным моделям независимо от размера и не требует переобучения.