Compartir a través de


Migración de Language Understanding (LUIS) a reconocimiento del lenguaje conversacional (CLU)

Reconocimiento del lenguaje conversacional (CLU) es una oferta de inteligencia artificial basada en la nube de Lenguaje de Azure AI. Es la generación más reciente de Language Understanding (LUIS) y ofrece compatibilidad con aplicaciones de LUIS creadas anteriormente. CLU emplea inteligencia de aprendizaje automático de última generación para permitir a los usuarios crear un modelo de comprensión del lenguaje natural personalizado con el fin de predecir intenciones y entidades en expresiones conversacionales.

CLU ofrece las siguientes ventajas sobre LUIS:

  • Precisión mejorada con modelos de aprendizaje automático de última generación para mejorar la clasificación de intenciones y la extracción de entidades. LUIS requería más ejemplos para generalizar ciertos conceptos en intenciones y entidades, mientras que el aprendizaje automático más avanzado de CLU reduce la carga de los clientes al requerir menos datos.
  • Compatibilidad multilingüe con el aprendizaje y el entrenamiento de modelos. Puede entrenar proyectos en un idioma y predecir inmediatamente intenciones y entidades en 96 idiomas.
  • Integración fácil con diferentes proyectos de respuesta a preguntas personalizada y CLU mediante el flujo de trabajo de orquestación.
  • Posibilidad de agregar datos de prueba dentro de la experiencia mediante Language Studio y las API para la evaluación del rendimiento del modelo antes de la implementación.

Para empezar, puede usar CLU directamente o migrar la aplicación de LUIS.

Comparación entre LUIS y CLU

En la tabla siguiente se presenta una comparación en paralelo entre las características de LUIS y CLU. También se resaltan los cambios en la aplicación de LUIS después de migrar a CLU. Seleccione el concepto vinculado para más información sobre los cambios.

Características de LUIS Características de CLU Después de la migración
Entidades de aprendizaje automático estructurado y con aprendizaje automático Componentes de entidad aprendidos Las entidades de aprendizaje automático sin subentidades se transfieren como entidades CLU. Las entidades de aprendizaje automático estructurado transferirán nodos hoja (subentidades de nivel más bajo que no tienen sus propias subentidades) como entidades de CLU. El nombre de la entidad en CLU es el nombre de la subentidad concatenada con el elemento primario. Por ejemplo, Order.Size
Entidades de lista, expresión regular y precompiladas Componentes de entidad de lista, expresión regular y precompilada Las entidades de lista, expresión regular y precompiladas se transferirán como entidades en CLU con un componente de entidad rellenado basado en el tipo de entidad.
Entidades Pattern.Any No está disponible actualmente Las entidades Pattern.Any se eliminan.
Referencia cultural única para cada aplicación Los modelos multilingües permiten varios idiomas en cada proyecto. El lenguaje principal del proyecto se establece como referencia cultural de la aplicación de LUIS. El proyecto se puede entrenar para extenderse a diferentes idiomas.
Roles de entidad Los roles ya no son necesarios. Los roles de entidad se transferirán como entidades.
Configuración para: normalizar puntuación, normalizar diacríticos, normalizar formato de palabras, usar todos los datos de entrenamiento Ya no se necesita configuración. La configuración no se transfiere.
Patrones y características de listas de frases Ya no se necesitan patrones ni características de lista de frases. Los patrones y las características de la lista de frases no se transfieren.
Características de entidad Componentes de la entidad Las entidades de lista o precompiladas agregadas como características a una entidad se transfieren como componentes agregados a esa entidad. Las características de entidad no se transfieren para las intenciones.
Intenciones y expresiones Intenciones y expresiones Todas las intenciones y expresiones se transferirán. Las expresiones se etiquetarán con sus entidades transferidas.
GUID de aplicación Nombres de proyecto Se crea un proyecto para cada aplicación de migración con el nombre de la aplicación. Los caracteres especiales de los nombres de aplicación se quitan en CLU.
Control de versiones Cada vez que se realiza un entrenamiento, se crea un modelo que actúa como una versión del proyecto. Se crea un proyecto para la versión de aplicación seleccionada.
Evaluación mediante pruebas por lotes Evaluación mediante conjuntos de pruebas Se requiere agregar el conjunto de datos de prueba .
Control de acceso basado en rol (RBAC) para recursos de LUIS Control de acceso basado en rol (RBAC) disponible para los recursos de Lenguaje RBAC para recursos de lenguaje se debe agregar manualmente después de la migración.
Modo de entrenamiento único Modos de entrenamiento estándar y avanzado El entrenamiento es necesario después de la migración de la aplicación.
Dos ranuras de publicación y publicación de versiones Diez ranuras de implementación con nomenclatura personalizada La implementación es necesaria después de la migración y el entrenamiento de la aplicación.
Compatibilidad con el SDK y las API de creación de LUIS en .NET, Python, Java y Node.js API REST de creación de LUIS Para más información sobre las API de creación de CLU, consulte el artículo de inicio rápido. La refactorización es necesaria para usar las API de creación de CLU.
Compatibilidad con el SDK y las API de tiempo de ejecución de LUIS en .NET, Python, Java y Node.js API de tiempo de ejecución de CLU. Compatibilidad con el SDK de tiempo de ejecución de CLU en .NET y Python. Para más información, consulte cómo llamar a la API. La refactorización es necesaria para usar la respuesta de la API en tiempo de ejecución de CLU.

