- BrainTools - https://www.braintools.ru -

TurboQuant. Новый алгоритм сжатия от Google

Google Research выпустили TurboQuant – новый алгоритм сжатия данных, который сокращает объём кэш-памяти LLM как минимум в 6 раз и даёт ускорение до 8 раз. При этом заявляется отсутствие потерь в точности, что напрямую влияет на эффективность работы ИИ.

TurboQuant. Новый алгоритм сжатия от Google - 1

Если эти цифры подтверждаются на практике – это очень серьёзный прорыв, потому что inference в современных LLM всё чаще упирается не в вычисления, а в память [1] и пропускную способность.

Думаю, будет правильно первым делом дать ссылку на оригинальную публикацию от самих Google с подробным описанием алгоритма:

https://research.google/blog/turboquant-redefining-ai-efficiency-with-extreme-compression [2]

Теперь давайте разберёмся, что это за алгоритм с таким громким названием и за счёт чего он вообще работает.

Что за KV-cache и на что он влияет?

Когда LLM (например, GPT-4 или Gemini) генерирует текст, она делает это токен за токеном, каждый раз учитывая весь предыдущий контекст через механизм attention. Пересчитывать всё заново на каждом шаге было бы слишком дорого, поэтому модель сохраняет промежуточные представления – Key и Value – в специальный кэш.

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

И здесь возникает, говоря по-русски, bottleneck. Со временем инференс упирается не в вычисления, а в пропускную способность памяти: GPU начинает «ждать данные», вместо того чтобы считать. Это увеличивает задержки, повышает стоимость и ограничивает длину контекста.

TurboQuant. Новый алгоритм сжатия от Google - 2

Сразу напрашивается сжать этот KV-cache. Но сделать это аккуратно сложно: эти данные напрямую участвуют в вычислении attention, и любая ошибка [3] в них сразу влияет на качество модели. Именно эту задачу решает TurboQuant, который пытается сильно сжать KV-cache так, чтобы модель этого почти не заметила.

Как работает TurboQuant

Ключевая идея TurboQuant в том, чтобы сжимать данные с учётом того, как они будут использоваться в attention.

Алгоритм состоит из двух этапов:

На первом этапе применяется метод Полярного Квантования – PolarQuant. Перед сжатием векторы случайным образом «поворачиваются» – это упрощает их структуру и делает данные более удобными для квантования. После этого вектор переводится в полярное представление: вместо привычных координат модель оперирует радиусом (силой сигнала) и углом (его направлением).

Из оригинальной статьи

Из оригинальной статьи

Это даёт неожиданный эффект. В таком представлении данные становятся более «предсказуемыми», и их можно сжимать гораздо эффективнее без необходимости хранить дополнительные параметры (тот самый overhead, который обычно портит жизнь классическим методам). На этом этапе сохраняется основная информация о векторе – его смысловое ядро.

