Partager via


Migrer de la compréhension du langage proposée par le service LUIS (Language Understanding) à la compréhension du langage courant (CLU)

CLU (compréhension du langage courant) est une offre IA basée sur le cloud dans Azure AI Language. Il s’agit de la dernière génération du service LUIS (Language Understanding), qui offre une compatibilité descendante avec les applications LUIS déjà créées. CLU utilise une intelligence de pointe basée sur le machine learning pour permettre aux utilisateurs de créer un modèle personnalisé de compréhension du langage naturel afin de prédire les intentions et les entités des énoncés conversationnels.

CLU offre les avantages suivants par rapport à LUIS :

  • Amélioration de la justesse des résultats avec des modèles Machine Learning de pointe pour une meilleure classification des intentions et une meilleure extraction des entités. LUIS exigeait davantage d’exemples pour généraliser certains concepts dans les intentions et les entités, tandis que le Machine Learning plus avancé de LLU réduit le fardeau des clients en nécessitant moins de données.
  • Prise en charge multilingue pour le machine learning et l’entraînement des modèles. Entraînez les projets dans une seule langue, et prédisez immédiatement les intentions et les entités dans 96 langues.
  • Facilité d’intégration à différents projets CLU et projets de réponses aux questions personnalisées à l’aide du workflow d’orchestration.
  • Possibilité d’ajout de données de test dans le cadre de l’expérience à l’aide de Language Studio et d’API pour évaluer les performances du modèle avant le déploiement.

Pour commencer, vous pouvez créer un projet ou migrer votre application LUIS.

Comparaison entre LUIS et CLU

Le tableau suivant présente une comparaison côte à côte des fonctionnalités de LUIS et de CLU. Il met également en évidence les changements apportés à votre application LUIS après la migration vers CLU. Sélectionnez le concept lié pour en savoir plus sur ces changements.

Fonctionnalités de LUIS Fonctionnalités de CLU Après la migration
Entités issues du machine learning et entités ML structurées Composants d’entité issus du machine learning Les entités apprises par machine sans sous-entités sont transférées en tant qu’entités CLU. Les entités ML structurées transfèrent uniquement les nœuds feuilles (sous-entités de niveau le plus bas qui n’ont pas leurs propres sous-entités) en tant qu’entités dans l’interface CLU. Le nom de l’entité dans CLU est le nom de la sous-entité concaténée avec le parent. Par exemple Commande.Taille
Entités de liste, regex et prédéfinies Composants d’entité de liste, regex et prédéfinie Les entités list, regex et préconstruites sont transférées en tant qu’entités dans CLU avec un composant d’entité rempli en fonction du type d’entité.
Entités Pattern.Any Actuellement non disponible Pattern.Any les entités sont supprimées.
Une seule culture pour chaque application Les modèles multilingues permettent l’utilisation de plusieurs langues pour chaque projet. La langue principale de votre projet est définie comme la culture de votre application LUIS. Votre projet peut être entraîné pour s’étendre à différentes langues.
Rôles d’entité Les rôles ne sont plus nécessaires. Les rôles d’entité sont transférés en tant qu’entités.
Paramètres relatifs à la normalisation de la ponctuation, à la normalisation des signes diacritiques, à la normalisation de la forme des mots, à l’utilisation de toutes les données d’entraînement Les paramètres ne sont plus nécessaires. Les paramètres ne sont pas transférés.
Modèles et caractéristiques de listes d’expressions Les modèles et les caractéristiques de listes d’expressions ne sont plus nécessaires. Les modèles et les fonctionnalités de liste d’expressions ne sont pas transférés.
Caractéristiques d’entité Composants de l’entité Les entités de liste ou prédéfinies ajoutées en tant que fonctionnalités à une entité sont transférées en tant que composants ajoutés à cette entité. Les fonctionnalités d’entité ne sont pas transférées pour les intentions.
Intentions et énoncés Intentions et énoncés Toutes les intentions et énoncés sont transférés. Les énoncés sont étiquetés avec leurs entités transférées.
GUID d’application Noms de projets Un projet est créé pour chaque application de migration avec le nom de l’application. Tous les caractères spéciaux dans les noms d’application sont supprimés dans CLU.
Gestion de version Chaque fois que vous effectuez un entraînement, un modèle est créé et sert de version pour votre projet. Un projet est créé pour la version de l’application sélectionnée.
Évaluation à l’aide de tests par lots Évaluation à l’aide d’ensembles de test L’ajout de votre jeu de données de test est nécessaire.
Contrôle d’accès en fonction du rôle (RBAC) pour les ressources LUIS Contrôle d’accès en fonction du rôle (RBAC) disponible pour les ressources Language Le contrôle RBAC des ressources Language doit être ajouté manuellement après la migration.
Mode d’entraînement unique Modes d’entraînement standard et avancé L’entraînement est requis après la migration d’application.
Deux emplacements de publication avec publication de version Dix emplacements de déploiement avec nommage personnalisé Le déploiement est requis après la migration et la formation de l’application.
API de création LUIS et prise en charge du kit SDK en .NET, Python, Java et Node.js API REST de création CLU. Pour plus d’informations, consultez l’article du Guide de démarrage rapide sur les API de création CLU. La refactorisation est nécessaire pour utiliser les API de création CLU.
API de runtime LUIS et prise en charge du kit SDK en .NET, Python, Java et Node.js API de runtime CLU. Prise en charge du kit SDK du runtime CLU pour .NET et Python. Pour plus d’informations, consultez Comment appeler l’API. La refactorisation est nécessaire pour utiliser la réponse de l’API runtime CLU.

