Azure навык внедрения OpenAI

Навык Azure OpenAI Embedding подключается к модели вложения, развернутой в вашем проекте Azure OpenAI in Foundry Models или Microsoft Foundry для генерации эмбеддингов во время индексации. Данные обрабатываются в географическом расположении, где развернута модель.

Мастер Import data<> в портале Azure использует навык Azure OpenAI Embedding для векторизации контента. Вы можете запустить мастера и просмотреть сгенерированный набор навыков, чтобы увидеть, как мастер строит навык для встраивания моделей.

Note

Этот навык обязательно Azure OpenAI и оценивается по Azure OpenAI Standard цены.

Необходимые условия

  • Ресурс OpenAI Azure OpenAI в ресурсе Foundry Models или Foundry project.

    • Ресурс OpenAI Azure должен иметь поддомен custom, например https://<resource-name>.openai.azure.com. Эту конечную точку можно найти на странице Keys and Endpoint на портале Azure и использовать его для свойства resourceUri в этом навыке.

    • Родительский ресурс проекта Foundry предоставляет доступ к нескольким конечным точкам, включая https://<resource-name>.openai.azure.com, https://<resource-name>.services.ai.azure.comи https://<resource-name>.cognitiveservices.azure.com. Эти конечные точки можно найти на странице Keys и Endpoint на портале Azure и использовать их для свойства resourceUri в этом навыке.

  • Модель встраивания Azure OpenAI, развернутая на вашем ресурсе или проекте. Для поддерживаемых моделей см. раздел «Параметры навыка ».

@odata.type

Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill

Ограничения данных

Максимальный размер текстового ввода должен составлять 8 000 токенов. Если вход превышает допустимый максимум, модель выдает ошибку недопустимого запроса. Для получения дополнительной информации см. ключевую концепцию tokens в документации Azure OpenAI. Рассмотрите возможность использования навыка Text Split , если вам нужен фрагмент данных.

Параметры навыков

Параметры чувствительны к регистру.

Входные данные Описание
resourceUri (обязательно) Универсальный код ресурса (URI) поставщика модели. Поддерживаемые домены:

  • openai.azure.com
  • services.ai.azure.com
  • cognitiveservices.azure.com

Это поле необходимо, если ваш ресурс развернут за частной конечной точкой или использует интеграцию с виртуальной сетью (VNet). конечные точки Azure API Management поддерживаются с URL-адресом https://<resource-name>.azure-api.net. Общие приватные ссылки не поддерживаются для конечных устройств управления API.

apiKey Секретный ключ, используемый для доступа к модели. Если вы предоставите ключ, оставьте authIdentity пустым. Если установить оба apiKey и authIdentity, то apiKey используется на соединении.
deploymentId (Обязательно) ID развернутой модели вложения Azure OpenAI. Это имя развертывания, которое вы указали при развертывании модели.
authIdentity Идентификация, управляемая пользователем, используемая поисковой службой соединения. Вы можете использовать системную или пользовательскую идентичность. Чтобы использовать системно управляемую идентичность, оставите apiKey и authIdentity пустые. Идентификация, управляемая системой, используется автоматически. Управляемая идентичность должна иметь права Cognitive Services OpenAI User для отправки текста Azure OpenAI.
modelName (Обязательно) Название модели OpenAI Azure, развернутой в указанном deploymentId. Поддерживаемые значения:

  • text-embedding-ada-002
  • text-embedding-3-large
  • text-embedding-3-small
dimensions (По желанию) Размеры эмбеддингов, которые вы хотите сгенерировать, при условии, что модель поддерживает диапазон измерений. По умолчанию — максимальные размеры для каждой модели. Для наборов навыков, созданных с использованием версий REST API до предпросмотра 2023-10-01, размеры фиксированы на уровне 1536. Если вы задаёте dimensions свойство в этом навыке, dimensions установите свойство в определении векторного поля на то же значение.

Поддерживаемые размеры modelName

Поддерживаемые размеры для навыка OpenAI Embedding Azure зависят от настроенного modelName.

modelName Минимальные измерения Максимальные размеры
text-embedding-ada-002 1536 1536
текст-встраивание-3-большой 1 3072
Встраивание текста - версия 3 - малая 1 1536

Входные параметры навыков

Input Описание
text Вводный текст должен быть векторизирован. Если вы используете фрагментирование данных, источник может быть /document/pages/*.

Выходные данные навыка

Выходные данные Описание
embedding Векторное вложение для входного текста.

Пример определения

Рассмотрим запись, содержащую следующие поля:

{
    "content": "Microsoft released Windows 10."
}

Тогда ваше определение навыка может выглядеть так:

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://my-demo-openai-eastus.openai.azure.com/",
  "deploymentId": "my-text-embedding-ada-002-model",
  "modelName": "text-embedding-ada-002",
  "dimensions": 1536,
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ]
}

Пример полученных результатов

Для заданного входного текста получается векторный вложенный выход.

{
  "embedding": [
        0.018990106880664825,
        -0.0073809814639389515,
        .... 
        0.021276434883475304,
      ]
}

Вывод хранится в памяти. Чтобы отправить этот вывод в поле в индексе поиска, необходимо определить outputFieldMapping , который отображает векторный выход вложения (то есть массив) в векторное поле. Если вывод навыка находится в узле вложения документа, а content_vector — это поле в индексе поиска, результатFieldMapping в индексаторе должен выглядеть следующим образом:

  "outputFieldMappings": [
    {
      "sourceFieldName": "/document/embedding/*",
      "targetFieldName": "content_vector"
    }
  ]

Лучшие практики

Ниже приведены некоторые лучшие практики, которые следует учитывать при использовании этого навыка:

  • Если вы нажимаете ограничение Azure OpenAI TPM (токены в минуту), рассмотрите рекомендации по ограничениям quota, чтобы вы могли соответствующим образом обращаться. Дополнительные сведения о производительности Azure экземпляра OpenAI см. в документации Azure.

  • Модель развертывания Azure OpenAI embeddings, которую вы используете для этого навыка, должна быть в идеале отдельно от развертки, используемой для других сценариев, включая query vectorizer. Это помогает каждому развертыванию адаптироваться к конкретному варианту использования, что приводит к оптимизации производительности и идентификации трафика от индексатора и вызовов внедрения индекса.

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

  • Чтобы избежать возникновения 429 кодов ошибок, рекомендуется реализовать балансировку нагрузки с помощью API Management путем реализации шлюза [/azure/архитектура/ai-ml/guide/azure-openai-gateway-multi-backend] перед несколькими развертываниями моделей Azure OpenAI.

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

  • Примеры и рабочие образцы кода с использованием этого навыка смотрите следующие ссылки:

Ошибки и предупреждения

Состояние Result
Null или некорректный URI Error
Null или invalid deploymentID Error
Текст пуст Предупреждение
Текст превышает 8 000 токенов Error

См. также