Но после сжатия неизбежно остаётся небольшая ошибка. Здесь включается второй этап – QJL (Quantized Johnson-Lindenstrauss // Квантованное Преобразование Джонсона-Линденштраусса). QJL работает как аккуратный корректор. Он кодирует остаточную ошибку буквально в 1 бит на значение и при этом делает это так, чтобы не искажались расстояния между векторами. Это важно, потому что attention как раз и основан на сравнении таких представлений.

В итоге получается интересная комбинация:
• PolarQuant даёт сильное сжатие
• QJL аккуратно подчищает ошибки

И в итоге получается эффективное сжатие без заметной потери качества.

Насколько это работает?

В статье приводятся довольно сильные результаты. Во-первых, KV-cache удаётся уменьшить как минимум в 6 раз. Это уже само по себе серьёзно, учитывая, сколько памяти он обычно занимает.

График из оригинальной статьи: TurboQuant демонстрирует высокую производительность сжатия кэша KV в тесте LongBench по сравнению с различными методами сжатия в модели Llama-3.1-8B-Instruct (разрядность указана в скобках).

График из оригинальной статьи: TurboQuant демонстрирует высокую производительность сжатия кэша KV в тесте LongBench по сравнению с различными методами сжатия в модели Llama-3.1-8B-Instruct (разрядность указана в скобках).

Во-вторых, за счёт уменьшения объёма данных ускоряется и сама работа модели. Заявляется до 8x ускорения, особенно на современных GPU вроде H100. Здесь важно понимать, что выигрыш идёт не из «магии алгоритма», а из более прозаичной вещи – нужно просто меньше читать из памяти.

График из оригинальной статьи: TurboQuant демонстрирует существенное увеличение производительности при вычислении логитов внимания в кэше ключ-значение на различных уровнях разрядности, измеренных относительно высокооптимизированного базового уровня JAX.

График из оригинальной статьи: TurboQuant демонстрирует существенное увеличение производительности при вычислении логитов внимания [4] в кэше ключ-значение на различных уровнях разрядности, измеренных относительно высокооптимизированного базового уровня JAX.

Интересно, что авторам удалось опуститься до 3 бит на значение без дополнительного обучения [5] модели. Обычно такие уровни сжатия требуют fine-tuning, но здесь, судя по описанию, удалось обойтись без него.

По качеству тоже всё выглядит аккуратно: на бенчмарках для длинного контекста и задачах вроде «needle-in-a-haystack» (когда нужно найти маленький факт в огромном тексте) деградации практически нет.

Конечно, без потерь в реальных системах почти не бывает. Но даже небольшое ухудшение при таком огромном выигрыше в ресурсах – вполне приемлемый компромисс.

Резюме

Сегодня основная стоимость инференса – это не столько вычисления, сколько память и её пропускная способность. Поэтому любые улучшения в работе с KV-cache конвертируются во вполне прикладные вещи: снижение стоимости запросов, рост throughput и возможность работать с более длинными контекстами.

Кроме того, такие методы открывают дорогу к более эффективному запуску моделей на ограниченном железе – от небольших GPU до edge-устройств. И важно, что TurboQuant применим не только к LLM: те же идеи лежат в основе векторного поиска, на котором строятся современные поисковые и рекомендательные системы.

График из оригинальной статьи: TurboQuant демонстрирует высокую производительность поиска, достигая оптимального соотношения 1 к k для набора данных GloVe (d=200) по сравнению с различными современными базовыми параметрами квантования.

График из оригинальной статьи: TurboQuant демонстрирует высокую производительность поиска, достигая оптимального соотношения 1 к k для набора данных GloVe (d=200) по сравнению с различными современными базовыми параметрами квантования.

Можно сказать, что TurboQuant – хороший пример того, как серьёзные улучшения в AI происходят не только за счёт новых моделей, но и за счёт глубокой оптимизации инфраструктуры вокруг них. Это сильная инженерная работа, которая аккуратно использует математику [6], чтобы выжать максимум из уже существующих подходов.

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

P.S.

Спасибо, что вместе со мной решили разобраться с новым прорывом Google. Эту статью я в первую очередь написал для себя, чтобы лучше понять, что это такое и как работает. Буду очень рад обратной связи и вашей поддержке.

И также у меня есть небольшой Telegram-канал, где я пишу о проблемах работы с данными, цифровой экологии, интересном из мира AI и IT – в первую очередь интересном для меня, но надеюсь, и вас зацепит и вы решите остаться.

Автор: meliksetyan

Источник [8]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/27733

URLs in this post:

[1] память: http://www.braintools.ru/article/4140

[2] https://research.google/blog/turboquant-redefining-ai-efficiency-with-extreme-compression: https://research.google/blog/turboquant-redefining-ai-efficiency-with-extreme-compression/

[3] ошибка: http://www.braintools.ru/article/4192

[4] внимания: http://www.braintools.ru/article/7595

[5] обучения: http://www.braintools.ru/article/5125

[6] математику: http://www.braintools.ru/article/7620

[7] t.me: https://t.me/+Nx64J1xYTyNkZTIy

[8] Источник: https://habr.com/ru/articles/1015092/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1015092

www.BrainTools.ru

Rambler's Top100