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


Краткое руководство. Векторизация текста и изображений с помощью портал Azure

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

Ключевые моменты мастера:

  • Поддерживаемые источники данных : Хранилище BLOB-объектов Azure, Azure Data Lake Storage (ADLS) 2-го поколения или файлы OneLake и сочетания клавиш.

  • Поддерживаемые модели внедрения размещаются в Azure OpenAI, каталоге моделей Azure AI Studio, мультимодальном режиме Azure AI Vision.

  • Схема индекса предоставляет векторные и невекторные поля для фрагментированных данных.

  • Можно добавить поля, но не удается удалить или изменить созданные поля.

  • Режим синтаксического анализа документов создает блоки (один документ поиска на блок).

  • Блокирование не настраивается. Эффективные параметры:

    "textSplitMode": "pages",
    "maximumPageLength": 2000,
    "pageOverlapLength": 500,
    "maximumPagesToTake": 0, #unlimited
    "unit": "characters",
    

Необходимые компоненты

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

Ресурсы Службы OpenAI Azure (с доступом к моделям внедрения), созданным в AI Studio, не поддерживаются. Только ресурсы службы Azure OpenAI, созданные в портал Azure, совместимы с интеграцией навыков внедрения Azure OpenAI.

Требования к общедоступной конечной точке

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

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

Требования к управлению доступом на основе ролей

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

  1. В службе "Поиск ИИ Azure" включите роли.

  2. Настройте службу поиска для использования управляемого удостоверения.

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

Бесплатная служба поиска поддерживает RBAC для подключений к поиску ИИ Azure, но не поддерживает управляемые удостоверения для исходящих подключений к служба хранилища Azure или Azure AI Vision. Этот уровень поддержки означает, что необходимо использовать проверку подлинности на основе ключей для подключений между бесплатной службой поиска и другими службами Azure.

Для более безопасных подключений:

Примечание.

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

Проверка доступного пространства

Если вы начинаете работу с бесплатной службой, вы ограничены тремя индексами, источниками данных, наборами навыков и индексаторами. Базовые ограничения— 15. Перед началом работы убедитесь, что у вас достаточно места для дополнительных элементов. В этом кратком руководстве создается один из каждого объекта.

Проверка семантического ранжирования

Мастер поддерживает семантический рейтинг, но только на уровне "Базовый" и выше, и только если семантический рангировщик уже включен в службе поиска. Если вы используете оплачиваемый уровень, проверьте, включен ли семантический рангер.

Подготовка примера данных

В этом разделе приведены данные, которые работают в этом кратком руководстве.

  1. Войдите в портал Azure с помощью учетной записи Azure и перейдите к учетной записи служба хранилища Azure.

  2. На левой панели в разделе "Хранилище данных" выберите "Контейнеры".

  3. Создайте контейнер и отправьте документы PDF плана работоспособности, используемые для этого краткого руководства.

  4. На левой панели в разделе "Управление доступом" назначьте роль средства чтения данных BLOB-объектов хранилища удостоверения службы поиска. Или получите строка подключения учетной записи хранения на странице ключей доступа.

  5. При необходимости синхронизируйте удаления в контейнере с удалениями в индексе поиска. Следующие действия позволяют настроить индексатор для обнаружения удаления:

    1. Включите обратимое удаление в учетной записи хранения.

    2. Если вы используете собственное обратимое удаление, дальнейшие шаги не требуются для служба хранилища Azure.

    3. В противном случае добавьте пользовательские метаданные, которые индексатор может сканировать, чтобы определить, какие большие двоичные объекты помечены для удаления. Присвойте пользовательскому свойству описательное имя. Например, можно присвоить свойству IsDeleted значение false. Сделайте это для каждого большого двоичного объекта в контейнере. Позже, когда вы хотите удалить большой двоичный объект, измените свойство на true. Дополнительные сведения см. в статье Об изменении и удалении обнаружения при индексировании из служба хранилища Azure

Настройка моделей внедрения

Мастер может использовать модели внедрения, развернутые из Azure OpenAI, Azure AI Vision или из каталога моделей в Azure AI Studio.

Мастер поддерживает text-embedding-ada-002, text-embedding-3-large и text-embedding-3-small. Внутри этого мастера вызывается навык azureOpenAIEmbedding для подключения к Azure OpenAI.

  1. Войдите в портал Azure с помощью учетной записи Azure и перейдите к ресурсу Azure OpenAI.

  2. Настройка разрешений:

    1. В меню слева выберите элемент управления доступом.

    2. Выберите Добавить, затем выберите Добавить назначение ролей.

    3. В разделе "Роли функции задания" выберите "Пользователь OpenAI" Cognitive Services и нажмите кнопку "Далее".

    4. В разделе "Участники" выберите управляемое удостоверение и выберите "Участники".

    5. Фильтруйте по подписке и типу ресурсов (службам поиска), а затем выберите управляемое удостоверение службы поиска.

    6. Выберите Проверить + назначить.

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

  4. В разделе "Управление ресурсами" и "Модели" выберите "Управление развертываниями", чтобы открыть Azure AI Studio.

  5. Скопируйте имя text-embedding-ada-002 развертывания или другую поддерживаемую модель внедрения. Если у вас нет модели внедрения, разверните ее.

