Utilize modelos de incorporação do catálogo de modelos do Microsoft Foundry para vetorização integrada (pré-visualização)

Nota

O Pesquisa de IA do Azure está disponível através do portal Azure, APIs REST e SDKs do Azure. Também sustenta o Foundry IQ, a camada de conhecimento gerida que transforma conteúdos empresariais em bases de conhecimento reutilizáveis e conscientes de permissões para agentes no portal Microsoft Foundry.

Importante

Funcionalidades, capacidades ou propriedades assinaladas (pré-visualização) não são abrangidas por um acordo de nível de serviço, não são recomendadas para cargas de trabalho em produção e podem mudar ou ser limitadas antes de se tornarem geralmente disponíveis. Os termos de pré-visualização do Pesquisa de IA do Azure aplicam-se a todas as funcionalidades de pré-visualização, sejam independentes ou parte de uma funcionalidade geralmente disponível.

Neste artigo, aprende a usar modelos do catálogo de modelos do Microsoft Foundry para vetorização integrada (pré-visualização) durante a indexação e execução de consultas no Pesquisa de IA do Azure.

O fluxo de trabalho exige que implemente um modelo do catálogo, o que inclui a incorporação de modelos da Microsoft e de outras empresas. A implementação de um modelo é faturável de acordo com a estrutura de faturação de cada fornecedor.

Depois de implementado o modelo, pode usá-lo com a competência AML para vetorização integrada durante a indexação ou com o vetorizador do catálogo de modelos Microsoft Foundry para consultas.

Dica

Use o assistente Importar dados para criar um conjunto de competências que inclua uma competência de AML para modelos de embedding implementados no Foundry. A definição de competências AML para entradas, saídas e mapeamentos é gerada pelo assistente, o que lhe dá uma forma fácil de testar um modelo antes de escrever qualquer código.

Pré-requisitos

Modelos de embedding suportados

Os modelos de embedding suportados do catálogo de modelos variam consoante o método de utilização:

Implementar um modelo de embedding a partir do catálogo de modelos

  1. Siga estas instruções do portal para implementar um modelo suportado no seu projeto.

  2. Anota o URI de destino, a chave, e o nome do modelo. Precisarás destes valores para a definição do vetorizador de um índice de pesquisa e para o conjunto de habilidades que invoca os pontos de extremidade do modelo durante a indexação.

    Se preferir autenticação por token à autenticação baseada em chaves, só precisa de copiar o nome do modelo. No entanto, anote a região para onde o modelo está implantado.

  3. Configure um índice de pesquisa e um indexador para usar o modelo implementado.

Implementar um modelo de incorporação como uma implementação sem servidor

A funcionalidade AML e o vetorizador de catálogo de modelos da Microsoft Foundry apenas aceitam implementações serverless de modelos de incorporação Cohere. Implementações serverless através do portal Microsoft Foundry não são suportadas para estes modelos, por isso use a CLI do Azure para criar a implementação. Para mais informações, veja Implementar modelos como implementações de API sem servidor.

Para criar uma implementação Cohere serverless:

  1. Instala o CLI do Azure com a extensão ml.

    az extension add -n ml
    
  2. Inicia sessão no Azure e define os teus valores predefinidos.

    az login
    az account set --subscription <subscription-id>
    az configure --defaults workspace=<project-name> group=<resource-group>
    
  3. Crie um subscribe.yaml ficheiro para efetuar a subscrição do marketplace para o modelo.

    name: cohere-embed-v3-english-subscription
    model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    

    Para outros modelos suportados, substitua o ID do modelo por um dos seguintes valores.

    Modelo ID do modelo
    Cohere-embed-v3-english azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    Cohere-embed-v3-multilingual azureml://registries/azureml-cohere/models/Cohere-embed-v3-multilingual
    Cohere-embed-v4 azureml://registries/azureml-cohere/models/Cohere-embed-v4
  4. Execute o comando seguinte para criar a subscrição.

    az ml marketplace-subscription create --file subscribe.yaml
    
  5. Crie um ficheiro endpoint.yaml para configurar o endpoint sem servidor.

    name: cohere-embed-v3-english-endpoint
    model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    
  6. Execute o seguinte comando para criar o endpoint.

    az ml serverless-endpoint create --file endpoint.yaml
    
  7. Para autenticação baseada em chaves, obtenha o URI do endpoint e a chave para usar na habilidade ou no vetorizador.

    az ml serverless-endpoint show --name cohere-embed-v3-english-endpoint --query "scoring_uri"
    az ml serverless-endpoint get-credentials --name cohere-embed-v3-english-endpoint
    

Exemplo de carga útil de competência AML

Quando implementas modelos de embedding a partir do catálogo de modelos, ligas-te a eles usando a competência AML na Pesquisa de IA do Azure para indexar cargas de trabalho.

Esta secção descreve a definição de competências AML e os mapeamentos de índice. Inclui uma carga útil de amostra que já está configurada para funcionar com o respetivo endpoint implementado. Para mais informações, consulte Contexto de competências e linguagem de anotação de entrada.

