Compétence AML

Note

Recherche Azure AI est disponible via le portail Azure, les API REST et les SDK Azure. Il sous-tend également Foundry IQ, la couche de connaissances managée qui transforme le contenu d’entreprise en bases de connaissances réutilisables et prenant en charge les autorisations pour les agents dans le portail Microsoft Foundry.

Important

Les fonctionnalités, capacités ou propriétés marquées (préversion) ne sont pas couvertes par un accord de niveau de service, ne sont pas recommandées pour les workloads de production et peuvent être modifiées ou faire l’objet de restrictions avant leur mise à disposition générale. Les Recherche Azure AI termes de la préversion s'appliquent à toutes les fonctionnalités d'aperçu, qu'il s'agisse d'une fonctionnalité autonome ou d'une partie d'une fonctionnalité généralement disponible.

Utilisez la compétence AML pour étendre l’enrichissement par IA avec un modèle d’incorporation de base déployé à partir du catalogue de modèles Microsoft Foundry (préversion) ou d’un modèle de Azure Machine Learning personnalisé (AML). Vos données sont traitées dans la géo où votre modèle est déployé.

Vous spécifiez la compétence AML dans un ensemble de compétences, qui intègre ensuite votre modèle déployé dans un pipeline d’enrichissement par IA. La compétence AML est utile pour effectuer un traitement ou une inférence non pris en charge par les compétences intégrées. Les exemples incluent la génération d’incorporations avec votre propre modèle et l’application d’une logique d’apprentissage automatique personnalisée à du contenu enrichi.

Pour les points de terminaison en ligne AML, utilisez une version d’API stable ou un Kit de développement logiciel (SDK) Azure équivalent pour appeler la compétence AML. Pour les connexions au catalogue de modèles, utilisez une version préliminaire de l’API.

Utilisation des compétences AML

Comme d’autres compétences, la compétence AML a des entrées et des sorties. Les entrées sont envoyées sous forme d'un objet JSON vers un déploiement sans serveur depuis le catalogue de modèles Foundry ou un point de terminaison en ligne AML. La sortie doit inclure un code d’état de réussite, une charge utile JSON et les paramètres spécifiés par votre définition de compétence AML. Toute autre réponse est considérée comme une erreur et aucun enrichissement n’est effectué.

L’indexeur retente deux fois pour les codes d’état HTTP suivants :

  • 503 Service Unavailable
  • 429 Too Many Requests

Compétence AML pour les modèles dans Microsoft Foundry (préversion)

Recherche Azure AI fournit le vectoriseur de catalogue de modèles Microsoft Foundry (préversion), qui est également disponible dans l’Assistant Importation de données, pour les connexions au catalogue de modèles au moment de l’exécution des requêtes. Si vous souhaitez utiliser ce vectoriseur pour les requêtes, la compétence AML est l’équivalent d’indexation pour générer des incorporations à l’aide d’un modèle à partir du catalogue de modèles.

Pendant l’indexation, la compétence AML peut se connecter au catalogue de modèles pour générer des vecteurs pour l’index. Au moment de la requête, les requêtes peuvent utiliser un vectoriseur pour se connecter au même modèle pour vectoriser les chaînes de texte. Vous devez utiliser la compétence AML et le vectoriseur de catalogue de modèles Microsoft Foundry afin que le même modèle d’incorporation soit utilisé pour l’indexation et les requêtes. Pour plus d’informations, consultez Utiliser des modèles incorporés à partir du catalogue de modèles Foundry.

Nous vous recommandons d’utiliser l’Assistant Importation de données pour générer un ensemble de compétences qui inclut une compétence AML pour les modèles incorporés déployés dans Foundry. L’assistant génère la définition de la compétence AML pour les entrées, les sorties et les mappages, ce qui permet de tester facilement un modèle avant d’écrire du code.

Conditions préalables

  • Un projet hub Microsoft Foundry ou un espace de travail AML pour un modèle personnalisé que vous créez.

  • Pour les projets basés sur un hub uniquement, un déploiement serverless d’un modèle pris en charge issu du catalogue de modèles Microsoft Foundry. Vous pouvez utiliser la Azure CLI pour approvisionner le déploiement serverless.

@odata.type

Microsoft.Skills.Custom.AmlSkill

Paramètres de compétence

Les paramètres sont sensibles à la casse. Les paramètres que vous utilisez dépendent de l’authentification dont votre fournisseur de modèle a besoin, le cas échéant.

Nom du paramètre Description
uri (Obligatoire pour l’authentification par clé) L’URI cible du déploiement serverless issu du catalogue de modèles Microsoft Foundry ou de l’URI de scoring du point de terminaison en ligne AML. Seul le schéma d’URI HTTPS est autorisé. Les modèles pris en charge à partir du catalogue de modèles (déploiements serverless uniquement) sont les suivants :
  • Cohere-embed-v3-english
  • Cohere-embed-v3-multilingue
  • Cohere-embed-v4