Запуск мастера

  1. Войдите в портал Azure с помощью учетной записи Azure и перейдите к служба Azure AI.

  2. На странице "Обзор" выберите "Импорт и векторизация данных".

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

Подключение к данным

Следующим шагом является подключение к источнику данных для использования для индекса поиска.

  1. На странице "Настройка подключения к данным" выберите Хранилище BLOB-объектов Azure.

  2. Укажите подписку Azure.

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

  4. Укажите, требуется ли поддержка обнаружения удаления . При последующих выполнении индексирования индексирование обновляется, чтобы удалить все документы поиска на основе обратимо удаленных больших двоичных объектов на служба хранилища Azure.

    • Большие двоичные объекты поддерживают обратимое удаление или обратимое удаление больших двоичных объектов с помощью пользовательских данных.
    • Необходимо включить обратимое удаление в служба хранилища Azure и дополнительно добавить пользовательские метаданные, которые индексирование может распознать как флаг удаления. Дополнительные сведения об этих шагах см. в разделе "Подготовка примеров данных".
    • Если вы настроили большие двоичные объекты для обратимого удаления с помощью пользовательских данных, укажите пару свойств метаданных name-value на этом шаге. Рекомендуется использовать IsDeleted. Если параметр IsDeleted имеет значение true для большого двоичного объекта, индексатор удаляет соответствующий документ поиска при следующем запуске индексатора.

    Мастер не проверяет служба хранилища Azure допустимых параметров или выдает ошибку, если требования не выполнены. Вместо этого обнаружение удаления не работает, и индекс поиска, скорее всего, собирает потерянные документы со временем.

    Снимок экрана: страница источника данных с параметрами обнаружения удаления.

  5. Укажите, должна ли служба поиска подключаться к служба хранилища Azure с помощью управляемого удостоверения.

    • Вам будет предложено выбрать управляемое системой или управляемое пользователем удостоверение.
    • Удостоверение должно иметь роль чтения данных BLOB-объектов хранилища в служба хранилища Azure.
    • Не пропускайте этот шаг. Ошибка подключения возникает во время индексирования, если мастер не может подключиться к служба хранилища Azure.
  6. Выберите Далее.

Векторизация текста

На этом шаге укажите модель внедрения для векторизации векторных данных.

  1. На текстовой странице векторизации выберите источник модели внедрения:

    • Azure OpenAI
    • Каталог моделей Azure AI Studio
    • Существующий многомодальный ресурс Azure AI Vision в том же регионе, что и поиск ИИ Azure. Если в одном регионе нет учетной записи служб ИИ Azure, этот параметр недоступен.
  2. Выберите подписку Azure.

  3. Сделайте выбор в соответствии с ресурсом:

    • Для Azure OpenAI выберите существующее развертывание text-embedding-ada-002, text-embedding-3-large или text-embedding-3-small.

    • Для каталога AI Studio выберите существующее развертывание модели внедрения Azure, Cohere и Facebook.

    • Для многомодальных внедрения ai Vision выберите учетную запись.

    Дополнительные сведения см. в разделе "Настройка моделей внедрения" ранее в этой статье.

  4. Укажите, должна ли служба поиска проходить проверку подлинности с помощью ключа API или управляемого удостоверения.

    • Удостоверение должно иметь роль пользователя OpenAI в Azure AI с несколькими службами.
  5. Установите флажок, который подтверждает влияние выставления счетов на использование этих ресурсов.

  6. Выберите Далее.

Векторизация и обогащение изображений

Если содержимое содержит изображения, можно применить ИИ двумя способами:

  • Используйте поддерживаемую модель внедрения изображений из каталога или выберите API многомодальных внедрения azure AI Vision для векторизации изображений.

  • Используйте оптическое распознавание символов (OCR) для распознавания текста в изображениях. Этот параметр вызывает навык OCR для чтения текста из изображений.

