Partager via


Utiliser des modèles incorporés à partir du catalogue de modèles Microsoft Foundry pour la vectorisation intégrée

Important

Cette fonctionnalité est disponible en préversion publique dans le cadre de Conditions d’utilisation supplémentaires. La dernière version préliminaire de Skillsets - Create Or Update (API REST) prend en charge cette fonctionnalité.

Dans cet article, vous allez apprendre à accéder aux modèles incorporés à partir du catalogue de modèles Microsoft Foundry pour les conversions de vecteurs pendant l’indexation et l’exécution des requêtes dans Recherche IA Azure.

Le flux de travail nécessite que vous déployiez un modèle à partir du catalogue, qui inclut l’incorporation de modèles de Microsoft et d’autres entreprises. Le déploiement d’un modèle est facturable en fonction de la structure de facturation de chaque fournisseur.

Une fois le modèle déployé, vous pouvez l’utiliser avec la compétence AML pour la vectorisation intégrée pendant l’indexation ou avec le vectoriseur de catalogue de modèles Microsoft Foundry pour les requêtes.

Conseil

Utilisez l’Assistant Importation de données (nouveau) pour générer un ensemble de compétences qui inclut une compétence AML pour les modèles incorporés déployés sur Foundry. La définition des compétences AML pour les entrées, les sorties et les correspondances est générée par l'assistant, ce qui vous permet de tester facilement un modèle avant d'écrire le moindre code.

Prérequis

Modèles d’incorporation pris en charge

Les modèles incorporés pris en charge à partir du catalogue de modèles varient selon la méthode d’utilisation :

Déployer un modèle d’incorporation à partir du catalogue de modèles

  1. Suivez ces instructions pour déployer un modèle pris en charge sur votre projet.

  2. Notez l'URI cible, la clé et le nom du modèle. Vous avez besoin de ces valeurs pour la définition de vectoriseur dans un index de recherche et pour l’ensemble de compétences qui appelle les points de terminaison de modèle pendant l’indexation.

    Si vous préférez l’authentification par jeton à l’authentification par clé, vous devez uniquement copier l’URI et le nom du modèle. Toutefois, notez la région dans laquelle le modèle est déployé.

  3. Configurez un index de recherche et un indexeur pour utiliser le modèle déployé.

Exemple de charge utile de compétence AML

Lorsque vous déployez des modèles incorporés à partir du catalogue de modèles, vous vous connectez-y à l’aide de la compétence AML dans Azure AI Search pour l’indexation des charges de travail.

Cette section décrit la définition de la compétence AML et les mappages d’index. Il inclut un exemple de charge utile déjà configuré pour fonctionner avec son point de terminaison déployé correspondant. Pour plus d’informations, consultez Langage d’annotation du contexte et des entrées de compétences.

Modèles d'embeddings de Cohere

Cette charge utile de compétence AML fonctionne avec les modèles d’incorporation suivants :

  • Cohere-embed-v3-english
  • Cohere-embed-v3-multilingue
  • Cohere-embed-v4

Elle suppose que vous segmentez votre contenu en utilisant la compétence Fractionnement Text Split et que le texte à vectoriser se trouve dans le chemin d’accès /document/pages/*. Si votre texte provient d’un chemin d’accès différent, mettez à jour en conséquence toutes les références au chemin d’accès /document/pages/*.

Vous devez ajouter le chemin d'accès /v1/embed à la fin de l'URL que vous avez copiée depuis votre déploiement Foundry. Vous pourriez également modifier les valeurs des entrées input_type, truncate, et embedding_types afin qu'elles correspondent mieux à votre cas d'utilisation. Pour plus d’informations sur les options disponibles, consultez les Informations de référence sur l’API Cohere Embed.

L’URI et la clé sont générés quand vous déployez le modèle à partir du catalogue. Pour plus d’informations sur ces valeurs, consultez Comment déployer des modèles Cohere Embed avec 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"
    }
  ]
}

En outre, la sortie du modèle Cohere n’est pas directement le tableau des incorporations : c’est un objet JSON qui le contient. Vous devez le sélectionner correctement lors du mappage à la définition d’index via indexProjections ou outputFieldMappings. Voici un exemple de charge utile indexProjections qui vous permettrait d’implémenter ce mappage.

Si vous avez sélectionné une autre embedding_types dans votre définition de compétence, modifiez le float dans le chemin d’accès source au type que vous avez sélectionné.

"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": {}
}

Exemple de charge utile du vectoriseur

Le vectoriseur de catalogue de modèles Microsoft Foundry, contrairement à la compétence AML, est adapté pour fonctionner uniquement avec les modèles incorporés qui sont déployables via le catalogue de modèles. La principale différence est que vous n’avez pas à vous soucier de la charge utile de requête et de réponse. Toutefois, vous devez fournir le modelName, qui correspond à l'« ID de modèle » que vous avez copié après le déploiement du modèle.

Voici un exemple de charge utile de la façon dont vous configurez le vectoriseur sur votre définition d’index en fonction des propriétés copiées à partir de Foundry.

Pour les modèles Cohere, vous ne devez PAS ajouter le chemin d’accès /v1/embed à la fin de votre URL comme vous l’avez fait avec la compétence.

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

Se connecter en utilisant l’authentification par jeton

Si vous ne pouvez pas utiliser l’authentification basée sur des clés, vous pouvez configurer la compétence AML et la connexion de vectoriseur de catalogue de modèles Microsoft Foundry pour l’authentification par jeton via le contrôle d’accès en fonction du rôle sur Azure.

Votre service de recherche doit avoir une identité managée affectée par le système ou l’utilisateur, et l’identité doit disposer d’autorisations Propriétaire ou Contributeur pour votre projet. Vous pouvez ensuite supprimer le key champ de votre compétence et de votre définition de vectoriseur, en le remplaçant par resourceId. Si votre projet et votre service de recherche se trouvent dans différentes régions, fournissez également le region champ.

"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

Remarque

Cette intégration ne prend actuellement pas en charge l’authentification par jeton pour les modèles Cohere. Vous devez utiliser l’authentification basée sur des clés.