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


Векторный поиск в поиске ИИ Azure

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

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

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

Подсказка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Способ получения эмбеддингов из исходного контента для использования в Azure AI Search зависит от вашего подхода к обработке:

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

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

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

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

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

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

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

Примечание.

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

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

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

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

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