Диаграмма: снижение объема памяти (%) в зависимости от размерности встраивания.

Поиск масштабируемых векторов: сравнение квантования и матрешковых вложений для снижения затрат на 80%.

Преодоление «обрыва производительности»: как сочетание MRL с int8 и бинарным квантованием позволяет сбалансировать затраты на инфраструктуру и точность поиска.

Делиться

0f593e86941fb8e3efa56c0d9363ea34

Векторный поиск лежит в основе инфраструктуры ИИ, обеспечивая работу множества функций ИИ, от генерации с расширенным поиском (RAG) до навыков агентов и долговременной памяти. В результате спрос на индексирование больших наборов данных быстро растет. Для инженерных команд переход от небольшого прототипа к полномасштабному производственному решению становится серьезной проблемой, связанной с необходимым хранилищем и соответствующими затратами на инфраструктуру векторных баз данных. Именно тогда возникает необходимость в оптимизации.

В этой статье я рассматриваю основные подходы к оптимизации хранения векторных баз данных: квантование и обучение представлению в виде матрешки (MRL) , а также анализирую, как эти методы могут использоваться по отдельности или в сочетании для снижения затрат на инфраструктуру при сохранении высокого качества результатов поиска.

Глубокое погружение

Анатомия затрат на хранение векторных данных

Чтобы понять, как оптимизировать индекс, сначала нужно взглянуть на исходные данные. Почему векторные базы данных вообще становятся такими дорогими?

Объём памяти, занимаемый векторной базой данных, определяется двумя основными факторами: точностью и размерностью .

  • Точность: Вектор встраивания обычно представляется в виде массива 32-битных чисел с плавающей запятой (Float32). Это означает, что каждое отдельное число внутри вектора занимает 4 байта памяти.
  • Размерность: Чем выше размерность, тем больше «пространства» у модели для размещения семантических деталей исходных данных. Современные модели встраивания обычно выдают векторы с 768 или 1024 измерениями.

Давайте произведем расчеты для стандартного 1024-мерного векторного представления в производственной среде:

  • Размер базового вектора: 1024 измерения * 4 байта = 4 КБ на вектор.
  • Высокая доступность: Для обеспечения надежности в производственных векторных базах данных используется репликация (обычно в 3 раза). Это позволяет сократить объем памяти, необходимый для индексации каждого вектора, до 12 КБ .

Хотя 12 КБ кажутся незначительным объемом данных, при переходе от небольшого экспериментального проекта к производственному приложению, обрабатывающему миллионы документов, требования к инфраструктуре резко возрастают:

  • 1 миллион векторов: ~12 ГБ оперативной памяти
  • 100 миллионов векторов: ~1,2 ТБ оперативной памяти

Если предположить, что стоимость облачного хранилища составляет около 5 долларов США за ГБ в месяц, то индекс из 100 миллионов векторов будет стоить примерно 6000 долларов США в месяц. Важно отметить, что это только для самих векторов. Фактическая структура данных индекса (например, HNSW) добавляет значительные накладные расходы на память для хранения иерархических связей графа, что делает реальную стоимость еще выше.

Для оптимизации хранения и, следовательно, минимизации затрат, существуют два основных метода:

  • Квантование
  • MRL (Matryoshka Representation Learning)

Квантование

Квантование — это метод уменьшения объема памяти (ОЗУ или диска), необходимого для хранения вектора, за счет снижения точности его базовых чисел. В то время как стандартная модель встраивания выдает высокоточные 32-битные числа с плавающей запятой (float32), хранение векторов с такой точностью обходится дорого, особенно для больших индексов. Снижение точности позволяет значительно сократить затраты на хранение.

В векторных базах данных используются три основных типа квантования:
Скалярное квантование — это наиболее распространенный тип, используемый в производственных системах. Он уменьшает точность числа вектора с float32 (4 байта) до int8 (1 байт), что обеспечивает до 4 раз меньшее потребление памяти при минимальном влиянии на качество извлечения данных. Кроме того, уменьшенная точность ускоряет вычисления расстояний при сравнении векторов, что также немного снижает задержку.