Migración de las aplicaciones de LUIS

Siga estos pasos para migrar la aplicación de LUIS mediante el portal de LUIS o la API REST.

Migración de las aplicaciones de LUIS mediante el portal de LUIS

Siga estos pasos para comenzar la migración mediante el portal de LUIS:

  1. Después de iniciar sesión en el portal de LUIS, haga clic en el botón del mensaje emergente situado en la parte superior de la pantalla para iniciar el Asistente para la migración. La migración copia las aplicaciones de LUIS seleccionadas en CLU.

    Captura de pantalla que muestra el mensaje emergente de migración en el portal de LUIS.

    La pestaña de información general sobre la migración proporciona una breve explicación de la característica de reconocimiento del lenguaje conversacional y sus ventajas. Haga clic en Next para continuar.

    Captura de pantalla que muestra la ventana de información general de la migración.

  2. Determine el recurso de Lenguaje al que quiere migrar la aplicación de LUIS. Si ya ha creado el recurso de Lenguaje, seleccione la suscripción de Azure seguida del recurso de Lenguaje y, luego, seleccione Siguiente. Si no tiene un recurso de Lenguaje, haga clic en el vínculo para crear uno. Después, seleccione el recurso y seleccione Siguiente.

    Captura de pantalla que muestra la pantalla de selección de recursos.

  3. Seleccione todas las aplicaciones de LUIS que quiera migrar y especifique cada una de sus versiones. Seleccione Siguiente. Después de seleccionar la aplicación y la versión, se le pedirá un mensaje que le informe de las características que no se transferirán desde la aplicación de LUIS.

    Nota

    El reconocimiento del lenguaje conversacional no admite caracteres especiales. Los caracteres especiales de los nombres de aplicación de LUIS seleccionados se quitan en las nuevas aplicaciones migradas. Captura de pantalla que muestra la ventana de selección de la aplicación.

  4. Revise las selecciones de recursos de Lenguaje y aplicaciones de LUIS. Seleccione Finalizar para migrar las aplicaciones.

  5. Una ventana emergente le permite realizar un seguimiento del estado de migración de las aplicaciones. Las aplicaciones que no han iniciado la migración tienen el estado No iniciado. Las aplicaciones que han comenzado a migrar tienen el estado En curso y una vez que hayan terminado de migrar su estado es Correcto. Una aplicación Failed significa que debe repetir el proceso de migración. Una vez completada la migración de todas las aplicaciones, seleccione Done.

    Captura de pantalla que muestra la ventana de progreso de la migración de la aplicación.

  6. Cuando las aplicaciones se hayan migrado, puede realizar los pasos siguientes:

Preguntas más frecuentes

