Uso de modelos de inserción desde el catálogo de modelos de Microsoft Foundry para la vectorización integrada (versión preliminar)

Nota

Búsqueda de Azure AI está disponible a través del portal de Azure, las API REST y los SDK de Azure. También respalda Foundry IQ, la capa de conocimiento administrada que transforma el contenido empresarial en bases de conocimiento reutilizables y compatibles con permisos para agentes en el portal de Microsoft Foundry.

Importante

Las características, funcionalidades o propiedades marcadas (versión preliminar) no están cubiertas por un contrato de nivel de servicio, no se recomiendan para cargas de trabajo de producción y pueden cambiar o restringirse antes de que estén disponibles con carácter general. Los términos de la versión preliminar Búsqueda de Azure AI se aplican a todas las funciones de vista previa, ya sea independiente o parte de una característica disponible con carácter general.

En este artículo, aprenderá a usar los modelos del catálogo de modelos de Microsoft Foundry para la vectorización integrada (versión preliminar) durante la indexación y la ejecución de consultas en Búsqueda de Azure AI.

El flujo de trabajo requiere implementar un modelo desde el catálogo, que incluye la inserción de modelos de Microsoft y otras empresas. La implementación de un modelo se factura según la estructura de facturación de cada proveedor.

Una vez implementado el modelo, puede usarlo con la aptitud AML para la vectorización integrada durante la indexación o con el vectorizador de catálogo de modelos Microsoft Foundry para consultas.

Sugerencia

Use el Asistente para importar datos para generar un conjunto de aptitudes que incluya una aptitud de AML para los modelos de inserción implementados en Foundry. El asistente genera una definición de aptitud de AML para entradas, salidas y asignaciones, lo que le proporciona una manera fácil de probar un modelo antes de escribir cualquier código.

Requisitos previos

Modelos de inserción admitidos

Los modelos de inserción admitidos del catálogo de modelos varían según el método de uso:

Implementación de un modelo de inserción desde el catálogo de modelos

  1. Siga estas instrucciones del portal para implementar un modelo compatible en el proyecto.

  2. Anote el URI de destino, la clave y el nombre del modelo. Necesita estos valores para la definición del vectorizador en un índice de búsqueda y para el conjunto de aptitudes que llama a los puntos de conexión del modelo durante la indexación.

    Si prefiere la autenticación de tokens a la autenticación basada en claves, solo tiene que copiar el nombre del modelo. Sin embargo, tome nota de la región en la que se implementa el modelo.

  3. Configure un índice de búsqueda e indexador para usar el modelo implementado.

Implementación de un modelo de inserción como una implementación sin servidor

La aptitud de AML y el vectorizador del catálogo de modelos de Microsoft Foundry solo aceptan implementaciones sin servidor de modelos de inserciones de Cohere. Las implementaciones sin servidor a través del portal de Microsoft Foundry no se admiten para estos modelos, por lo que use el CLI de Azure para crear la implementación. Para más información, consulte Implementación de modelos como implementaciones de API sin servidor.

Para crear una implementación sin servidor de Cohere:

  1. Instale el CLI de Azure con la extensión ml.

    az extension add -n ml
    
  2. Inicie sesión en Azure y establezca los valores predeterminados.

    az login
    az account set --subscription <subscription-id>
    az configure --defaults workspace=<project-name> group=<resource-group>
    
  3. Cree un archivo subscribe.yaml para suscribirse a la suscripción de marketplace para el modelo.

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

    Para otros modelos admitidos, reemplace el identificador de modelo por uno de los valores siguientes.

    Modelo Id. de modelo
    Cohere-embed-v3-english azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    Cohere-embed-v3-multilingüe azureml://registries/azureml-cohere/models/Cohere-embed-v3-multilingual
    Cohere-embed-v4 azureml://registries/azureml-cohere/models/Cohere-embed-v4
  4. Ejecute el siguiente comando para crear la suscripción.

    az ml marketplace-subscription create --file subscribe.yaml
    
  5. Cree un endpoint.yaml archivo para crear el punto de conexión sin servidor.

    name: cohere-embed-v3-english-endpoint
    model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    
  6. Ejecute el siguiente comando para crear el punto de conexión.

    az ml serverless-endpoint create --file endpoint.yaml
    
  7. Para la autenticación basada en claves, obtenga el URI del punto de conexión y la clave para su uso en la aptitud o vectorizador.

    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
    

