товары

Что такое векторные базы данных, как они работают и потенциальный рынок

Векторная база данных — это тип базы данных, в которой данные хранятся в виде многомерных векторов, представляющих собой математические представления объектов или атрибутов. 

Эти векторы обычно генерируются путем применения какой-либо функции встраивания к необработанным данным, таким как текст, изображения, аудио, видео и другие.

Векторные базы данных могут быть definite как инструмент, который индексирует и сохраняет векторные встраивания для быстрого поиска и поиска сходства, с такими функциями, как фильтрация метаданных и горизонтальное масштабирование.

Примерное время чтения: 9 Minuti

Растущий интерес инвесторов

В последние недели наблюдается рост интереса инвесторов к векторным базам данных. С начала 2023 года мы заметили, что:

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

Векторы как представление данных

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

Векторные встраивания

Векторные встраивания похожи на карту, но вместо того, чтобы показывать нам, где что находится в мире, они показывают нам, где что находится в чем-то, что называется векторное пространство. Векторное пространство — это своего рода большая игровая площадка, где всему есть свое место. Представьте, что у вас есть группа животных: кошка, собака, птица и рыба. Мы можем создать векторное встраивание для каждого изображения, задав ему особое положение на игровой площадке. Кошка может быть в одном углу, собака в другом. Птица могла быть в небе, а рыба могла быть в пруду. Это место представляет собой многомерное пространство. Каждое измерение соответствует различным их аспектам, например, у рыб есть плавники, у птиц есть крылья, у кошек и собак есть ноги. Другим их аспектом может быть то, что рыбы принадлежат воде, птицы — преимущественно небу, а кошки и собаки — земле. Когда у нас есть эти векторы, мы можем использовать математические методы, чтобы сгруппировать их на основе их сходства. На основании имеющейся у нас информации,

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

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

Векторные базы данных и векторные библиотеки

Векторные библиотеки хранить вложения векторов в индексы в памяти, чтобы выполнять поиск сходства. Векторные библиотеки имеют следующие характеристики/ограничения:

  1. Хранить только векторы : Векторные библиотеки хранят только вложения векторов, а не связанные объекты, из которых они были созданы. Это означает, что при запросе векторная библиотека ответит соответствующими векторами и идентификаторами объектов. Это ограничение, поскольку фактическая информация хранится в объекте, а не в идентификаторе. Чтобы решить эту проблему, мы должны хранить объекты во вторичном хранилище. Затем мы можем использовать идентификаторы, возвращенные запросом, и сопоставлять их с объектами, чтобы понять результаты.
  2. Данные индекса неизменны : Индексы, создаваемые векторными библиотеками, неизменяемы. Это означает, что после того, как мы импортировали наши данные и построили индекс, мы не можем вносить какие-либо изменения (новые вставки, удаления или изменения). Чтобы внести изменения в наш индекс, нам придется перестроить его с нуля.
  3. Запрос при ограничении импорта : Большинство векторных библиотек нельзя запрашивать при импорте данных. Сначала нам нужно импортировать все наши объекты данных. Таким образом, индекс создается после импорта объектов. Это может быть проблемой для приложений, которые требуют импорта миллионов или даже миллиардов объектов.

Доступно множество библиотек векторного поиска: FAISS из Facebook, раздражать от Spotify и СканНН от Google. FAISS использует метод кластеризации, Annoy использует деревья, а ScanNN использует векторное сжатие. Для каждого из них существует компромисс производительности, который мы можем выбрать на основе нашего приложения и показателей производительности.

CRUD

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

  1. Архивные векторы и объекты : Базы данных могут хранить как объекты данных, так и векторы. Поскольку оба они сохраняются, мы можем комбинировать векторный поиск со структурированными фильтрами. Фильтры позволяют нам убедиться, что ближайшие соседи соответствуют фильтру метаданных.
  2. Изменчивость : так как векторные базы данных полностью поддерживают дрянь, мы можем легко добавлять, удалять или обновлять записи в нашем индексе после его создания. Это особенно полезно при работе с постоянно меняющимися данными.
  3. Поиск в реальном времени : в отличие от векторных библиотек, базы данных позволяют нам запрашивать и изменять наши данные в процессе импорта. Поскольку мы загружаем миллионы объектов, импортированные данные остаются полностью доступными и работоспособными, поэтому вам не нужно ждать завершения импорта, чтобы начать работать с тем, что уже есть.

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

Но что делает векторные базы данных лучше традиционных баз данных?

Векторные базы данных против традиционных баз данных

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

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

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

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

Теперь, когда вы так много читали о векторных базах данных, вам может быть интересно, как они работают? Давайте взглянем.

Как работает база данных векторов?

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

В традиционных базах данных мы обычно запрашиваем строки в базе данных, где значение обычно точно соответствует нашему запросу. В векторных базах данных мы применяем метрику подобия, чтобы найти вектор, наиболее похожий на наш запрос.

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

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

  • Индексация : База данных векторов индексирует векторы с использованием таких алгоритмов, как PQ, LSH или HNSW. На этом шаге векторы связываются со структурой данных, что позволяет ускорить поиск.
  • запрос : база данных векторов сравнивает индексированный вектор запроса с индексированными векторами в наборе данных, чтобы найти ближайших соседей (применяя метрику сходства, используемую этим индексом).
  • Постобработка : в некоторых случаях база данных векторов выбирает окончательных ближайших соседей из набора данных и выполняет их постобработку, чтобы вернуть окончательные результаты. Этот шаг может включать в себя повторную классификацию ближайших соседей с использованием другой меры сходства.

льготы

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

Ercole Palmeri

Инновационный бюллетень
Не пропустите самые важные новости об инновациях. Зарегистрируйтесь, чтобы получать их по электронной почте.

АРТИКОЛИ recenti

Преимущества раскрасок для детей — мир волшебства для всех возрастов

Развитие мелкой моторики посредством раскрашивания готовит детей к более сложным навыкам, таким как письмо. Раскрасить…

2 мая 2024

Будущее уже здесь: как судоходная отрасль меняет мировую экономику

Военно-морской сектор является настоящей глобальной экономической державой, которая достигла 150-миллиардного рынка...

1 мая 2024

Издатели и OpenAI подписывают соглашения, регулирующие поток информации, обрабатываемой искусственным интеллектом.

В прошлый понедельник Financial Times объявила о сделке с OpenAI. FT лицензирует свою журналистику мирового уровня…

Апрель 30 2024

Онлайн-платежи: вот как потоковые сервисы заставляют вас платить вечно

Миллионы людей платят за стриминговые сервисы, выплачивая ежемесячную абонентскую плату. Распространено мнение, что вы…

Апрель 29 2024

Читайте «Инновации» на вашем языке

Инновационный бюллетень
Не пропустите самые важные новости об инновациях. Зарегистрируйтесь, чтобы получать их по электронной почте.

Следуйте за нами