¿Qué versión JSON de LUIS es compatible con CLU?

CLU admite el modelo JSON versión 7.0.0. Si el formato JSON es anterior, primero tendría que importarlo a LUIS y, luego, exportarlo desde LUIS con la versión más reciente.

¿Qué diferencias presentan las entidades en CLU?

En CLU, una sola entidad puede tener varios componentes de entidad, que son diferentes métodos de extracción. Estos componentes se combinan luego juntos mediante reglas que se pueden definir. Los componentes disponibles son:

  • Aprendidos: de forma equivalente a las entidades de aprendizaje automático en LUIS, se usan etiquetas para entrenar un modelo con aprendizaje automático a fin de predecir una entidad en función del contenido y el contexto de las etiquetas proporcionadas.
  • Lista: al igual que las entidades de lista de LUIS, los componentes de lista coinciden exactamente con un conjunto de sinónimos y se asignan de nuevo a un valor normalizado denominado clave de lista.
  • Precompilados: los componentes precompilados permiten definir una entidad con los extractores precompilados para los tipos comunes disponibles tanto en LUIS como en CLU.
  • Expresión regular: los componentes de expresión regular usan expresiones regulares para capturar patrones definidos personalizados, exactamente como las entidades de expresión regular de LUIS.

Las entidades de LUIS se transferirán como entidades del mismo nombre en CLU con los componentes equivalentes transferidos.

Después de la migración, los nodos hoja estructurados de aprendizaje automático y las subentidades de nivel inferior se transfieren al nuevo modelo CLU mientras se omiten todas las entidades primarias y las entidades de nivel superior. El nombre de la entidad es el nombre de la entidad de nivel inferior concatenado con su entidad primaria.

Ejemplo:

Entidad de LUIS:

  • Pedido de pizza
    • Topping
    • Tamaño

Entidad de LUIS migrada en CLU:

  • Pizza Order.Topping
  • Tamaño de pedido de pizza

Tampoco puede etiquetar 2 entidades diferentes en CLU para el mismo intervalo de caracteres. Los componentes aprendidos de CLU son mutuamente excluyentes y no proporcionan predicciones superpuestas solo para los componentes aprendidos. Al migrar la aplicación de LUIS, las etiquetas de entidad que se superponen conservan la etiqueta más larga y omiten cualquier otra.

Para más información sobre los componentes de entidad, consulte Componentes de entidad.

¿Cómo se transfieren los roles de entidad a CLU?

Los roles se transferirán como entidades distintas junto con sus expresiones etiquetadas. El tipo de entidad de cada rol determina qué componente de entidad se rellena. Por ejemplo, un rol de entidad de lista se transferirá como una entidad con el mismo nombre que el rol, con un componente de lista rellenado.

¿Cómo se transfieren las características de entidad en CLU?

Las entidades usadas como características en las intenciones no se transferirán. Las entidades utilizadas como atributos para otras entidades completan el componente relevante de la entidad. Por ejemplo, si se usó una entidad de lista denominada SizeList como característica para una entidad de aprendizaje automático denominada Size, la entidad Size se transfiere a CLU con los valores de lista de SizeList agregados a su componente de lista. Lo mismo se aplica a las entidades precompiladas y de expresión regular.

¿Qué diferencias presentan las puntuaciones de confianza de las entidades en CLU?

Cualquier entidad extraída tiene una puntuación de confianza de 100% y, por tanto, las puntuaciones de confianza de entidad no deben usarse para tomar decisiones entre entidades.

¿Cómo es el reconocimiento del lenguaje conversacional multilingüe?

Los proyectos de reconocimiento del lenguaje conversacional aceptan expresiones en distintos idiomas. Además, puede entrenar el modelo en un idioma y ampliarlo para realizar predicciones en otros idiomas.

Ejemplo:

Expresión de entrenamiento (inglés): How are you?

Intención etiquetada: Saludo

Expresión en tiempo de ejecución (francés): Comment ça va?

Intención prevista: Saludo

¿Por qué es mejor la precisión de CLU que la de LUIS?

