Команда Google Research представила научную статью, посвящённую методу TurboQuant. Этот алгоритм сжатия данных позволяет уменьшить разрядность KV-кэша в крупных языковых моделях до трёх бит, не ухудшая точности их работы и не требуя дообучения. В испытаниях на ускорителях Nvidia H100 версия TurboQuant с 4-битным кодированием (где один бит отводится на исправление погрешностей) показала восьмикратный прирост скорости при расчёте логитов внимания по сравнению с использованием исходных 32-битных ключей, одновременно сократив объём KV-кэша в шесть раз.
Источник изображения: and machines / unsplash.com
KV-кэш содержит предварительно рассчитанные данные для механизма внимания, что избавляет модель от необходимости вычислять их заново при генерации каждого нового токена. С расширением контекстного окна этот кэш занимает всё больше памяти; стандартные подходы к квантованию хотя и уменьшают его размер, но вынуждены добавлять несколько служебных битов на каждое значение для хранения параметров квантования — это похоже на словарь в классических архиваторах, таких как ZIP или RAR. При работе с длинными контекстами подобные дополнительные затраты остаются существенными.
TurboQuant решает эту проблему, применяя двухэтапную процедуру, которая полностью исключает необходимость в словаре. Первый этап, PolarQuant, преобразует векторы данных из декартовой системы координат в полярную, представляя каждый вектор через его радиус (длину) и угол (направление). Распределение угловых значений обладает предсказуемостью и высокой степенью концентрации, благодаря чему PolarQuant не требует трудоёмкой нормализации отдельных блоков — обязательного шага для традиционных квантователей. В результате достигается эффективное сжатие без дополнительных затрат на хранение служебных констант внимания, то есть без словарей.
Источник изображения: Conny Schneider / unsplash.com
На втором шаге используется однобитный слой коррекции погрешностей, основанный на квантованном преобразовании Джонсона-Линденштрауса. Остаточная ошибка квантования проецируется в пространство с пониженной размерностью, где каждое значение сводится к одному знаковому биту. Это позволяет устранить систематическое смещение при вычислении оценок внимания, внося лишь незначительные дополнительные вычислительные затраты.
Компания Google провела независимое тестирование обеих компонент алгоритма TurboQuant, а также их совместную работу в рамках бенчмарков для длинного контекста: LongBench, Needle In A Haystack, ZeroSCROLLS, RULER и L-Eval, используя открытые модели Gemma и Mistral. TurboQuant продемонстрировал безупречную точность в задачах поиска "иголки в стоге сена", обеспечив сжатие KV-кэша как минимум в шесть раз. В серии тестов LongBench, включающей ответы на вопросы, генерацию кода и суммаризацию, алгоритм показал результаты не ниже, а в некоторых случаях и превосходящие базовый метод сжатия KIVI по всем оцениваемым направлениям.
Эффективность TurboQuant подтвердилась не только при работе с крупными языковыми моделями, но и в сфере векторного поиска — его сравнили с известными алгоритмами сжатия Product Quantization и RabbiQ на датасете GloVe. Даже без этапа обучения и специализированной оптимизации разработка Google превзошла по качеству результаты конкурентов, которые были специально настроены для работы с этим набором данных. TurboQuant не требует ни предварительного обучения, ни тонкой настройки, а его выполнение связано с минимальными накладными расходами, что делает алгоритм готовым к развёртыванию даже в условиях высоких нагрузок.