Проблема раздутого контекста
Когда языковая модель генерирует текст, она сохраняет промежуточные вычисления в специальном хранилище — KV-кэше. Это необходимо, чтобы не пересчитывать всё заново на каждом шаге, но у метода есть существенный минус: объем кэша растет линейно вместе с длиной текста. Например, для модели Llama 3.1 70B при работе с длинным контекстом в 128 тысяч токенов объем кэша может достигать 40 ГБ, что сопоставимо с весом самой модели.
Такой рост потребления памяти создает критические сложности в трех случаях. Во-первых, при работе с большими документами (RAG), когда кодовая база или длинный PDF забивают всю видеопамять еще до начала диалога. Во-вторых, в сложных агентских сценариях, где многошаговые инструкции раздувают контекст. В-третьих, при обслуживании множества пользователей одновременно: чем длиннее их диалоги, тем меньше сессий может уместиться на одном ускорителе.
Как работает TurboQuant
Существующие методы решения проблемы либо требуют дорогостоящего переобучения моделей, либо искусственно ограничивают длину контекста. Алгоритм TurboQuant предлагает другой путь: он просто сжимает уже готовые данные без изменения архитектуры модели. Это делает его универсальным — метод работает с любой трансформерной моделью без дополнительной калибровки.
В основе метода лежат две математические идеи. Первая — случайное вращение векторов. Перед сжатием данные умножаются на специальную матрицу, что делает их распределение предсказуемым. Вторая идея — использование оптимального квантователя. Вместо стандартной равномерной сетки, которая плохо работает с неравномерными данными, TurboQuant использует сетку, минимизирующую ошибку именно для данного распределения. Это позволяет сжимать данные в 5–6 раз практически без потери качества.
Реальные возможности и ограничения
Важно разделять теоретическое ускорение и практическую пользу. Хотя Google заявляет о восьмикратном ускорении, это относится к сравнению с форматом FP32. В реальных условиях ускорение работы механизма внимания составит примерно 4 раза относительно стандартного FP16. Однако главная ценность TurboQuant заключается не в скорости, а в экономии памяти.
Сжатие кэша в 5–6 раз позволяет значительно увеличить доступный контекст. Если раньше на 34 ГБ видеопамяти модель могла обработать около 109 тысяч токенов, то с TurboQuant этот показатель вырастает до 536 тысяч. Тесты на небольших моделях показывают, что качество ответов на длинных текстах при этом практически не страдает.
Что это значит
TurboQuant — это эффективный инструмент для работы с длинным контекстом на существующем оборудовании. Он позволяет «впихнуть» в одну видеокарту гораздо больше информации, чем раньше, не прибегая к сложному переобучению моделей. Однако для крупных моделей масштаба 70B+ требуются дополнительные исследования, а для максимальной эффективности может потребоваться использование асимметричных настроек сжатия для ключей и значений.