Migrer vos applications LUIS

Suivez les étapes ci-dessous pour migrer votre application LUIS à l’aide du portail LUIS ou de l’API REST.

Migrer vos applications LUIS à l’aide du portail LUIS

Pour commencer la migration à l’aide du portail LUIS, suivez les étapes ci-dessous :

  1. Une fois connecté au portail LUIS, cliquez sur le bouton de la bannière en haut de l’écran pour lancer l’Assistant Migration. La migration copie vos applications LUIS sélectionnées vers CLU.

    Capture d’écran montrant la bannière de migration dans le portail LUIS.

    L’onglet de vue d’ensemble de la migration fournit une brève explication sur la compréhension du langage courant et ses avantages. Appuyez sur Suivant pour continuer.

    Capture d’écran montrant la fenêtre de vue d’ensemble de la migration.

  2. Déterminez quelle est la ressource Language vers laquelle vous souhaitez migrer votre application LUIS. Si vous avez déjà créé votre ressource Language, sélectionnez votre abonnement Azure suivi de votre ressource Language, puis sélectionnez Suivant. Si vous n’avez pas de ressource Language, cliquez sur le lien pour en créer une. Sélectionnez ensuite la ressource, puis sélectionnez Suivant.

    Capture d’écran montrant la fenêtre de sélection de la ressource.

  3. Sélectionnez toutes les applications LUIS à migrer, puis spécifiez chacune de leurs versions. Cliquez sur Suivant. Après avoir sélectionné votre application et votre version, vous êtes invité à envoyer un message vous informant des fonctionnalités qui ne seront pas transférées à partir de votre application LUIS.

    Notes

    Les caractères spéciaux ne sont pas pris en charge par la fonctionnalité de compréhension du langage courant. Tous les caractères spéciaux de vos noms d’application LUIS sélectionnés sont supprimés dans vos nouvelles applications migrées. Capture d’écran montrant la fenêtre de sélection de l’application.

  4. Passez en revue vos sélections pour la ressources Language et les applications LUIS. Sélectionnez Terminer pour migrer vos applications.

  5. Une fenêtre contextuelle vous permet de suivre l’état de migration de vos applications. Les applications qui n’ont pas démarré la migration ont l’état Non démarré. Les applications qui ont commencé à migrer ont un état En cours et une fois qu’elles ont terminé la migration de leur état est Réussie. Si une application est à l’état Échec, cela signifie que vous devez répéter le processus de migration. Une fois la migration effectuée pour toutes les applications, sélectionnez Terminé.

    Capture d’écran montrant la fenêtre de progression de la migration de l’application.

  6. Une fois vos applications migrées, vous pouvez suivre les étapes ci-après :

Forum aux questions

Quelle version JSON de LUIS est prise en charge par CLU ?

CLU prend en charge le modèle JSON version 7.0.0. Si le format JSON est plus ancien, vous devez d’abord l’importer dans LUIS, puis l’exporter à partir de LUIS avec la version la plus récente.