key (Obligatoire pour l’authentification par clé) Clé API du fournisseur de modèles.
resourceId (Obligatoire pour l’authentification par jeton) L’ID de ressource Azure Resource Manager du fournisseur de modèle. Pour un point de terminaison en ligne AML, utilisez le format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/onlineendpoints/{endpoint_name}.
region (Facultatif pour l’authentification par jeton) Région dans laquelle le fournisseur de modèles est déployé. Obligatoire si la région est différente de la région du service de recherche.
timeout (Facultatif) Délai d’expiration du client HTTP effectuant l’appel d’API. Elle doit être mise en forme sous forme de valeur XSD « dayTimeDuration », qui est un sous-ensemble restreint d’une valeur de durée ISO 8601 . Par exemple, PT60S pendant 60 secondes. S’il n’est pas défini, une valeur par défaut de 30 secondes est choisie. Vous pouvez définir le délai d’expiration sur un minimum de 1 seconde et un maximum de 230 secondes.
degreeOfParallelism (Facultatif) Nombre d’appels que l’indexeur effectue en parallèle avec le point de terminaison que vous fournissez. Vous pouvez réduire cette valeur si votre point de terminaison échoue sous une charge de requête trop élevée. Vous pouvez le déclencher si votre point de terminaison est en mesure d’accepter davantage de demandes et que vous souhaitez augmenter les performances de l’indexeur. S’il n’est pas défini, une valeur par défaut de 5 est utilisée. Vous pouvez définir degreeOfParallelism un minimum de 1 et un maximum de 10.

Authentification

La compétence AML fournit deux options d’authentification :

  • Authentification basée sur des clés : Vous fournissez une clé statique pour authentifier les demandes de scoring à partir de la compétence AML. Définissez les paramètres uri et key pour cette connexion.

  • Authentification basée sur les jetons : Le projet hub Foundry ou le point de terminaison en ligne AML est déployé à l’aide de l’authentification basée sur les jetons. Le service Recherche Azure AI doit avoir une identité managée et une attribution de rôle sur le fournisseur de modèle. La compétence AML utilise ensuite l’identité du service de recherche pour s’authentifier auprès du fournisseur de modèles, sans clés statiques requises. L’identité du service de recherche doit avoir le rôle Propriétaire ou Contributeur . Définissez le resourceId paramètre et, si le service de recherche se trouve dans une autre région que le fournisseur de modèles, définissez le region paramètre.

Données de compétences

Les entrées de la compétence sont un nœud du document enrichi créé lors du craquage de document. Par exemple, il peut s’agir du document racine, d’une image normalisée ou du contenu d’un objet blob. Il n’existe aucune entrée prédéfinie pour cette compétence. Pour les entrées, vous devriez spécifier un ou plusieurs nœuds qui sont renseignés au moment de l’exécution de la compétence AML.

Résultats des compétences

Les sorties de la compétence sont de nouveaux nœuds d’un document enrichi créés par la compétence. Il n’existe aucune sortie prédéfinie pour cette compétence. Pour les sorties, vous devez fournir des nœuds qui peuvent être remplis à partir de la réponse JSON de votre compétence AML.

Exemple de définition

  {
    "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
    "description": "A custom model that detects the language in a document.",
    "uri": "https://language-model.models.contoso.com/score",
    "context": "/document",
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "detected_language_code"
      }
    ]
  }

Exemple de structure JSON d’entrée

Cette structure JSON représente la charge utile envoyée à votre projet hub Foundry ou à votre point de terminaison en ligne AML. Les champs de niveau supérieur de la structure correspondent aux « noms » spécifiés dans la inputs section de la définition de compétence. Les valeurs de ces champs proviennent des « sources » de ces champs, qui peuvent provenir d’un champ dans le document ou d’une autre compétence.

{
  "text": "Este es un contrato en Inglés"
}

Exemple de structure JSON de sortie

La sortie correspond à la réponse de votre projet Hub Foundry ou de votre endpoint en ligne AML. Le fournisseur de modèles ne doit retourner qu’une charge utile JSON (vérifiée en examinant l’en-tête Content-Type de réponse) et doit être un objet dont les champs correspondent aux « noms » dans le output et dont la valeur est considérée comme l’enrichissement.

{
    "detected_language_code": "es"
}

Exemple de définition de mise en forme inlined

  {
    "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
    "description": "A sample model that detects the language of sentence",
    "uri": "https://language-model.models.contoso.com/score",
    "context": "/document",
    "inputs": [
      {
        "name": "shapedText",
        "sourceContext": "/document",
        "inputs": [
            {
              "name": "content",
              "source": "/document/content"
            }
        ]
      }
    ],
    "outputs": [
      {
        "name": "detected_language_code"
      }
    ]
  }

Structure JSON d’entrée de mise en forme inlined

{
  "shapedText": { "content": "Este es un contrato en Inglés" }
}

Structure JSON d’exemple de sortie de mise en forme inlined

{
    "detected_language_code": "es"
}

Cas d’erreur

Outre votre projet hub Foundry ou votre point de terminaison en ligne AML indisponible ou envoyant des codes d’état non sécurisés, les cas suivants sont considérés comme des erreurs :

  • Le fournisseur de modèles retourne un code d’état de réussite, mais la réponse indique qu’elle n’est pas application/json. La réponse n’est donc pas valide et aucun enrichissement n’est effectué.

  • Le fournisseur de modèles retourne json non valide.

Si le fournisseur de modèles n’est pas disponible ou retourne une erreur HTTP, une erreur conviviale avec des détails disponibles sur l’erreur HTTP est ajoutée à l’historique d’exécution de l’indexeur.