CLU usa modelos de última generación para mejorar el rendimiento del aprendizaje automático de diferentes modelos de clasificación de intenciones y extracción de entidades.

Estos modelos no distinguen variaciones menores, lo que elimina la necesidad de la siguiente configuración: normalizar puntuación, normalizar diacríticos, normalizar formato de palabra y usar todos los datos de entrenamiento.

Además, los nuevos modelos no admiten características de lista de frases, ya que ya no requieren información complementaria del usuario para proporcionar palabras semánticamente similares para mejorar la precisión. Los patrones también se usaron para proporcionar una clasificación de intenciones mejorada mediante técnicas de coincidencia basadas en reglas que no son necesarias en el nuevo paradigma del modelo. En la siguiente pregunta se explica este aspecto con más detalle.

¿Qué hago si las características que estoy usando en LUIS ya no están presentes?

Hay varias características que estaban presentes en LUIS que ya no están disponibles en CLU. Por ejemplo, la posibilidad de realizar ingeniería de características, tener patrones y entidades pattern.any, así como entidades estructuradas. Si tenía dependencias de estas características en LUIS, use la guía siguiente:

  • Patrones: los patrones se agregaron en LUIS para ayudar a la clasificación de intenciones mediante la definición de expresiones plantilla de expresiones regulares. Esto incluía la posibilidad de definir intenciones solo de patrón (sin ejemplos de expresiones). CLU es capaz de generalizar con los modelos de última generación. Puede proporcionar algunas expresiones que coincidan con un patrón específico a la intención en CLU y es probable que se clasifiquen los distintos patrones como la intención principal sin necesidad de la expresión del patrón plantilla. De esta forma, se simplifica el requisito de formular estos patrones, que era limitado en LUIS, y se proporciona una mejor experiencia de clasificación de intenciones.

  • Características de lista de frases: la posibilidad de asociar características se produjo principalmente para ayudar a la clasificación de intenciones al resaltar los elementos o características principales que se usarían. Esto ya no es necesario, ya que los modelos profundos usados en CLU ya poseen la capacidad de identificar los elementos inherentes al idioma. A su vez, quitar estas características no tiene ningún efecto en la capacidad de clasificación del modelo.

  • Entidades estructuradas: la posibilidad de definir entidades estructuradas era principalmente para permitir el análisis multinivel de expresiones. Con todas las distintas posibilidades de las subentidades, LUIS necesitaba que todas las diferentes combinaciones de entidades fueran definidas y presentadas al modelo como ejemplos. En CLU, estas entidades estructuradas ya no se admiten, ya que no se admiten componentes aprendidos superpuestos. Hay algunos enfoques posibles para controlar estas extracciones estructuradas:

    • Extracciones no ambiguas: en la mayoría de los casos, la detección de las entidades hoja es suficiente para comprender los elementos necesarios dentro de un intervalo completo. Por ejemplo, una entidad estructurada, como Trip, que abarca completamente un origen y un destino (London to New York o Home to work) se puede identificar con los intervalos individuales previstos para el origen y el destino. Su presencia como predicciones individuales le informaría de la entidad Trip.
    • Extracciones ambiguas: cuando los límites de diferentes subentidades no están claros. Para ilustrarlo, tome el ejemplo "Quiero pedir una pizza pepperoni y una pizza vegetariana de queso adicional". Aunque se pueden extraer los diferentes tipos de pizza y las modificaciones de ingredientes, si se extraen sin contexto, habría cierto grado de ambigüedad sobre dónde se añade el queso extra. En este caso, la extensión del intervalo se basa en el contexto y requeriría ml para determinarlo. En las extracciones ambiguas, puede usar uno de los enfoques siguientes:
  1. Combine subentidades en distintos componentes de entidad dentro de la misma entidad.

Ejemplo:

Implementación de LUIS:

  • Pizza Order (entidad)
    • Size (subentidad)
    • Quantity (subentidad)

Implementación de CLU:

  • Pizza Order (entidad)
    • Size (componente de entidad de lista: small, medium, large)
    • Quantity (componente de entidad precompilado: number)