En quoi les entités sont-elles différentes dans CLU ?

Dans CLU, une seule entité peut avoir plusieurs composants d’entité, qui correspondent à différentes méthodes d’extraction. Ces composants sont ensuite combinés à l’aide de règles que vous pouvez définir. Les composants disponibles sont les suivants :

  • Composants issus du machine learning : les étiquettes, qui sont équivalentes aux entités ML dans LUIS, permettent d’entraîner un modèle Machine Learning pour prédire une entité en fonction du contenu et du contexte des étiquettes fournies.
  • Composants de liste : tout comme les entités de liste dans LUIS, les composants de liste établissent une correspondance exacte avec un ensemble de synonymes, puis les mappent à nouveau à une valeur normalisée appelée clé de liste.
  • Composants prédéfinis : ils vous permettent de définir une entité avec les extracteurs prédéfinis pour les types courants disponibles dans LUIS et CLU.
  • Composants regex : ils utilisent des expressions régulières pour capturer des modèles définis de manière personnalisée, exactement comme les entités regex dans LUIS.

Les entités dans LUIS sont transférées en tant qu’entités du même nom dans CLU avec les composants équivalents transférés.

Une fois la migration effectuée, vos nœuds terminaux structurés issus du machine learning et vos sous-entités de niveau inférieur sont transférés vers le nouveau modèle CLU, alors que toutes les entités parentes et entités de niveau supérieur sont ignorées. Le nom de l’entité est le nom de l’entité de niveau inférieur concaténé avec son entité parente.

Exemple :

Entité LUIS :

  • Commande de pizza
    • Garniture
    • Taille

Entité LUIS migrée dans CLU :

  • Commande de pizza.Garniture
  • Commande de pizza.Taille

Vous ne pouvez pas également étiqueter 2 entités différentes dans CLU pour la même étendue de caractères. Les composants issus du machine learning dans CLU s’excluent mutuellement. Ils ne fournissent pas de prédictions qui se chevauchent uniquement pour les composants issus du machine learning. Durant la migration de votre application LUIS, les étiquettes d’entité qui se chevauchent ont conservé l’étiquette la plus longue et ignoré les autres.

Pour plus d’informations sur les composants d’entité, consultez Composants d’entité.

Comment les rôles d’entité sont-ils transférés vers CLU ?

Vos rôles sont transférés en tant qu’entités distinctes, ainsi que leurs énoncés étiquetés. Le type d’entité de chaque rôle détermine le composant d’entité renseigné. Par exemple, un rôle d’entité de liste est transféré en tant qu’entité portant le même nom que le rôle, avec un composant de liste rempli.

Comment les caractéristiques d’entité sont-elles transférées dans CLU ?

Les entités utilisées comme fonctionnalités pour les intentions ne sont pas transférées. Les entités utilisées en tant que caractéristiques pour d’autres entités remplissent le composant approprié de l’entité. Par exemple, si une entité de liste nommée SizeList a été utilisée comme fonctionnalité pour une entité apprise par ordinateur nommée Size, l’entité Size est transférée vers LLU avec les valeurs de liste de SizeList ajoutées à son composant de liste. Il en est de même pour les entités prédéfinies et regex.

En quoi les scores de confiance des entités sont-ils différents dans CLU ?

Toute entité extraite a un score de confiance de 100% et, par conséquent, les scores de confiance d’entité ne doivent pas être utilisés pour prendre des décisions entre les entités.

En quoi la compréhension du langage courant est-elle multilingue ?

Les projets de compréhension du langage courant acceptent des énoncés dans différentes langues. De plus, vous pouvez entraîner votre modèle dans une langue, et l’étendre pour effectuer des prédictions dans d’autres langues.

Exemple :

Énoncé d’entraînement (français) : Comment allez-vous ?

Intention étiquetée : message d’accueil

Énoncé d’exécution (français) : Comment ça va ?

Intention prévue : message d’accueil

En quoi la justesse de CLU est-elle meilleure que celle de LUIS ?

CLU utilise des modèles de pointe pour améliorer les performances des différents modèles Machine Learning de classification d’intentions et d’extraction d’entités.