Поиск ИИ Azure и ресурс ИИ Azure должны находиться в одном регионе.

  1. На странице векторизации изображений укажите тип подключения, который должен сделать мастер. Для векторизации изображений мастер может подключаться к внедренным моделям в Azure AI Studio или Azure AI Vision.

  2. Укажите подписку.

  3. В каталоге моделей Azure AI Studio укажите проект и развертывание. Дополнительные сведения см. в разделе "Настройка моделей внедрения" ранее в этой статье.

  4. При необходимости можно взломать двоичные изображения (например, сканированные файлы документов) и использовать OCR для распознавания текста.

  5. Установите флажок, который подтверждает влияние выставления счетов на использование этих ресурсов.

  6. Выберите Далее.

Добавление семантического ранжирования

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

Сопоставление новых полей

На странице "Дополнительные параметры" можно добавить новые поля. По умолчанию мастер создает следующие поля с этими атрибутами:

Поле Относится к Description
chunk_id Векторы текста и изображения Созданное строковое поле. Доступный для поиска, извлекаемый, сортируемый. Это ключ документа для индекса.
parent_id Текстовые векторы Созданное строковое поле. Извлекаемая, фильтруемая. Определяет родительский документ, из которого создается блок.
chunk Векторы текста и изображения Строковое поле. Удобочитаемая версия блока данных. Доступный для поиска и получения, но не фильтруемый, фасетный или сортируемый.
title Векторы текста и изображения Строковое поле. Заголовок документа, доступный для чтения, или номер страницы. Доступный для поиска и получения, но не фильтруемый, фасетный или сортируемый.
text_vector Текстовые векторы Collection(Edm.single). Векторный представление блока. Доступный для поиска и получения, но не фильтруемый, фасетный или сортируемый.

Вы не можете изменить созданные поля или их атрибуты, но можно добавить новые поля, если источник данных предоставляет их. Например, Хранилище BLOB-объектов Azure предоставляет коллекцию полей метаданных.

  1. Выберите Добавить.

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

    Поля метаданных доступны для поиска, но не могут извлекаться, фильтруемые, фасетные или сортируемые.

  3. Выберите "Сброс" , если вы хотите восстановить схему до исходной версии.

Планирование индексирования

На странице "Дополнительные параметры" можно дополнительно указать расписание выполнения индексатора.

  1. Нажмите кнопку "Далее", когда вы закончите работу со страницей "Дополнительные параметры ".

Завершение работы мастера

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

  2. Нажмите кнопку создания.

Когда мастер завершит настройку, он создает следующие объекты:

  • Подключение к источнику данных.

  • Индекс с полями векторов, векторизаторами, профилями векторов и алгоритмами векторов. Невозможно разработать или изменить индекс по умолчанию во время рабочего процесса мастера. Индексы соответствуют REST API 2024-05-01-preview.

  • Набор навыков с навыком разделения текста для фрагментирования и внедрения навыка для векторизации. Навык внедрения — это навык AzureOpenAIEmbeddingModel для Azure OpenAI или навык AML для каталога моделей Azure AI Studio. Набор навыков также имеет конфигурацию проекций индекса, которая позволяет сопоставлять данные из одного документа в источнике данных с соответствующими блоками в дочернем индексе.

  • Индексатор с сопоставлениями полей и сопоставлениями выходных полей (если применимо).

Проверка результатов

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

  1. В портал Azure перейдите к индексам управления>поиском и выберите созданный индекс.

  2. При необходимости выберите параметры запроса и скрыть векторные значения в результатах поиска. Этот шаг упрощает чтение результатов поиска.

    Снимок экрана: кнопка для параметров запроса.

  3. В меню "Вид" выберите представление JSON, чтобы ввести текст для векторного запроса в параметре векторного text запроса.

    Снимок экрана: команда меню для открытия представления JSON.

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

    {
       "select": "chunk_id,parent_id,chunk,title",
       "vectorQueries": [
           {
              "kind": "text",
              "text": "*",
              "k": 5,
              "fields": "vector"
           }
        ]
    }
    
  4. text Для значения замените звездочку (*) вопросом, связанным с планами здравоохранения, напримерWhich plan has the lowest deductible?.

  5. Выберите "Поиск", чтобы запустить запрос.

    Снимок экрана: результаты поиска.

    Должно появиться пять совпадений. Каждый документ является фрагментом исходного PDF-файла. В title поле показано, откуда поступает блок PDF.

  6. Чтобы просмотреть все фрагменты из определенного документа, добавьте фильтр для поля для title определенного PDF-файла:

    {
       "select": "chunk_id,parent_id,chunk,title",
       "filter": "title eq 'Benefit_Options.pdf'",
       "count": true,
       "vectorQueries": [
           {
              "kind": "text",
              "text": "*",
              "k": 5,
              "fields": "vector"
           }
        ]
    }
    
    

Очистка

Поиск по искусственному интеллекту Azure — это оплачиваемый ресурс. Если она больше не нужна, удалите ее из подписки, чтобы избежать расходов.

Следующий шаг

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