Partilhar via


Utilize modelos de integração do catálogo de modelos Microsoft Foundry para uma vetorização integrada.

Importante

Esta funcionalidade está em pré-visualização pública em Termos de Utilização Suplementares. A versão de pré-visualização mais recente do Skillssets - Create Or Update (API REST) suporta esta funcionalidade.

Neste artigo, aprende como aceder a modelos de embedding do catálogo de modelos Microsoft Foundry para conversões vetoriais durante indexação e execução de consultas no Azure AI Search.

O fluxo de trabalho exige que implemente um modelo do catálogo, o que inclui incorporar 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.

Gorjeta

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

Pré-requisitos

Modelos de incorporação 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 para implementar um modelo suportado no seu projeto.

  2. Anote o URI, a chave e o nome do modelo de destino. Precisas destes valores para a definição do vectorizador em um índice de pesquisa e para o conjunto de habilidades que acede aos endpoints do modelo durante a indexação.

    Se preferir autenticação por token à autenticação baseada em chaves, só precisa de copiar o URI e 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.

Exemplo de carga útil de competência AML

Quando implementas modelos de embedding do catálogo de modelos, ligas-te a eles usando a competência AML no Azure AI Search para indexar cargas de trabalho.

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

Modelos de incorporação de cohere

Esta carga útil de habilidade AML funciona com os seguintes modelos de incorporação:

  • Cohere-embed-v3-inglês
  • Cohere-embed-v3-Multilíngue
  • Cohere-embed-v4

Ele pressupõe que você está fragmentando seu conteúdo usando a habilidade Divisão de texto e, portanto, seu texto a ser vetorizado está no /document/pages/* caminho. Se o texto vier de um caminho diferente, atualize todas as referências ao /document/pages/* caminho de acordo.

Deve adicionar o caminho /v1/embed ao final da URL que copiou da sua implementação do Foundry. Você também pode alterar os valores das entradas input_type, truncate e embedding_types para melhor se adequar ao seu caso de uso. Para obter 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 você implanta 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 é a matriz de incorporação diretamente, mas sim um objeto JSON que a contém. Você precisa selecioná-lo adequadamente ao mapeá-lo para a definição de índice via indexProjections ou outputFieldMappings. Aqui está um exemplo indexProjections de carga útil que permitiria implementar esse mapeamento.

Se tiver selecionado um embedding_types diferente na definição da competência, altere float no caminho source para o tipo selecionado.

"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 amostra

O vetorizador de catálogo de modelos Microsoft Foundry, ao contrário da habilidade 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 não tem de se preocupar com o payload dos 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 prático de como configurares o vetorizador na definição do teu índice, dadas as propriedades copiadas do Foundry.

Para modelos Cohere, você NÃO deve adicionar o /v1/embed caminho para o final do seu URL como fez 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>"
        },
    }
]

Conectar-se usando autenticação de token

Se não conseguires usar autenticação baseada em chaves, podes configurar a habilidade AML e a ligação ao vetorizador do catálogo do modelo Microsoft Foundry para autenticação por 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

Observação

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