Ces modèles sont insensibles aux variations mineures, ce qui permet d’éviter les paramètres suivants : normalisation de la ponctuation, normalisation des signes diacritiques, normalisation de la forme des mots et utilisation de toutes les données d’entraînement.

En outre, les nouveaux modèles ne prennent pas en charge les fonctionnalités de liste d’expressions, car ils n’ont plus besoin d’informations supplémentaires de l’utilisateur pour fournir des mots sémantiquement similaires pour une meilleure précision. Les modèles ont également été utilisés pour fournir une classification améliorée des intentions à l’aide de techniques de correspondance basées sur des règles qui ne sont pas nécessaires dans le nouveau paradigme de modèle. La question ci-dessous explique cela plus en détail.

Que faire si les fonctionnalités que j’utilise dans LUIS ne sont plus présentes ?

Il existe plusieurs fonctionnalités présentes dans LUIS qui ne sont plus disponibles dans LLU. Cela inclut l’ingénierie des caractéristiques, les modèles et les entités pattern.any ainsi que les entités structurées. Si vous avez des dépendances par rapport à ces fonctionnalités dans LUIS, utilisez les conseils d’aide suivants :

  • Modèles : des modèles ont été ajoutés dans LUIS pour faciliter la classification d’intentions via la définition d’énoncés de modèles d’expression régulière. Cela incluait la définition d’intentions basées sur des modèles uniquement (sans exemples d’énoncés). CLU est capable de généraliser à l’aide des modèles de pointe. Vous pouvez fournir quelques énoncés correspondant à un modèle spécifique à l’intention dans CLU. Les différents modèles sont probablement classifiés en tant qu’intention supérieure sans avoir besoin de l’énoncé de modèle du modèle. Cela simplifie le besoin de formulation de ces modèles, qui était limité dans LUIS, et offre une meilleure expérience de classification des intentions.

  • Caractéristiques de listes d’expressions : l’association de caractéristiques permet principalement de faciliter la classification des intentions en mettant en évidence les caractéristiques/éléments clés à utiliser. Cela n’est plus nécessaire, car les modèles profonds utilisés dans CLU peuvent déjà identifier les éléments inhérents à la langue. À son tour, la suppression de ces fonctionnalités n’a aucun effet sur la capacité de classification du modèle.

  • Entités structurées : la définition d’entités structurées visait principalement à permettre une analyse multiniveau des énoncés. Avec les différentes possibilités des sous-entités, LUIS avait besoin de toutes les combinaisons différentes d’entités à définir et présentées au modèle en tant qu’exemples. Dans le système CLU, ces entités structurées ne sont plus prises en charge, car les composants appris qui se chevauchent ne sont pas pris en charge. Il existe quelques approches pour gérer ces extractions structurées :

    • Extractions non ambiguës : dans la plupart des cas, la détection des entités terminales est suffisante pour comprendre quels sont les éléments nécessaires au sein d’une étendue complète. Par exemple, une entité structurée telle que Voyage, qui recouvre complètement une source et une destination (De Londres à New York ou Du domicile au travail) peut être identifiée à l’aide des intervalles individuels prédits pour la source et la destination. Leur présence sous forme de prédictions individuelles vous informe sur l’entité Voyage.
    • Extractions ambiguës : lorsque les limites de différentes sous-entités ne sont pas claires. Pour illustrer, prenez l’exemple « Je veux commander une pizza pepperoni et une pizza végétarienne de fromage supplémentaire ». Bien que les différents types de pizza et les modifications de garniture puissent être extraits, les extraire sans contexte pourrait entraîner une certaine ambiguïté quant à l’endroit où le fromage supplémentaire est ajouté. Dans ce cas, l'ampleur de l'étendue est basée sur le contexte et requiert l'utilisation de l'apprentissage automatique pour le déterminer. Pour les extractions ambiguës, vous pouvez utiliser l’une des approches suivantes :
  1. Combinez des sous-entités en différents composants d’entité au sein de la même entité.

Exemple :

Implémentation avec LUIS :

  • Commande de pizza (entité)
    • Taille (sous-entité)
    • Quantité (sous-entité)

Implémentation avec CLU :

  • Commande de pizza (entité)
    • Taille (composant d’entité de liste : petite, moyenne, grande)
    • Quantité (composant d’entité prédéfinie : nombre)