Бинарный квантование — это крайний случай уменьшения точности. Он преобразует числа типа float32 в один бит (например, 1, если число > 0, и 0, если <= 0). Это обеспечивает колоссальное 32-кратное сокращение объема памяти. Однако это часто приводит к резкому снижению качества поиска, поскольку такое бинарное представление не обеспечивает достаточной точности для описания сложных характеристик и, по сути, размывает их.

Квантование произведения — В отличие от скалярного и бинарного квантования, которые работают с отдельными числами, квантование произведения делит вектор на фрагменты, выполняет кластеризацию этих фрагментов для поиска «центроидов» и сохраняет только короткий идентификатор ближайшего центроида. Хотя квантование произведения может обеспечить чрезвычайно высокую степень сжатия, оно сильно зависит от распределения базового набора данных и вносит вычислительные затраты на аппроксимацию расстояний во время поиска.

Примечание: Поскольку результаты квантования произведения сильно зависят от набора данных, мы сосредоточим наши эмпирические эксперименты на скалярном и бинарном квантовании.

Обучение представлению в виде матрёшки (MRL)

Метод обучения представлению в виде матрёшки (MRL) подходит к проблеме хранения совершенно с другой стороны. Вместо уменьшения точности отдельных чисел внутри вектора, MRL уменьшает общую размерность самого вектора.

Модели встраивания, поддерживающие MRL, обучаются таким образом, чтобы наиболее важная семантическая информация размещалась в самых ранних измерениях вектора. Подобно русским матрешкам, в честь которых названа эта техника, меньшее, но высокоэффективное представление вкладывается в большее. Это уникальное обучение позволяет инженерам просто усечь (отрезать) хвостовую часть вектора, значительно уменьшив его размерность с минимальным снижением показателей поиска. Например, стандартный 1024-мерный вектор может быть аккуратно усечен до 256, 128 или даже 64 измерений, сохраняя при этом основное семантическое значение. В результате, только эта техника может уменьшить необходимый объем памяти до 16 раз (при переходе от 1024 к 64 измерениям), что напрямую приводит к снижению затрат на инфраструктуру.

Эксперимент

Примечание: Полный, воспроизводимый код для этого эксперимента доступен в репозитории GitHub.

Как MRL, так и квантизация — мощные методы для поиска оптимального баланса между показателями поиска и затратами на инфраструктуру, позволяющие поддерживать прибыльность функций продукта, одновременно обеспечивая высокое качество результатов для пользователей. Чтобы понять точные компромиссы этих методов — и увидеть, что происходит, когда мы расширяем границы их возможностей, комбинируя их, — мы провели эксперимент.

Вот архитектура нашей тестовой среды:

  • Векторная база данных: FAISS, в частности, с использованием индекса HNSW (Hierarchical Navigable Small World). HNSW — это алгоритм приближенного поиска ближайших соседей (ANN) на основе графов, широко используемый в векторных базах данных. Хотя он значительно ускоряет поиск, он вносит вычислительные и дисковые затраты для поддержания связей между векторами в графе, что делает оптимизацию больших индексов еще более важной.
  • Набор данных: Мы использовали набор данных mteb/hotpotQA (лицензия cc-by-sa-4.0) (доступен через Hugging Face). Это обширная коллекция пар «вопрос/ответ», что делает ее идеальной для измерения показателей поиска в реальных условиях.
  • Размер индекса: Чтобы обеспечить легкую воспроизводимость этого эксперимента, размер индекса был ограничен 100 000 документами. Исходная размерность встраивания составляет 384, что обеспечивает отличную базовую величину для демонстрации компромиссов различных подходов.
  • Модель встраивания: mixedbread-ai/mxbai-embed-xsmall-v1. Это высокоэффективная, компактная модель с встроенной поддержкой MRL, обеспечивающая отличный баланс между точностью и скоростью поиска.

Результаты оптимизации хранилища

