Векторный поиск в Поиск с использованием ИИ Azure

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

  • Семантическое или концептуальное сходство. Например, "собака" и "кейн" концептуально похожи, но лингвистически отличаются.
  • Многоязычное содержимое, например "собака" на английском языке и "hund" на немецком языке.
  • Несколько типов контента, таких как "собака" в виде обычного текста и изображение собаки.

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

Совет

Хотите начать сразу? Выполните следующие действия.

  1. Предоставьте эмбеддинги для индекса или создайте эмбеддинги в пайплайне индексатора.
  2. Создайте векторный индекс.
  3. Выполнение векторных запросов.

Какие сценарии могут поддерживать векторный поиск?

Векторный поиск поддерживает следующие сценарии:

  • Поиск сходства. Кодируйте текст с помощью моделей эмбеддингов или моделей с открытым исходным кодом, таких как эмбеддинги OpenAI или SBERT соответственно. Затем вы извлекаете документы с помощью запросов, которые также кодируются как векторы.

  • Гибридный поиск. Поиск с использованием ИИ Azure определяет гибридный поиск как выполнение векторного поиска и keyword search в том же запросе. Поддержка векторов реализуется на уровне поля. Если индекс содержит векторные и невекторные поля, можно написать запрос, предназначенный для обоих. Запросы выполняются параллельно, и результаты объединяются в один ответ и ранжируются соответствующим образом.

  • Многомодальный поиск. Кодируйте текст и изображения с помощью мультимодальных встраиваний, таких как OpenAI CLIP или GPT-4 Turbo с Vision в Azure OpenAI, а затем выполняйте запрос в векторном пространстве, состоящем из обоих типов контента.

  • Многоязычный поиск. Поиск с использованием ИИ Azure предназначен для расширения. Если вы внедряете модели и модели чата, обученные на нескольких языках, можно вызывать их с помощью пользовательских или встроенных навыков на стороне индексирования или векторизаторов на стороне запроса. Для более подробного контроля над переводом текста используйте многоязычные возможности, поддерживаемые Поиск с использованием ИИ Azure, для не векторного содержимого в сценариях гибридного поиска.

  • Отфильтрованный векторный поиск. Запрос может включать векторный запрос и выражение фильтра. Фильтры применяются к текстовым и числовым полям. Они полезны для фильтров метаданных и для включения или исключения результатов поиска на основе критериев фильтрации. Хотя поле вектора не фильтруется, можно настроить фильтруемый текст или числовое поле. Поисковая система может обрабатывать фильтр до или после выполнения векторного запроса.

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

Как работает векторный поиск?

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

Архитектура рабочего процесса поиска векторов.

На стороне индексирования Поиск с использованием ИИ Azure используется алгоритм ближайших соседей для размещения похожих векторов поблизости друг от друга в индексе. Внутри него создаются векторные индексы для каждого поля вектора.

Способ встраивания эмбеддингов из вашего исходного содержимого в Поиск с использованием ИИ Azure зависит от вашего подхода к обработке:

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

  • Для внешней обработки можно generate embeddings за пределами Поиск с использованием ИИ Azure и отправить превекторное содержимое непосредственно в поля vector в индексе поиска.

На стороне запроса клиентское приложение собирает входные данные пользователя, как правило, с помощью запроса. Вы можете добавить шаг кодирования для векторизации входных данных, а затем отправить векторный запрос в индекс Поиск с использованием ИИ Azure для поиска сходства. Как и при индексировании, можно использовать встроенную векторизацию для кодирования запроса. Для любого подхода Поиск с использованием ИИ Azure возвращает документы с запрошенными k ближайшими соседями (kNN) в результатах.

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

Доступность и цены

Поиск векторов доступен во всех регионах и на всех уровнях без дополнительной платы. Однако создание эмбеддингов или использование ИИ для обогащения векторизации может облагаться платой со стороны поставщика моделей.

Для портала и программного доступа к векторному поиску можно использовать:

Примечание

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

  • Службы поиска, созданные после 3 апреля 2024 г., предлагают более высокие квоты для векторных индексов. Если у вас более старая услуга, возможно, вы сможете обновить её для увеличения квот на векторы.

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

Продукт Интеграция
Azure OpenAI Azure OpenAI предоставляет модели внедрения и модели чата. Демонстрации и примеры предназначены для модели text-embedding-ada-002 . Мы рекомендуем Azure OpenAI для создания эмбеддингов для текста.
Инструменты литейного производства API векторизации и извлечения изображений поддерживает векторизацию содержимого изображения. Мы рекомендуем использовать этот API для генерации эмбеддингов для изображений.
Служба агента Foundry В Поиск с использованием ИИ Azure вы можете создать индексированный источник знаний, который ссылается на индекс поиска, содержащий векторные поля и векторизатор. Затем вы можете привязать источник знаний к базе знаний и подключить базу знаний к службе агентских Foundry, предоставляя вашим агентам результаты векторного поиска для расширенного получения знаний.
платформы данных Azure: Хранилище BLOB-объектов Azure, Azure Cosmos DB, Azure SQL, Microsoft OneLake Индексаторы можно использовать для автоматизации приема данных, а затем использовать встроенную векторизацию для создания внедрения. Поиск с использованием ИИ Azure может автоматически индексировать векторные данные из индексаторов Blob-объектов Azure, Azure Cosmos DB для NoSQL, Azure Data Lake Storage 2-го поколения, Azure Table Storage и Microsoft OneLake. Дополнительные сведения см. в разделе "Добавление векторных полей" в индекс поиска.

Он также часто используется в платформах с открытым исходным кодом, таких как LangChain.