Dans CLU, vous devez étiqueter l’étendue complète de la Commande de pizza en incluant la taille et la quantité, ce qui retourne la commande de pizza avec une clé de liste pour la taille, et une valeur numérique pour la quantité, dans le même objet d’entité.

  1. Pour les problèmes plus complexes où les entités contiennent plusieurs niveaux de profondeur, vous pouvez créer un projet pour chaque niveau de profondeur dans la structure d’entité. Cela vous permet de :
  • Passer l’énoncé à chaque projet.
  • Combiner les analyses de chaque projet dans la phase qui précède CLU.

Pour obtenir un exemple détaillé de ce concept, consultez les exemples de projets de pizza disponibles sur GitHub.

Comment gérer les versions dans CLU ?

CLU enregistre les ressources de données utilisées pour entraîner votre modèle. Vous pouvez exporter les ressources d’un modèle ou les recharger dans le projet à tout moment. Les modèles se comportent donc comme des versions distinctes de votre projet.

Vous pouvez exporter vos projets CLU à l’aide de Language Studio ou par programmation, et stocker les différentes versions des ressources localement.

Pourquoi la classification de CLU est-elle différente de celle de LUIS ? Comment fonctionne la classification de None ?

CLU présente une approche différente de l’entraînement des modèles en utilisant la classification multiple par opposition à la classification binaire. Ainsi, l’interprétation des scores est différente et varie également selon les options d’entraînement. Même si vous êtes susceptible d’obtenir de meilleurs résultats, vous devez observer la différence dans les scores et déterminer un nouveau seuil pour accepter les prédictions d’intention. Vous pouvez facilement ajouter un seuil de score de confiance pour l’intention None dans les paramètres de votre projet. Cela renvoie None comme intention supérieure si l’intention supérieure n’a pas dépassé le seuil de score de confiance fourni.

Ai-je besoin de plus de données pour les modèles CLU que pour les modèles LUIS ?

Les nouveaux modèles CLU ont une meilleure compréhension sémantique du langage que les modèles LUIS. De plus, ils permettent d’effectuer des généralisations avec une réduction significative des données. Même si vous ne devez pas chercher à réduire la quantité de données dont vous disposez, vous devez pouvoir obtenir de meilleures performances et une meilleure résilience en ce qui concerne les variantes et les synonymes dans CLU par rapport à LUIS.

Si je ne migre pas mes applications LUIS, sont-elles supprimées ?

Vos applications LUIS existantes sont disponibles jusqu’au 1er octobre 2025. Après ce temps, vous ne pourrez plus utiliser ces applications, les points de terminaison de service ne fonctionneront plus et les applications seront définitivement supprimées.

Les fichiers .LU sont-ils pris en charge sur CLU ?

Seul le format JSON est pris en charge par CLU. Vous pouvez importer vos fichiers .LU vers LUIS, et les exporter au format JSON, ou vous pouvez suivre les étapes de migration ci-dessus pour votre application.

Quelles sont les limites de service de CLU ?

Pour plus d’informations, consultez l’article sur les limites du service.

Dois-je refactoriser mon code si je migre mes applications de LUIS vers CLU ?

Les objets API des applications CLU sont différents de LUIS et, par conséquent, la refactorisation du code est nécessaire.

Si vous utilisez les API de programmation et d’exécution LUIS, vous pouvez les remplacer par leurs API équivalentes.

API de création CLU : à la place des API CRUD spécifiques à LUIS pour les actions individuelles telles que ajouter un énoncé, supprimer une entité et renommer une intention, CLU propose une API d’importation qui remplace le contenu complet d’un projet en utilisant le même nom. Si votre service a utilisé des API programmatiques LUIS pour fournir une plateforme à d’autres clients, vous devez prendre en compte ce nouveau modèle de conception. Toutes les autres API, par exemple le listage des projets, l’entraînement, le déploiement et la suppression sont disponibles. Les API relatives aux actions telles que l’importation et le déploiement sont des opérations asynchrones et non synchrones comme c’est le cas dans LUIS.