En CLU, etiquetaría el intervalo completo de Pizza Order, incluidos el tamaño y la cantidad, lo que devolvería el pedido de pizza con una clave de lista para el tamaño y un valor numérico para la cantidad en el mismo objeto de entidad.

  1. En el caso de problemas más complejos en los que las entidades contienen varios niveles de profundidad, puede crear un proyecto para cada uno en la estructura de entidades. Esto le ofrece la opción de:
  • Pasar la expresión a cada proyecto.
  • Combinar los análisis de cada proyecto en la etapa que precede a CLU.

Para ver un ejemplo detallado sobre este concepto, consulte los proyectos de ejemplo de pizza disponibles en GitHub.

¿Cómo se administran las versiones en CLU?

CLU guarda los recursos de datos usados para entrenar el modelo. Puede exportar los recursos de un modelo o volver a cargarlos en el proyecto en cualquier momento. Por lo tanto, los modelos funcionan como versiones diferentes del proyecto.

Puede exportar los proyectos de CLU con Language Studio o mediante programación y almacenar diferentes versiones de los recursos localmente.

¿Por qué la clasificación de CLU es diferente de la de LUIS? ¿Cómo funciona la ausencia de clasificación?

CLU presenta un enfoque diferente para entrenar los modelos que se basa en la clasificación múltiple en lugar de la clasificación binaria. Como resultado, la interpretación de las puntuaciones es diferente y también varía entre las opciones de entrenamiento. Aunque es probable que obtenga mejores resultados, debe observar la diferencia en las puntuaciones y determinar un nuevo umbral para aceptar predicciones de intención. Puede agregar fácilmente un umbral de puntuación de confianza para None intent en la configuración del proyecto. Esto devuelve None como la intención superior si la intención superior no superó el umbral de puntuación de confianza proporcionado.

¿Necesito más datos para los modelos de CLU que para los de LUIS?

Los nuevos modelos de CLU tienen un mejor reconocimiento semántico del lenguaje que en LUIS y, a su vez, ayudan a que los modelos se generalicen con una reducción significativa de datos. Aunque el objetivo no debe ser reducir la cantidad de datos que tiene, cabría esperar un mejor rendimiento y resistencia a las variaciones y sinónimos en CLU que en LUIS.

Si no migro mis aplicaciones de LUIS, ¿se eliminan?

Las aplicaciones de LUIS existentes están disponibles hasta el 1 de octubre de 2025. Después de ese tiempo ya no podrá usar esas aplicaciones, los puntos de conexión de servicio ya no funcionarán y las aplicaciones se eliminarán permanentemente.

¿Los archivos .LU son compatibles con CLU?

CLU solo admite el formato JSON. Puede importar los archivos .LU a LUIS y exportarlos en formato JSON, o bien puede seguir los pasos de migración anteriores con la aplicación.

¿Cuáles son los límites de servicio de CLU?

Para más información, consulte el artículo sobre límites del servicio.

¿Tengo que refactorizar el código si migro mis aplicaciones de LUIS a CLU?

Los objetos de API de las aplicaciones CLU son diferentes de LUIS y, por tanto, es necesario refactorizar código.

Si usa las API programáticas y de ejecución de LUIS, puede reemplazarlas por sus API equivalentes.

API de creación de CLU: en lugar de las API CRUD específicas de LUIS para acciones individuales, como agregar expresión, eliminar entidad y cambiar el nombre de la intención, CLU ofrece una API de importación que reemplaza el contenido completo de un proyecto con el mismo nombre. Si el servicio usó las API de programación de LUIS para proporcionar una plataforma para otros clientes, debe tener en cuenta este nuevo paradigma de diseño. Todas las demás API, como: enumeración de proyectos, entrenamiento, implementación y eliminación están disponibles. Las API para acciones como importar e implementar son operaciones asincrónicas en lugar de sincrónicas como lo eran en LUIS.

API de tiempo de ejecución de CLU: la nueva solicitud y respuesta de API incluye muchos de los mismos parámetros, como: query, prediction, top intent, intents, entities y sus valores. El objeto de respuesta de CLU ofrece un enfoque más sencillo. Las predicciones de entidad se proporcionan como están dentro del texto de la expresión, y cualquier información adicional, como la resolución o las claves de lista, se proporcionan en parámetros adicionales llamados extraInformation y resolution.