ac04775192c2455560c4a29e9a9cedc7
Экономия памяти, достигаемая за счет уменьшения размерности и квантования по типу «матрёшка» (скалярное и бинарное) по сравнению со стандартным 384-мерным базовым алгоритмом Float32. Результаты демонстрируют, как эффективное сочетание обоих методов максимизирует сжатие индекса. Изображение предоставлено автором.

Для сравнения описанных выше подходов мы измерили объем памяти, необходимый для хранения данных, при различных размерностях и методах квантования.

Наш базовый показатель для индекса размером 100 тыс. ячеек (384-мерный, Float32) составлял 172,44 МБ . Сочетание обоих методов позволило добиться значительного сокращения:

Методы размерности/квантования «матрешки» Без квантования (f32) Скаляр (int8) Двоичное (1-битное)
384 (Оригинал) 172,44 МБ (ссылка) 62,58 МБ ( сэкономлено 63,7% ) 30,54 МБ ( сэкономлено 82,3% )
256 (MRL) 123,62 МБ (сэкономлено 28,3%) 50,38 МБ ( сэкономлено 70,8% ) 29,01 МБ ( сэкономлено 83,2% )
128 (MRL) 74,79 МБ (сэкономлено 56,6%) 38,17 МБ ( сэкономлено 77,9% ) 27,49 МБ ( сэкономлено 84,1% )
64 (MRL) 50,37 МБ (сэкономлено 70,8%) 32,06 МБ ( сэкономлено 81,4% ) 26,72 МБ ( сэкономлено 84,5% )
Таблица 1: Объем памяти, занимаемый 100-тысячным векторным индексом при различных размерностях типа «матрёшка» и уровнях квантования. Уменьшение объема памяти указано относительно базового 384-мерного формата Float32. Изображение предоставлено автором.

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

  • Квантование: Переход от Float32 к Scalar (Int8) с исходными 384 размерами мгновенно сокращает объем занимаемого места на 63,7% (с 172,44 МБ до 62,58 МБ) с минимальными усилиями.
  • MRL: Использование MRL для усечения векторов до 128 измерений — даже без квантования — обеспечивает существенное сокращение объема занимаемой памяти на 56,6%.
  • Совокупный эффект: Применение скалярного квантования к 128-мерному вектору MRL приводит к колоссальному снижению объема на 77,9% (индекс уменьшается до 38,17 МБ). Это означает почти 4,5-кратное увеличение плотности данных при практически нулевых архитектурных изменениях в системе в целом.

Компромисс в отношении точности: сколько мы теряем?

9a34e3fae00083809eff344c71555bf7
Анализ влияния квантования и размерности на качество хранения и поиска. Хотя бинарное квантование обеспечивает наименьший размер индекса, оно страдает от более резкого снижения показателей Recall@10 и MRR . Скалярное квантование представляет собой «золотую середину», сохраняя высокую точность поиска при значительной экономии места. Изображение предоставлено автором.

Оптимизация хранилища в конечном итоге представляет собой компромисс. Чтобы понять «стоимость» этих оптимизаций, мы оценили индекс из 100 000 документов, используя тестовый набор из 1000 запросов из набора данных HospotQA. Мы сосредоточились на двух основных метриках для системы поиска:

  • Recall@10: Измеряет способность системы включать релевантный документ в любую из 10 лучших результатов. Это критически важный показатель для конвейеров RAG, где LLM выступает в качестве окончательного арбитра.
  • Средний обратный ранг (MRR@10): Измеряет качество ранжирования, учитывая позицию релевантного документа. Более высокий MRR указывает на то, что «золотой» документ постоянно находится в самом верху результатов.
Измерение Тип Recall@10 MRR@10
384 Без квантования (f32) 0,481 0,367
Скаляр (int8) 0,474 0,357
Двоичное (1-битное) 0,391 0,291
256 Без квантования (f32) 0,467 0,362
Скаляр (int8) 0,459 0.350
Двоичное (1-битное) 0,359 0,253
128 Без квантования (f32) 0,415 0.308
Скаляр (int8) 0.410 0.303
Двоичное (1-битное) 0,242 0.150
64 Без квантования (f32) 0,296 0,199
Скаляр (int8) 0.300 0,205
Двоичное (1-битное) 0.102 0,054
Таблица 2: Влияние уменьшения размерности MRL на точность поиска при различных уровнях квантования. В то время как скалярный тип (int8) остается надежным, бинарный тип (1-бит) демонстрирует значительное снижение точности даже при полной размерности. Изображение предоставлено автором.