API de runtime CLU : la nouvelle fonctionnalité de requête/réponse d’API inclut la plupart des mêmes paramètres, par exemple l’interrogation, la prédiction, l’intention supérieure, les intentions, les entités et leurs valeurs. L’objet de réponse CLU offre une approche plus directe. Les prédictions d’entité sont fournies en l’état dans le texte d’énoncé. Toutes les informations supplémentaires telles que la résolution ou les clés de liste sont fournies dans des paramètres supplémentaires appelés extraInformation et resolution.

Vous pouvez utiliser le kit SDK du runtime CLU en .NET ou Python pour remplacer le kit SDK du runtime LUIS. Il n’existe actuellement aucun KIT de développement logiciel (SDK) de création disponible pour l’application CLU.

En quoi les durées d’entraînement sont-elles différentes dans CLU ? En quoi l’entraînement standard est-il différent de l’entraînement avancé ?

CLU propose un entraînement standard, en anglais, dont la durée est comparable à la durée d’entraînement de LUIS. Il propose également un entraînement avancé, qui dure bien plus longtemps, car il étend l’entraînement à toutes les autres langues prises en charge. L'API de train continue d'être un processus asynchrone, et vous devez évaluer les changements dans le processus DevOps que vous employez pour votre solution.

En quoi l’expérience a-t-elle changé dans CLU par rapport à LUIS ? En quoi le cycle de vie du développement est-il différent ?

Dans LUIS, vous devez Créer-Entraîner-Tester-Publier, alors que dans CLU, vous devez Créer-Entraîner-Évaluer-Déployer-Tester.

  1. Créer : dans CLU, vous pouvez définir vos intentions, vos entités et vos énoncés avant d’effectuer l’entraînement. De plus, CLU vous permet de spécifier des données de test au fur et à mesure que vous créez l’application à utiliser pour l’évaluation du modèle. L’évaluation mesure les performances de votre modèle par rapport à vos données de test, et vous fournit des métriques de précision, de rappel et F1.
  2. Entraîner : vous créez un modèle avec un nom à chaque entraînement. Vous pouvez remplacer un modèle déjà entraîné. Vous pouvez spécifier un entraînement standard ou avancé, puis déterminer si vous souhaitez utiliser les données de test à des fins d’évaluation, ou un pourcentage des données d’entraînement à exclure de l’entraînement et à utiliser en tant que données de test. Une fois l’entraînement effectué, vous pouvez évaluer les performances de votre modèle en pratique.
  3. Déployer : une fois l’entraînement effectué et le modèle nommé, vous pouvez le déployer pour des prédictions. Un déploiement est également nommé et dispose d’un modèle affecté. Vous pouvez avoir plusieurs déploiements pour le même modèle. Vous pouvez remplacer un déploiement par un autre modèle, ou vous pouvez échanger des modèles avec d’autres déploiements dans le projet.
  4. Tester : une fois le déploiement effectué, vous pouvez l’utiliser pour des prédictions via le point de terminaison de déploiement. Vous pouvez également le tester dans le studio, dans la page Tester le déploiement.

Ce processus contraste avec celui de LUIS, où l’ID d’application est attaché à tout, et où vous déployez une version de l’application sur les emplacements de préproduction ou de production.

Cela influence les processus DevOps que vous utilisez.

CLU prend-il en charge les conteneurs ?

Non, vous ne pouvez pas exporter la CLU vers des conteneurs.

Comment mes applications LUIS sont-elles nommées en CLU après la migration ?

Tous les caractères spéciaux du nom de l’application LUIS sont supprimés. Si la longueur du nom nettoyé est supérieure à 50 caractères, les caractères supplémentaires sont supprimés. Si le nom après la suppression de caractères spéciaux est vide (par exemple, si le nom de l’application LUIS était @@), le nouveau nom n’est pas intitulé. S’il existe déjà un projet de compréhension du langage conversationnel portant le même nom, l’application LUIS migrée est ajoutée _1 pour le premier doublon et augmente de 1 pour chaque doublon suivant. Si la longueur du nouveau nom est de 50 caractères et qu’elle doit être renommée, les 1 ou 2 derniers caractères sont supprimés pour pouvoir concaténer le nombre et rester dans la limite de 50 caractères.

Migration depuis LUIS Q&A

Si vous avez des questions qui restent sans réponse dans cet article, vous pouvez envisagez de les poser dans notre conversation Microsoft Q&A.

Étapes suivantes