Puede usar el SDK de tiempo de ejecución de CLU para .NET o Python para reemplazar el SDK de tiempo de ejecución de LUIS. Actualmente no hay ningún SDK de creación disponible para CLU.

¿Qué diferencias presentan los tiempos de entrenamiento en CLU? ¿En qué se diferencia el entrenamiento estándar del entrenamiento avanzado?

CLU ofrece entrenamiento estándar, que entrena y aprende en inglés y es comparable al tiempo de entrenamiento de LUIS. También ofrece entrenamiento avanzado, que tarda mucho más tiempo, ya que amplía el entrenamiento a todos los demás idiomas admitidos. La API de entrenamiento seguirá siendo un proceso asincrónico, y deberá evaluar el cambio en el proceso de DevOps que emplea para la solución.

¿Cómo ha cambiado la experiencia en CLU en comparación con LUIS? ¿Qué diferencias presenta el ciclo de vida de desarrollo?

En LUIS, la secuencia de acciones sería compilar, entrenar, probar y publicar, mientras que en CLU es compilar, entrenar, evaluar, implementar y probar.

  1. Compilar: en CLU, puede definir sus intenciones, entidades y expresiones antes del entrenamiento. CLU ofrece además la posibilidad de especificar datos de prueba a medida que se compila la aplicación que se van a usar para la evaluación del modelo. La evaluación valora el rendimiento del modelo sobre los datos de prueba y proporciona métricas de precisión, recuperación y F1.
  2. Entrenar: puede crear un modelo con un nombre cada vez que lo entrene. También puede sobrescribir un modelo ya entrenado. Puede especificar entrenamiento estándar o avanzado y determinar si quiere usar los datos de prueba para la evaluación o dejar un porcentaje de los datos fuera del entrenamiento y usarlos como datos de prueba. Una vez completado el entrenamiento, puede evaluar el funcionamiento del modelo en el exterior.
  3. Implementar: después de que ha finalizado el entrenamiento y tiene un modelo con un nombre, se puede implementar para realizar predicciones. La implementación también recibe un nombre y tiene un modelo asignado. Podría tener varias implementaciones para el mismo modelo. Una implementación se puede sobrescribir con un modelo diferente o puede intercambiar modelos con otras implementaciones del proyecto.
  4. Probar: una vez completada la implementación, puede usarla para realizar predicciones mediante el punto de conexión de implementación. También puede probarla en el estudio en la página de implementación de pruebas.

Este proceso es diferente en LUIS, donde el identificador de aplicación se adjunta a todo, y se implementa una versión de la aplicación en las ranuras de ensayo o de producción.

Esto influye en los procesos de DevOps que usa.

¿CLU tiene compatibilidad con contenedores?

No, no se puede exportar CLU a contenedores.

¿Cómo se denominan mis aplicaciones de LUIS en CLU después de la migración?

Se quitan los caracteres especiales del nombre de la aplicación de LUIS. Si la longitud del nombre despejado es mayor que 50 caracteres, se eliminan los caracteres adicionales. Si el nombre después de quitar caracteres especiales está vacío (por ejemplo, si el nombre de la aplicación de LUIS era @@), el nuevo nombre no tiene título. Si ya hay un proyecto de reconocimiento del lenguaje conversacional con el mismo nombre, la aplicación de LUIS migrada se anexa con _1 para el primer duplicado y aumenta en 1 para cada duplicado posterior. En caso de que la longitud del nuevo nombre sea de 50 caracteres y se debe cambiar el nombre, se quitan los últimos 1 o 2 caracteres para poder concatenar el número y seguir estando dentro del límite de 50 caracteres.

Preguntas y respuestas sobre la migración desde LUIS

Si tiene alguna pregunta que no se haya respondido en este artículo, puede dejarla en nuestro hilo de preguntas y respuestas de Microsoft.

Pasos siguientes