Масштабирование больших языковых моделей (LLM) всё больше ограничивается накладными расходами на передачу данных между памятью с высокой пропускной способностью (HBM) и SRAM. Размер кэша Key-Value (KV) зависит от размеров модели и длины контекста, что создаёт значительное узкое место для логического вывода в длинном контексте.
Команда исследователей Google предложила TurboQuant — алгоритм квантования, не зависящий от данных, разработанный для достижения почти оптимальных коэффициентов искажения для многомерных евклидовых векторов, при этом решая проблемы среднеквадратичной ошибки (MSE) и искажения скалярного произведения.
Преодолевая «стену памяти» с помощью квантования данных, не зависящего от данных
Квантование векторов (VQ) в евклидовом пространстве — фундаментальная проблема, основанная на теории кодирования Шеннона. Традиционные алгоритмы VQ, такие как Product Quantization (PQ), часто требуют обширной предварительной обработки в автономном режиме и обучения кодовых книг с учётом данных, что делает их непригодными для динамических требований рабочих нагрузок реального времени, таких как управление кэшем KV.
TurboQuant — это алгоритм, не зависящий от данных, и он не требует настройки или калибровки для конкретных наборов данных. Он разработан для обеспечения высокой совместимости с современными ускорителями, такими как GPU, за счёт использования векторизованных операций, а не медленных, непараллелизуемых бинарных поисков.
Геометрическая механика TurboQuant
Основной механизм TurboQuant заключается в применении случайного поворота Π E Rdxd к входным векторам. Этот поворот индуцирует концентрированное бета-распределение по каждой координате, независимо от исходных входных данных. В высоких измерениях эти координаты становятся почти независимыми и одинаково распределёнными (i.i.d.).
Эта почти независимость упрощает конструкцию квантования, позволяя TurboQuant решать непрерывную задачу скалярного квантования 1D k-means / Max-Lloyd для каждой координаты. Оптимальный скалярный квантизатор для заданной разрядности b находится путём минимизации следующей функции стоимости MSE:
$\mathcal{C}(f{X},b):=min{-1\le c{1}\le c{2}\le…\le c{2^{b}}\le1}\sum{i=1}^{2^{b}}\int{\frac{c{i-1}+c{i}}{2}}^{\frac{c{i}+c{i+1}}{2}}|x-c{i}|^{2}\cdot f_{X}(x)dx$
Решая эту оптимизацию один раз для соответствующих битовых ширин и сохраняя полученные кодовые книги, TurboQuant может эффективно квантовать векторы во время логического вывода в режиме онлайн.
Устранение смещения скалярного произведения
Основная проблема при квантовании заключается в том, что карты, оптимизированные строго для MSE, часто вводят смещение при оценке скалярных произведений, которые являются фундаментальными операциями в механизмах внимания трансформеров. Например, 1-битный квантизатор, оптимальный для MSE в высоких размерностях, может демонстрировать мультипликативное смещение в 2/π.
Чтобы исправить это, Google Research разработала TURBOQUANTprod — двухэтапный подход:
* Этап MSE: применяется квантизатор TURBOQUANTmse с битовой шириной b-1 для минимизации нормы L2 остаточного вектора.
* Этап без смещения: к остаточному вектору применяется 1-битное квантованное преобразование Джонсона-Линденштраусса (QJL).
Это сочетание обеспечивает общую битовую ширину b, предоставляя доказуемо несмещённую оценку скалярных произведений:
$\mathbb{E}_{Q}[\langle y,Q^{-1}(Q(x))\rangle ]=\langle y,x\rangle $
Теоретическая и эмпирическая производительность
Исследовательская группа установила информационные теоретические нижние границы, используя нижнюю границу Шеннона (SLB) и принцип минимакса Яо. Искажение MSE TurboQuant доказуемо находится в пределах небольшого постоянного коэффициента (≈ 2,7) от абсолютного теоретического предела для всех битовых ширин. При битовой ширине b=1 он отличается от оптимального примерно в 1,45 раза.
| Битовая ширина (b) | Искажение TURBOQUANTmse | Информационно-теоретическая нижняя граница |
| — | — | — |
| 1 | 0,360 | 0,25 |
| 2 | 0,117 | 0,0625 |
| 3 | 0,030 | 0,0156 |
| 4 | 0,009 | 0,0039 |
В конце концов, в тестах на генерацию LLM с использованием Llama-3.1-8B-Instruct и Ministral-7B-Instruct TurboQuant продемонстрировал сохранение высокого качества. При коэффициенте сжатия 4x модель сохранила 100% точность поиска по бенчмарку Needle-In-A-Haystack. В бенчмарке Needle-In-A-Haystack TurboQuant соответствовал полной точности до 104 тыс. токенов при 4-кратном сжатии.
Для нецелых битовых ширин система использует стратегию обработки выбросов, выделяя более высокую точность (например, 3 бита) для определённых каналов выбросов и более низкую точность (например, 2 бита) для непревышающих, что приводит к эффективным битрейтам, таким как 2,5 или 3,5 бита на канал.
Скорость и эффективность индексации
В задачах поиска ближайшего соседа TurboQuant превзошёл стандартное Product Quantization (PQ) и RabitQ по скорости поиска, сократив при этом время индексации практически до нуля. Поскольку TurboQuant не зависит от данных, он устраняет необходимость в этапе обучения k-means, который может занимать сотни секунд для больших наборов данных.
| Подход | d=200 | d=1536 | d=3072 |
| — | — | — | — |
| Product Quantization | 37,04 с | 239,75 с | 494,42 с |
| TurboQuant | 0,0007 с | 0,0013 с | 0,0021 с |
TurboQuant представляет собой математически обоснованный сдвиг в сторону эффективного, совместимого с аппаратным обеспечением векторного квантования, который устраняет разрыв между теоретическими пределами искажения и практическим развёртыванием ИИ.
Ключевые выводы
* Предварительная обработка не требуется. В отличие от стандартного Product Quantization (PQ), TurboQuant не зависит от данных и работает мгновенно, не требуя трудоёмкого обучения k-means на вашем конкретном наборе данных.
* Близость к теоретическому совершенству. Он достигает почти оптимальных коэффициентов искажения, оставаясь в пределах небольшого постоянного коэффициента примерно в 2,7 от информационно-теоретической нижней границы, установленной Шенноном.
* Несмещённые скалярные произведения. Используя двухэтапный подход — применение квантования, оптимального для MSE, с последующим применением 1-битного преобразования QJL к остаточному — он обеспечивает несмещённые оценки скалярного произведения, что жизненно важно для поддержания точности механизмов внимания трансформеров.
* Значительная экономия памяти. При развёртывании LLM он сжимает кэш KV более чем в 5 раз. Он обеспечивает абсолютную нейтральность качества при 3,5 битах на канал и поддерживает 100% отзыв в тестах «иголка в стоге сена» до 104 тыс. токенов.
* Мгновенная индексация для поиска. Для векторных баз данных TurboQuant сокращает время индексации практически до нуля (например, 0,0013 с для 1536-мерных векторов), при этом последовательно превосходя традиционный PQ по скорости поиска.
1. В чём заключается основная проблема при квантовании данных в больших языковых моделях (LLM) и как алгоритм TurboQuant решает эту проблему?
Ответ: основная проблема при квантовании данных в LLM заключается в том, что накладные расходы на передачу данных между памятью с высокой пропускной способностью (HBM) и SRAM ограничивают масштабирование моделей. Алгоритм TurboQuant решает эту проблему, предлагая алгоритм квантования, не зависящий от данных, который обеспечивает почти оптимальные коэффициенты искажения для многомерных евклидовых векторов.
2. Какие преимущества предлагает алгоритм TurboQuant по сравнению с традиционными алгоритмами квантования?
Ответ: TurboQuant предлагает несколько преимуществ по сравнению с традиционными алгоритмами квантования, такими как Product Quantization (PQ). Во-первых, он не требует обширной предварительной обработки в автономном режиме и обучения кодовых книг с учётом данных, что делает его более подходящим для динамических требований рабочих нагрузок реального времени. Во-вторых, он разработан для обеспечения высокой совместимости с современными ускорителями, такими как GPU, за счёт использования векторизованных операций.
3. Как работает механизм квантования в TurboQuant и какие математические принципы лежат в его основе?
Ответ: основной механизм TurboQuant заключается в применении случайного поворота Π E Rdxd к входным векторам. Этот поворот индуцирует концентрированное бета-распределение по каждой координате, независимо от исходных входных данных. В высоких измерениях эти координаты становятся почти независимыми и одинаково распределёнными (i.i.d.), что упрощает конструкцию квантования. Оптимальный скалярный квантизатор для заданной разрядности b находится путём минимизации функции стоимости MSE.
4. Какие результаты были получены при тестировании алгоритма TurboQuant на генерацию LLM с использованием Llama-3.1-8B-Instruct и Ministral-7B-Instruct?
Ответ: при тестировании на генерацию LLM с использованием Llama-3.1-8B-Instruct и Ministral-7B-Instruct TurboQuant продемонстрировал сохранение высокого качества. При коэффициенте сжатия 4x модель сохранила 100% точность поиска по бенчмарку Needle-In-A-Haystack. В бенчмарке Needle-In-A-Haystack TurboQuant соответствовал полной точности до 104 тыс. токенов при 4-кратном сжатии.
5. Какие выводы можно сделать о производительности и эффективности TurboQuant на основе предоставленных данных?
Ответ: на основе предоставленных данных можно сделать вывод, что TurboQuant является эффективным алгоритмом квантования, который обеспечивает значительную экономию памяти и повышение скорости при работе с LLM. Он достигает почти оптимальных коэффициентов искажения, сохраняя при этом высокое качество генерации и поиска. Кроме того, TurboQuant не требует предварительной обработки и обучения, что делает его удобным для использования в реальных условиях.