Carga de aptitud de AML de ejemplo

Al implementar modelos incrustados desde el catálogo de modelo, se conecta a ellos mediante la Habilidad AML en Búsqueda de Azure AI para indexar cargas de trabajo.

En esta sección se describen la definición de habilidades de AML y los mapeos de índice. Incluye una carga de ejemplo que ya está configurada para trabajar con su punto de conexión implementado correspondiente. Para obtener más información, consulte Lenguaje de anotación de entrada y contexto de aptitud.

Modelos de inserción de Cohere

Esta carga útil de aptitudes de AML funciona con los siguientes modelos de inserción:

  • Cohere-embed-v3-english
  • Cohere-embed-v3-multilingüe
  • Cohere-embed-v4

Se supone que va a fragmentar el contenido mediante la aptitud Dividir texto y, por tanto, el texto que se va a vectorizar está en la ruta de acceso /document/pages/*. Si el texto procede de una ruta de acceso diferente, actualice todas las referencias a la /document/pages/* ruta de acceso según corresponda.

Debe agregar la ruta de acceso /v1/embed al final de la dirección URL que copió de la implementación de Foundry. También puede cambiar los valores de las input_typeentradas , truncatey embedding_types para que se ajusten mejor a su caso de uso. Para obtener más información sobre las opciones disponibles, revise la referencia de la API cohere Embed.

El URI y la clave se generan al implementar el modelo desde el catálogo. Para obtener más información sobre estos valores, consulte Implementación de modelos de inserción de Cohere con 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"
    }
  ]
}

Además, la salida del modelo cohere no es la matriz de incrustaciones directamente, sino un objeto JSON que lo contiene. Debe seleccionarla adecuadamente al asignarla a la definición de índice a través de indexProjections o outputFieldMappings. Este es un ejemplo de carga indexProjections que le permitiría implementar esta asignación.

Si ha seleccionado otro embedding_types en la definición de aptitud, cambie float en la ruta source de acceso al tipo seleccionado.

"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 de datos del vectorizador de ejemplo

El vectorizador del catálogo de modelos de Microsoft foundry, a diferencia de la aptitud de AML, está adaptado para funcionar solo con modelos de inserción que se pueden implementar a través del catálogo de modelos. La principal diferencia es que no tiene que preocuparse por la carga de solicitud y respuesta. Sin embargo, debe proporcionar el modelName, que corresponde al "Id. de modelo" que copió después de implementar el modelo.

Esta es una carga de ejemplo de cómo configuraría el vectorizador en la definición de índice según las propiedades copiadas de Foundry.

En el caso de los modelos de Cohere, NO debe agregar la ruta de acceso /v1/embed al final de la dirección URL como hizo con la aptitud.

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

Conexión mediante la autenticación de tokens

Si no puede usar la autenticación basada en claves, puede configurar la función AML y la conexión del vectorizador del catálogo de modelos de Microsoft Foundry para la autenticación de token a través del control de acceso basado en roles en Azure.

El servicio de búsqueda debe tener una identidad administrada asignada por el usuario o un sistema, y la identidad debe tener permisos de propietario o colaborador para el proyecto. A continuación, puede quitar el campo key de la definición de habilidad y vectorizador, reemplazándolo por resourceId. Si el proyecto y el servicio de búsqueda están en regiones diferentes, proporcione también el 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 integración no admite actualmente la autenticación de tokens para los modelos de Cohere. Debe usar la autenticación basada en claves.