Google Research, DeepMind и NYU представили TurboQuant, и это может оказаться одной из самых важных инфраструктурных работ года в AI.

На бумаге выглядит не слишком захватывающе: vector quantization, сжатие высокоразмерных векторов, теоретические гарантии. На практике речь идет о двух очень дорогих вещах: KV-cache у больших языковых моделей и векторном поиске.

И там, и там старая проблема одна и та же. Нужно ужать данные как можно сильнее, но не испортить геометрию векторов, то есть расстояния и скалярные произведения. Если испортить, начинаются проблемы с attention, retrieval, ранжированием и качеством ответа модели.

Именно сюда TurboQuant и бьет.

Авторы утверждают, что их метод почти подходит к теоретическому пределу по distortion rate. Проще говоря, к пределу того, насколько хорошо такие векторы вообще можно сжимать при заданной битности. Для академической работы тезис уже сильный.

У большинства практических схем здесь старый компромисс. Либо нужно тяжелое офлайн-обучение, калибровка и кодбуки, либо метод быстрый и удобный для онлайна, но качество сжатия так себе. TurboQuant пытается этот компромисс сдвинуть.

Причем проблема не только в потере качества. Google в своем блоге отдельно пишут о еще одной неприятной детали классического vector quantization: memory overhead. Вы вроде бы экономите биты, но потом вынуждены тратить часть этой экономии на хранение quantization constants в полной точности для маленьких блоков данных. По их словам, такой overhead может добавлять еще 1-2 бита на число. То есть часть выигрыша просто съедается служебной нагрузкой.

На этом фоне TurboQuant выглядит как попытка решить сразу весь пакет проблем: уменьшить память, убрать лишний overhead, не требовать обучения или fine-tuning и при этом не развалить downstream-задачи.

Отдельно важно, что paper не сводит все к MSE. Для современных моделей этого недостаточно. В attention и retrieval критично сохранять inner product. Авторы прямо показывают, что quantizer, оптимизированный только по MSE, может давать смещенную оценку скалярного произведения. Поэтому у них двухшаговая схема: сначала основное сжатие, потом 1-битная коррекция остатка через QJL, чтобы убрать bias.

Если перевести это на нормальный язык, мысль простая: ужать вектор мало. Нужно сделать это так, чтобы модель после этого не начинала думать немного не о том.

По заявленным результатам картина выглядит сильно. В paper авторы пишут, что для KV-cache достигают quality neutrality на 3.5 битах на канал и лишь небольшую деградацию на 2.5 битах. В Needle-in-a-Haystack, по их данным, TurboQuant сохраняет качество полноточной модели при 4x-сжатии. На LongBench вариант с 3.5 битами идет практически вровень с full cache на Llama-3.1-8B-Instruct.

Но в блоге Google есть, возможно, еще более важный тезис. Там они отдельно подчеркивают, что TurboQuant умеет сжимать KV-cache до 3 бит без training и fine-tuning и без просадки качества на их тестах. Более того, они утверждают, что 4-bit TurboQuant дает до 8x ускорения при вычислении attention logits на H100 по сравнению с 32-bit unquantized keys.

Это прямой разговор про цену и скорость serving.

Не менее любопытна часть про vector search. Авторы утверждают, что TurboQuant обходит Product Quantization и RabitQ по recall, а время индексации у него почти нулевое. Для систем, где нужно хранить и искать по огромным индексам эмбеддингов, это потенциально очень большие деньги.

При этом голову терять, конечно, не стоит. Это история с очень сильными заявлениями, а значит тут особенно важна внешняя репликация. Формулировки вроде zero accuracy loss, near-optimal distortion и up to 8x всегда нужно проверять на деталях реализации, baseline и настройках эксперимента.

Но в сухом остатке новость действительно большая.

Если внешняя проверка подтвердит хотя бы большую часть заявленного, это будет одна из самых важных инфраструктурных работ в AI за последнее время.


❗️❗️❗️❗️❗️❗️❗️❗️ / Не запрещена в РФ