Как мы видим, разница между Scalar (int8) и No Quantization удивительно мала. При базовом значении в 384 измерения снижение показателя Recall составляет всего 1,46% (с 0,481 до 0,474), а показатель MRR остается практически неизменным, снизившись всего на 2,72% (с 0,367 до 0,357).

В отличие от этого, бинарное квантование (1-битное) представляет собой «резкий спад производительности». При базовом значении в 384 измерения бинарный поиск уже отстает от скалярного более чем на 17% по показателю полноты и на 18,4% по показателю MRR. По мере дальнейшего снижения размерности до 64 точность бинарного поиска падает до незначительного значения 0,102 по показателю полноты, в то время как скалярный поиск сохраняет значение 0,300, что делает его почти в 3 раза эффективнее.

Заключение

Хотя масштабирование векторной базы данных до миллиардов векторов становится все проще, при таком масштабе затраты на инфраструктуру быстро становятся серьезным узким местом. В этой статье я рассмотрел два основных метода снижения затрат — квантование и MRL — для количественной оценки потенциальной экономии и соответствующих компромиссов.

На основе эксперимента установлено, что хранение данных в формате Float32 практически не приносит пользы при использовании многомерных векторов. Как мы видели, применение скалярного квантования приводит к немедленному сокращению объема памяти на 63,7%. Это значительно снижает общие затраты на инфраструктуру при незначительном влиянии на качество поиска — снижение показателя Recall@10 составляет всего 1,46%, а MRR@10 — 2,72%, что демонстрирует, что скалярное квантование является самым простым и эффективным способом оптимизации инфраструктуры, который следует применять практически во всех сценариях использования RAG.

Другой подход заключается в сочетании MRL и квантования. Как показано в эксперименте, комбинация 256-мерного MRL со скалярным квантованием позволяет нам еще больше снизить затраты на инфраструктуру — на 70,8%. В нашем первоначальном примере с 100-миллионным 1024-мерным векторным индексом это может снизить затраты до 50 000 долларов в год, сохраняя при этом высокое качество результатов поиска (снижение показателя Recall@10 всего на 4,6% и MRR@10 на 4,4% по сравнению с базовым вариантом).

Наконец, бинарное квантование: как и ожидалось, оно обеспечивает наиболее значительное сокращение занимаемого пространства, но страдает от резкого падения показателей поиска. В результате гораздо выгоднее применять MRL плюс скалярное квантование для достижения сопоставимого сокращения занимаемого пространства с минимальным снижением точности. На основе эксперимента, использование меньшей размерности (128d) со скалярным квантованием — дающее сокращение занимаемого пространства на 77,9% — является гораздо более предпочтительным, чем использование бинарного квантования на несокращенном 384-мерном индексе, поскольку первый вариант демонстрирует значительно более высокое качество поиска.

Стратегия Сохранено хранилище Recall@10 Retention MRR@10 Удержание Идеальный вариант использования
384d + Скаляр (int8) 63,7% 98,5% 97,1% Критически важная задача RAG, где результат Top 1 должен быть абсолютно точным.
256d + Скаляр (int8) 70,8% 95,4% 95,6% Наилучшая окупаемость инвестиций: оптимальный баланс для крупномасштабных производственных приложений.
128d + Скаляр (int8) 77,9% 85,2% 82,5% Поиск с учетом стоимости или двухэтапный поиск (с переранжированием).
Таблица 3: Оптимизированные стратегии векторного поиска. Сравнение эффективности хранения и сохранения производительности (относительно базового значения 384 дня для формата Float32) для конфигураций, оказывающих существенное влияние на производство. Изображение предоставлено автором.