Modelos de embedding da Cohere

Esta carga útil de competência AML funciona com os seguintes modelos de embedding:

  • Cohere-embed-v3-english
  • Cohere-embed-v3-multilingual
  • Cohere-embed-v4

Assume que estás a fragmentar o teu conteúdo usando a habilidade Text Split e, por isso, o texto a vetorizar está no /document/pages/* caminho. Se o seu texto vier de um caminho diferente, atualize todas as referências ao caminho /document/pages/* em conformidade.

Deve adicionar o /v1/embed caminho ao final da URL que copiou da sua implementação no Foundry. Também podes alterar os valores das entradas input_type, truncate, e embedding_types para se ajustarem melhor ao teu caso de uso. Para mais informações sobre as opções disponíveis, consulte a referência da API Cohere Embed.

O URI e a chave são gerados quando implementas o modelo a partir do catálogo. Para mais informações sobre estes valores, consulte Como implementar modelos Cohere Embed com o Foundry.

{
  "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
  "context": "/document/pages/*",
  "uri": "https://cohere-embed-v3-multilingual-hin.eastus.models.ai.azure.com/v1/embed",
  "key": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333",
  "inputs": [
    {
      "name": "texts",
      "source": "=[$(/document/pages/*)]"
    },
    {
      "name": "input_type",
      "source": "='search_document'"
    },
    {
      "name": "truncate",
      "source": "='NONE'"
    },
    {
      "name": "embedding_types",
      "source": "=['float']"
    }
  ],
  "outputs": [
    {
      "name": "embeddings",
      "targetName": "aml_vector_data"
    }
  ]
}

Além disso, a saída do modelo Cohere não é diretamente o array de embeddings, mas sim um objeto JSON que o contém. Precisa de o selecionar adequadamente ao mapeá-lo para a definição do índice via indexProjections ou outputFieldMappings. Aqui está um exemplo indexProjections de carga útil que permitiria implementar este mapeamento.

Se selecionaste uma opção diferente embedding_types na definição da tua habilidade, muda float o source percurso para o tipo que escolheste.

"indexProjections": {
  "selectors": [
    {
      "targetIndexName": "<YOUR_TARGET_INDEX_NAME_HERE>",
      "parentKeyFieldName": "ParentKey", // Change this to the name of the field in your index definition where the parent key will be stored
      "sourceContext": "/document/pages/*",
      "mappings": [
        {
          "name": "aml_vector", // Change this to the name of the field in your index definition where the Cohere embedding will be stored
          "source": "/document/pages/*/aml_vector_data/float/0"
        }
      ]
    }
  ],
  "parameters": {}
}

Carga útil do vetorizador de amostras

O vetorizador de catálogo de modelos Microsoft Foundry, ao contrário da competência AML, é adaptado para funcionar apenas com modelos de embedding que podem ser implementados através do catálogo de modelos. A principal diferença é que você não precisa de se preocupar com a carga útil de pedidos e respostas. No entanto, deve fornecer o modelName, que corresponde ao "ID do Modelo" que copiou após a implementação do modelo.

Aqui está um exemplo de payload sobre como configurar o vetorizador na definição do seu índice, dadas as propriedades copiadas do Foundry.

Para modelos Cohere, NÃO deves adicionar o /v1/embed caminho até ao fim do teu URL como fizeste com a habilidade.

"vectorizers": [
    {
        "name": "<YOUR_VECTORIZER_NAME_HERE>",
        "kind": "aml",
        "amlParameters": {
            "uri": "<YOUR_URL_HERE>",
            "key": "<YOUR_PRIMARY_KEY_HERE>",
            "modelName": "<YOUR_MODEL_ID_HERE>"
        },
    }
]

Conecte-se usando autenticação por token

Se não conseguir usar autenticação baseada em chaves, pode configurar a funcionalidade AML e a conexão com o vetorizador do catálogo do modelo Microsoft Foundry para autenticação baseada em token via controlo de acesso baseado em funções no Azure.

O seu serviço de pesquisa deve ter uma identidade gerida atribuída pelo sistema ou pelo utilizador, e a identidade deve ter permissões de Proprietário ou Contribuidor para o seu projeto. Pode então remover o key campo da sua definição de habilidade e vetorizador, substituindo-o por resourceId. Se o seu projeto e serviço de pesquisa estiverem em regiões diferentes, também forneça o region campo.

"uri": "<YOUR_URL_HERE>",
"resourceId": "subscriptions/<YOUR_SUBSCRIPTION_ID_HERE>/resourceGroups/<YOUR_RESOURCE_GROUP_NAME_HERE>/providers/Microsoft.MachineLearningServices/workspaces/<YOUR_AML_WORKSPACE_NAME_HERE>/onlineendpoints/<YOUR_AML_ENDPOINT_NAME_HERE>",
"region": "westus", // Only needed if project is in different region from search service

Nota

Esta integração atualmente não suporta autenticação por token para modelos Cohere. Deve usar autenticação baseada em chaves.