Поделиться через


Что такое векторные внедрения и векторный поиск в Кэш Azure для Redis

Поиск сходства векторов (VSS) стал популярной технологией для интеллектуального приложения, на основе искусственного интеллекта. Кэш Azure для Redis можно использовать в качестве векторной базы данных путем объединения моделей, таких как Azure OpenAI для сценариев получения дополненного искусственного интеллекта и анализа. В этой статье представлено высокоуровневое введение в концепцию внедрения векторов, поиск по сходства векторов и использование Redis в качестве векторной базы данных с интеллектуальными приложениями.

Руководства и примеры приложений по использованию Кэш Azure для Redis и Azure OpenAI для выполнения поиска сходства векторов см. в следующих статьях:

Область доступности

Для возможностей поиска векторов в Redis требуется стек Redis, в частности модуль RediSearch . Эта возможность доступна только на уровнях Enterprise Кэш Azure для Redis.

Эта таблица содержит сведения о доступности векторного поиска на разных уровнях.

Уровень Базовый или стандартный Premium Функции корпоративного уровня Enterprise Flash
На месте No No Да Да (предварительная версия)

Что такое векторные внедрения?

Концепция

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

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

Сравнение векторов

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

Создание внедрения

Многие модели машинного обучения поддерживают api внедрения. Пример создания векторных внедрений с помощью Службы OpenAI Azure см. в статье Создание внедрения с помощью Azure OpenAI.

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

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

Метод индексирования и поиска

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

Существует несколько методов индексирования, таких как:

  • FLAT — индекс подбора
  • HNSW — эффективный и надежный приблизительный поиск ближайших соседей с помощью иерархических навигации по графам Small World

Существует несколько распространенных методов поиска, в том числе:

  • K-Ближайшие соседи (KNN) — исчерпывающий метод, который обеспечивает большую точность, но с более высокой вычислительной стоимостью.
  • Приблизительные ближайшие соседи (ANN) — более эффективная торговая точность для повышения скорости и снижения затрат на обработку.

возможности поиска.

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

Сценарии ключей поиска в векторов

Поиск сходства векторов можно использовать в нескольких приложениях. Ниже приведены некоторые распространенные варианты использования:

  • Семантическое Q&A. Создайте чат-бот, который может отвечать на вопросы о собственных данных. Например, чат-бот, который может отвечать на вопросы сотрудников по их медицинскому охвату. Сотни страниц плотной документации по охвату здравоохранения можно разделить на блоки, преобразовать в векторы внедрения и искать на основе сходства векторов. Затем полученные документы можно свести в сводку для сотрудников с помощью другой крупной языковой модели (LLM). Пример семантического Q&A
  • Извлечение документов. Используйте более глубокое семантические представления о тексте, предоставленном LLMs, чтобы обеспечить более широкий интерфейс поиска документов, где традиционный поиск на основе ключевое слово сокращается. Пример извлечения документов
  • Рекомендация по продукту. Найдите аналогичные продукты или службы, чтобы рекомендовать на основе прошлых действий пользователей, таких как журнал поиска или предыдущие покупки. Пример рекомендации по продукту
  • Визуальный поиск. Найдите продукты, похожие на изображение, сделанные пользователем или изображением другого продукта. Пример визуального поиска
  • Семантическое кэширование. Уменьшите затраты и задержку LLM путем кэширования завершения LLM. Запросы LLM сравниваются с помощью сходства векторов. Если новый запрос достаточно похож на ранее кэшированный запрос, возвращается кэшированный запрос. Пример семантического кэширования с помощью LangChain
  • Память беседы LLM. Сохраняйте журнал бесед с помощью LLM в качестве внедрения в векторной базы данных. Приложение может использовать векторный поиск для извлечения соответствующей истории или "воспоминания" в ответ от LLM. Пример памяти беседЫ LLM

Зачем выбирать Кэш Azure для Redis для хранения и поиска векторов?

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

Эти платформы предоставляют широкие возможности интеграции с Redis. Например, интеграция Redis LangChain автоматически создает схему индекса для метаданных, передаваемых при использовании Redis в качестве векторного хранилища. Это упрощает фильтрацию результатов на основе метаданных.

Redis имеет широкий спектр возможностей поиска через модуль RediSearch, который доступен на уровне Enterprise Кэш Azure для Redis. Например:

  • Несколько метрик расстояния, включая Euclidean, Cosineи Internal Product.
  • Поддержка методов индексирования KNN (с помощью FLAT) и ANN (с помощью HNSW).
  • Хранилище векторов в структурах хэш-данных или JSON
  • Запросы top K
  • Запросы диапазона векторов (т. е. поиск всех элементов в пределах определенного векторного расстояния)
  • Гибридный поиск с мощными функциями запросов, такими как:
    • Геопространственный фильтр
    • Числовые и текстовые фильтры
    • Префикс и нечеткое сопоставление
    • Телефон сопоставление
    • Логические запросы

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

Каковы другие варианты хранения и поиска векторов?

Существует несколько других решений в Azure для хранения векторов и поиска. К другим решениям относятся:

Лучший способ приступить к внедрению и векторному поиску — попробовать самостоятельно!