Création et extraction d'intentions à l'aide de grands modèles de langage

Dans un article précédent, j'ai soutenu qu'une approche centrée sur les données devrait être suivie pour l'ingénierie des données de formation NLU. Dans cet article, j'envisage de créer et d'utiliser des intentions dans le contexte des grands modèles de langage (LLM)

Introduction
Dans un article précédent, j'ai estimé que, comme pour l'IA en général, les modèles NLU exigent également une approche centrée sur les données pour la conception NLU . L'amélioration des performances NLU exige que l'attention se déplace du modèle NLU vers les données d'apprentissage.
Les meilleures pratiques de conception NLU doivent être respectées, où les données conversationnelles non structurées existantes sont converties en données de formation NLU structurées.
Idéalement, NLU Design ne devrait pas utiliser de données synthétiques ou générées, mais de véritables conversations avec les clients.
L'image ci-dessous montre le processus qui peut être suivi pour une approche centrée sur les données pour la détection, la création et l'utilisation de l'intention. Regarder avec Embeddings …

1️⃣ Incrustations
La première étape consiste à utiliser des données de conversation ou d'énoncé de l'utilisateur pour créer des intégrations, essentiellement des groupes de phrases sémantiquement similaires.
Ces regroupements constituent chacun une intention, chaque groupe doit recevoir une étiquette qui est le "nom de l'intention".
Lisez l'article ci-dessous pour une description détaillée de la première étape. ⬇️
Implémentation de l'IA centrée sur les données pour les modèles NLU⭐️ Veuillez me suivre sur LinkedIn pour les mises à jour sur l'IA conversationnelle ⭐️
2️⃣ Créer des classements
Une fois que nous avons les groupements/groupes de données d'entraînement, nous pouvons commencer le processus de création de classifications ou d'intentions. Les termes « classes » et « intentions » seront utilisés de manière interchangeable.
Pour les besoins de cet article, je vais utiliser le Cohere LLM.
La classification peut être effectuée via le point de terminaison Cohere classify post :
https://api.cohere.ai/classify
Le corps de texte de formation est classé dans l'une des plusieurs classes/intentions. Le point de terminaison n'a besoin que de quelques exemples pour créer un classificateur exploitant un modèle génératif.
L' extrait de bloc-notes Colab ci-dessous montre comment installer le SDK Cohere et comment créer un client. Vous aurez besoin d'une clé API que vous pouvez obtenir gratuitement en créant un identifiant sur le site Cohere .

Pour des raisons d'optimisation et de rapidité, il est préférable d'utiliser un petit modèle.
Une fois que vous avez installé le SDK et créé votre client, exécutez ce code ⬇️ pour créer les intents.
Chacun avec des exemples de formation…
from cohere.classify import Example
examples = [
Example("Do you offer same day shipping?", "Shipping and handling policy"),
Example("Can you ship to Italy?", "Shipping and handling policy"),
Example("How long does shipping take?", "Shipping and handling policy"),
Example("Can I buy online and pick up in store?", "Shipping and handling policy"),
Example("What are your shipping options?", "Shipping and handling policy"),
Example("My order arrived damaged, can I get a refund?", "Start return or exchange"),
Example("You sent me the wrong item", "Start return or exchange"),
Example("I want to exchange my item for another colour", "Start return or exchange"),
Example("I ordered something and it wasn't what I expected. Can I return it?", "Start return or exchange"),
Example("What's your return policy?", "Start return or exchange"),
Example("Where's my package?", "Track order"),
Example("When will my order arrive?", "Track order"),
Example("What's my shipping number?", "Track order"),
Example("Which carrier is my package with?", "Track order"),
Example("Is my package delayed?", "Track order")
]
Shipping and handling policy
Start return or exchange
Track order
⭐️ Veuillez me suivre sur LinkedIn pour les mises à jour sur l'IA conversationnelle ⭐️
3️⃣ Extraire la classification
Le texte ci-dessous montre les requêtes, analogues aux énoncés de l'utilisateur soumis à l'agent conversationnel…
inputs=[" Am I still able to return my order?",
"When can I expect my package?",
"Do you ship overseas?",
]
( 1 ) Les énoncés d'entrée ou de requête peuvent être soumis
( 2 ) Les classifications sont extraites
( 3 ) les résultats sont imprimés
Une partie du notebook Colab montrant les étapes 1, 2 et 3 ⬇️

Les résultats:
[
"Classification<prediction":"Start return or exchange",
"confidence":0.9900205>,
"Classification<prediction":"Track order",
"confidence":0.99867964>,
"Classification<prediction":"Shipping and handling policy",
"confidence":0.9982495>
]
Les intentions sont souvent négligées et considérées comme une étape insignifiante dans la création d'un agent conversationnel. Des frameworks comme Amelia, Oracle Digital Assistant et Yellow AI proposent des phrases d'entraînement générées synthétiquement. Cette approche peut courir le danger de banaliser le processus de création d'intention.
Les données de formation synthétiques peuvent suffire comme mesure de démarrage, mais ne serviront pas bien à créer une solution durable à plus long terme. La conception NLU et les meilleures pratiques en matière de données doivent être respectées dès le départ.
De plus, ces phrases d'entraînement synthétiques sont basées sur des intentions et des noms d'intention souvent « pensés » qui ne sont très probablement pas alignés sur les intentions existantes de l'utilisateur. Et certainement pas en abordant la longue traîne de la distribution d'intention .
Il est temps que nous commencions à considérer les intentions comme des classifications des conversations client existantes ; un processus de développement axé sur l'intention est nécessaire pour des déploiements d'assistants numériques réussis.

⭐️ Veuillez me suivre sur LinkedIn pour les mises à jour sur l'IA conversationnelle ⭐️

Je suis actuellement l' évangéliste en chef @ HumanFirst . J'explore et j'écris sur tout ce qui se situe à l'intersection de l'IA et du langage ; allant des LLM , Chatbots , Voicebots , Frameworks de développement, espaces latents centrés sur les données et plus encore.