Общие рекомендации по применению в производственной среде:

  • Для сбалансированного решения используйте MRL + скалярное квантование . Это обеспечивает значительное сокращение объема оперативной памяти и дискового пространства при сохранении высокого качества результатов поиска.
  • Бинарное квантование следует строго использовать в экстремальных ситуациях, когда сокращение объема оперативной памяти/дискового пространства имеет решающее значение, а возникающее при этом низкое качество поиска можно компенсировать увеличением параметра top_k и применением кросс-кодировщика для переранжирования результатов.

Ссылки

[1] Полный код эксперимента : https://github.com/otereshin/matryoshka-quantization-analysis
[2] Модель https://huggingface.co/mixedbread-ai/mxbai-embed-xsmall-v1
[3] Набор данных mteb/hotpotqa https://huggingface.co/datasets/mteb/hotpotqa
[4] FAISS https://ai.meta.com/tools/faiss/
[5] Обучение представлению «матрешки» (MRL): Кусупати, А., Бхатт, Г., Реге, А., Уоллингфорд, М., Синха, А., Рамануджан, В., … и Фархади, А. (2022). Обучение представлению «матрешки».

Олег Терешин Посмотреть все от Олега Терешина

Источник: towardsdatascience.com

✅ Найденные теги: Затраты, Квантование, Масштабируемость, Матрешковые Вложения, новости, Поиск

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

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

галерея

Вид сверху на реактор ядерной электростанции с водой внутри.
Человек работает за ноутбуком в офисе, вокруг документы и смартфон. Вид на город.
След метеорита на ночном небе над поселком с деревьями и зданиями.
Чёрная беспроводная мышь на темном фоне, вид сбоку, минималистичный дизайн.
Человек держит сферический светильник в руке на фоне синих стен.
Четыре цветные плитки на светлом полу: красная, зелёная, синяя и серая.
Человек на единороге выезжает из смартфона в облака, концепция цифровой фантазии.
ideipro logotyp
Фрагментация электронных медицинских карт открывает возможности для улучшения координации медицинской помощи и повышения качества обслуживания пациентов.
Image Not Found
Чёрная беспроводная мышь на темном фоне, вид сбоку, минималистичный дизайн.

Phase: гибрид мыши и игрового контроллера

Компания Pixelpaw Labs представила необычную компьютерную мышь Phase, которая может превращаться в игровой джойстик. Разработчики отказались от классического колесика прокрутки — вместо него на левой кнопке расположена ёмкостная сенсорная полоса, которая выполняет ту же функцию при касании…

Мар 18, 2026
Человек держит сферический светильник в руке на фоне синих стен.

Дорожный радар EyeDAR для беспилотных автомобилей

Исследователи из Университета Райса разработали новую систему радарного наблюдения EyeDAR, которая может повысить безопасность автономных автомобилей.  В беспилотных транспортных средствах окружающая обстановка обычно анализируется с помощью трёх типов сенсоров: камер, лидаров и радаров. Камеры распознают объекты и…

Мар 18, 2026
Четыре цветные плитки на светлом полу: красная, зелёная, синяя и серая.

Строительные материалы из пластика могут стать частью экономики замкнутого цикла.

© СПбГУПТД Российские ученые предложили использовать переработанный пластик для создания прочных строительных материалов. Ученые во всем мире ищут новые пути вторичного использования пластика. Одно из таких направлений — создание искусственного полимерного камня в качестве альтернативы натуральным материалам.…

Мар 18, 2026
Человек на единороге выезжает из смартфона в облака, концепция цифровой фантазии.

Еще один стартап, занимающийся разработкой высокотехнологичных чипов, стал «единорогом»: компания Frore достигла отметки в 1,64 миллиарда долларов.

Вкратце Источник изображения: Rudall30 / Getty Images Восьмилетний стартап Frore Systems, занимающийся разработкой полупроводников, привлек 143 миллиона долларов в рамках раунда финансирования серии D, возглавляемого MVP Ventures, при оценке компании в 1,64 миллиарда долларов, сообщила компания в…

Мар 18, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых