Creación y extracción de intenciones utilizando modelos de lenguaje grandes

En un artículo anterior, argumenté que se debe seguir un enfoque centrado en los datos para diseñar datos de entrenamiento de NLU. En este artículo, considero la creación y el uso de intenciones en el contexto de modelos de lenguaje extenso (LLM)

Introducción
En un artículo anterior razoné que, al igual que con la IA en general, los modelos NLU también exigen un enfoque centrado en los datos para el diseño NLU . Mejorar el rendimiento de la NLU exige que el enfoque cambie del modelo de la NLU a los datos de entrenamiento.
Es necesario cumplir con las mejores prácticas de diseño de NLU , donde los datos conversacionales no estructurados existentes se convierten en datos de entrenamiento de NLU estructurados.
Idealmente, NLU Design no debería hacer uso de datos sintéticos o generados, sino de conversaciones reales con los clientes.
La siguiente imagen muestra el proceso que se puede seguir para un enfoque centrado en datos para la detección, creación y uso de intenciones. Mirando con incrustaciones …

1️⃣ incrustaciones
El primer paso es usar datos de conversación o de declaraciones de usuario para crear incrustaciones, esencialmente grupos de oraciones semánticamente similares.
Cada una de estas agrupaciones constituye una intención, cada grupo debe recibir una etiqueta que es el "nombre de la intención".
Lea el artículo a continuación para obtener una descripción detallada del primer paso. ⬇️
Implementación de IA centrada en datos para modelos NLU⭐️ Sígueme en LinkedIn para obtener actualizaciones sobre IA conversacional ⭐️
2️⃣ Crear clasificaciones
Una vez que tengamos las agrupaciones/clústeres de datos de entrenamiento, podemos comenzar el proceso de creación de clasificaciones o intenciones. Los términos "clases" e "intenciones" se utilizarán indistintamente.
A los efectos de este artículo, utilizaré Cohere LLM.
La clasificación se puede realizar a través del punto final de publicación de clasificación de Cohere:
https://api.cohere.ai/classify
El cuerpo de entrenamiento del texto se clasifica en una de varias clases/intenciones. El punto final solo necesita algunos ejemplos para crear un clasificador que aproveche un modelo generativo.
El fragmento de cuaderno de Colab a continuación muestra cómo instalar el SDK de Cohere y cómo crear un cliente. Necesitará una clave API que puede obtener de forma gratuita creando un inicio de sesión en el sitio web de Cohere .

Por razones de optimización y velocidad, lo mejor es hacer uso de un modelo pequeño.
Una vez que haya instalado el SDK y creado su Cliente, ejecute este código ⬇️ para crear las intenciones.
Cada uno con ejemplos de entrenamiento...
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
⭐️ Sígueme en LinkedIn para obtener actualizaciones sobre IA conversacional ⭐️
3️⃣ Clasificación de extractos
El siguiente texto muestra las consultas, de forma análoga a las declaraciones de usuario enviadas al agente conversacional...
inputs=[" Am I still able to return my order?",
"When can I expect my package?",
"Do you ship overseas?",
]
( 1 ) Se pueden enviar las expresiones de entrada o consulta
( 2 ) Se extraen las Clasificaciones
( 3 ) se imprimen los resultados
Una parte del cuaderno de Colab que muestra los pasos 1, 2 y 3 ⬇️

Los resultados:
[
"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>
]
Las intenciones a menudo se descuidan y se ven como un paso insignificante en la creación de un agente conversacional. Marcos como Amelia, Oracle Digital Assistant y Yellow AI ofrecen frases de entrenamiento generadas sintéticamente. Este enfoque puede correr el peligro de trivializar el proceso de creación de intenciones.
Los datos de entrenamiento sintéticos pueden ser suficientes como medida inicial, pero no servirán bien para crear una solución sostenible a más largo plazo. Las mejores prácticas de diseño y datos de NLU deben cumplirse desde el principio.
Además, estas frases de entrenamiento sintéticas se basan en intentos y nombres de intentos a menudo "pensados" que probablemente no estén alineados con los intentos de los usuarios existentes. Y definitivamente no abordar la cola larga de la distribución de intenciones .
Es hora de que comencemos a considerar las intenciones como clasificaciones de las conversaciones existentes con los clientes; se requiere un proceso de desarrollo impulsado por la intención para implementaciones exitosas de asistentes digitales.

⭐️ Sígueme en LinkedIn para obtener actualizaciones sobre IA conversacional ⭐️

Actualmente soy el Evangelista Jefe @ HumanFirst . Exploro y escribo sobre todas las cosas en la intersección de la IA y el lenguaje; que van desde LLM , Chatbots , Voicebots , Frameworks de desarrollo, espacios latentes centrados en datos y más.




