Mejora Amazon Lex con características de preguntas frecuentes conversacionales utilizando LLMs

Amazon Lex mejora con características de preguntas frecuentes conversacionales mediante LLMs.

Amazon Lex es un servicio que te permite construir rápidamente y fácilmente bots conversacionales (“chatbots”), agentes virtuales y sistemas de respuesta de voz interactiva (IVR) para aplicaciones como Amazon Connect.

La inteligencia artificial (IA) y el aprendizaje automático (ML) han sido un enfoque para Amazon durante más de 20 años, y muchas de las capacidades que los clientes utilizan con Amazon son impulsadas por ML. Hoy en día, los modelos de lenguaje grandes (LLMs) están transformando la forma en que los desarrolladores y las empresas resuelven desafíos históricamente complejos relacionados con la comprensión del lenguaje natural (NLU). Recientemente anunciamos Amazon Bedrock, que democratiza el acceso al Modelo Fundacional para que los desarrolladores puedan construir y escalar fácilmente aplicaciones basadas en IA generativa utilizando herramientas y capacidades familiares de AWS. Uno de los desafíos a los que se enfrentan las empresas es incorporar su conocimiento empresarial en los LLM para ofrecer respuestas precisas y relevantes. Cuando se aprovechan de manera efectiva, las bases de conocimiento empresarial se pueden utilizar para ofrecer experiencias de autoservicio y asistencia personalizada, brindando información que ayuda a los clientes a resolver problemas de forma independiente y/o complementar el conocimiento de un agente. Hoy en día, un desarrollador de bots puede mejorar las experiencias de autoservicio sin utilizar LLM de dos formas. Primero, creando intenciones, ejemplos de frases y respuestas, cubriendo así todas las preguntas anticipadas de los usuarios dentro de un bot de Amazon Lex. Segundo, los desarrolladores también pueden integrar bots con soluciones de búsqueda, que pueden indexar documentos almacenados en una amplia gama de repositorios y encontrar el documento más relevante para responder la pregunta del cliente. Estos métodos son efectivos, pero requieren recursos de desarrollo, lo que dificulta el inicio.

Uno de los beneficios ofrecidos por los LLM es la capacidad de crear experiencias de autoservicio conversacionales relevantes y atractivas. Lo hacen aprovechando la base de conocimiento(s) empresarial(es) y brindando respuestas más precisas y contextuales. Esta publicación del blog presenta una solución poderosa para mejorar Amazon Lex con funciones de preguntas frecuentes (FAQ) basadas en LLM utilizando Retrieval Augmented Generation (RAG). Revisaremos cómo el enfoque RAG mejora las respuestas de preguntas frecuentes de Amazon Lex utilizando las fuentes de datos de su empresa. Además, también demostraremos la integración de Amazon Lex con LlamaIndex, que es un marco de datos de código abierto que proporciona flexibilidad de origen de conocimiento y formato al desarrollador de bots. A medida que un desarrollador de bots gana confianza en el uso de LlamaIndex para explorar la integración de LLM, puede escalar aún más la capacidad de Amazon Lex. También pueden utilizar servicios de búsqueda empresarial como Amazon Kendra, que está integrado nativamente con Amazon Lex.

En esta solución, mostramos la aplicación práctica de un chatbot de Amazon Lex con mejora RAG basada en LLM. Utilizamos el caso de uso de soporte al cliente de Zappos como ejemplo para demostrar la efectividad de esta solución, que ofrece una experiencia de FAQ mejorada (con LLM), en lugar de dirigirlos a un fallback (predeterminado, sin LLM).

Resumen de la solución

RAG combina las fortalezas de los enfoques tradicionales basados en recuperación y los enfoques basados en IA generativa para sistemas de preguntas y respuestas. Esta metodología aprovecha el poder de los modelos de lenguaje grandes, como Amazon Titan o modelos de código abierto (por ejemplo, Falcon), para realizar tareas generativas en sistemas de recuperación. También tiene en cuenta el contexto semántico de los documentos almacenados de manera más efectiva y eficiente.

RAG comienza con un paso inicial de recuperación para encontrar documentos relevantes de una colección basándose en la consulta del usuario. Luego utiliza un modelo de lenguaje para generar una respuesta considerando tanto los documentos recuperados como la consulta original. Al integrar RAG en Amazon Lex, podemos proporcionar respuestas precisas y completas a las consultas de los usuarios, lo que resulta en una experiencia de usuario más atractiva y satisfactoria.

El enfoque RAG requiere la ingestión de documentos para que se puedan crear incrustaciones que permitan la búsqueda basada en LLM. El siguiente diagrama muestra cómo el proceso de ingestión crea las incrustaciones que luego son utilizadas por el chatbot durante el fallback para responder la pregunta del cliente.

Con esta arquitectura de solución, debes elegir el LLM más adecuado para tu caso de uso. También ofrece una opción de punto de conexión de inferencia entre Amazon Bedrock (en versión de vista previa limitada) y modelos alojados en Amazon SageMaker JumpStart, ofreciendo una mayor flexibilidad de LLM adicional.

El documento se carga en un bucket de Amazon Simple Storage Service (Amazon S3). El bucket de S3 tiene un escuchador de eventos adjunto que invoca una función de AWS Lambda cuando hay cambios en el bucket. El escuchador de eventos ingiere el nuevo documento y coloca las incrustaciones en otro bucket de S3. Las incrustaciones son luego utilizadas por la implementación de RAG en el bot de Amazon Lex durante la intención de fallback para responder la pregunta del cliente. El siguiente diagrama muestra la arquitectura de cómo se puede mejorar un bot de preguntas frecuentes dentro de Lex con LLM y RAG.

Veamos cómo podemos integrar RAG basado en LlamaIndex en un bot de Amazon Lex. Proporcionamos ejemplos de código y una importación de AWS Cloud Development Kit (AWS CDK) para ayudarte a configurar la integración. Puedes encontrar los ejemplos de código en nuestro repositorio de GitHub. Las siguientes secciones ofrecen una guía paso a paso para ayudarte a configurar el entorno e implementar los recursos necesarios.

Cómo funciona RAG con Amazon Lex

El flujo de RAG implica un proceso iterativo donde el componente de recuperación obtiene pasajes relevantes, la pregunta y los pasajes ayudan a construir la indicación, y el componente de generación produce una respuesta. Esta combinación de técnicas de recuperación y generación permite que el modelo RAG aproveche las fortalezas de ambos enfoques, proporcionando respuestas precisas y contextualmente apropiadas a las preguntas de los usuarios. El flujo de trabajo proporciona las siguientes capacidades:

  • Motor de recuperación: El modelo RAG comienza con un componente de recuperación responsable de obtener documentos relevantes de un corpus grande. Este componente utiliza típicamente una técnica de recuperación de información como TF-IDF o BM25 para clasificar y seleccionar documentos que probablemente contengan la respuesta a una pregunta determinada. El recuperador escanea el corpus de documentos y recupera un conjunto de pasajes relevantes.
  • Ayuda para la indicación: Después de que el recuperador ha identificado los pasajes relevantes, el modelo RAG pasa a la creación de la indicación. La indicación es una combinación de la pregunta y los pasajes recuperados, que sirve como contexto adicional para la indicación y se utiliza como entrada para el componente de generación. Para crear la indicación, el modelo suele complementar la pregunta con los pasajes seleccionados en un formato específico.
  • Generación de respuesta: La indicación, que consta de la pregunta y los pasajes relevantes, se introduce en el componente de generación del modelo RAG. El componente de generación suele ser un modelo de lenguaje capaz de razonar a través de la indicación para generar una respuesta coherente y relevante.
  • Respuesta final: Por último, el modelo RAG selecciona la respuesta de mayor clasificación como salida y la presenta como respuesta a la pregunta original. La respuesta seleccionada puede ser postprocesada o formateada según sea necesario antes de ser devuelta al usuario. Además, la solución permite filtrar la respuesta generada si los resultados de la recuperación tienen una puntuación de confianza baja, lo que indica que probablemente se encuentra fuera de la distribución (OOD).

LlamaIndex: Un marco de datos de código abierto para aplicaciones basadas en LLM

En esta publicación, demostramos la solución RAG basada en LlamaIndex. LlamaIndex es un marco de datos de código abierto diseñado específicamente para facilitar aplicaciones basadas en LLM. Ofrece una solución sólida y escalable para gestionar colecciones de documentos en diferentes formatos. Con LlamaIndex, los desarrolladores de bots pueden integrar fácilmente capacidades de preguntas y respuestas basadas en LLM en sus aplicaciones, eliminando las complejidades asociadas con la gestión de soluciones adaptadas a colecciones de documentos a gran escala. Además, este enfoque resulta rentable para repositorios de documentos de menor tamaño.

Prerrequisitos

Debes tener los siguientes prerrequisitos:

  • Una cuenta de AWS
  • Un usuario de IAM de AWS y permisos de rol para acceder a lo siguiente:
    • Amazon Lex
    • Lambda
    • Amazon SageMaker
    • Un bucket de S3
  • El CDK de AWS instalado

Configura tu entorno de desarrollo

Los principales paquetes de terceros requeridos son llama_index y sagemaker sdk. Sigue los comandos especificados en el README de nuestro repositorio de GitHub para configurar correctamente tu entorno.

Implementa los recursos necesarios

Este paso implica la creación de un bot de Amazon Lex, buckets de S3 y un punto de enlace de SageMaker. Además, debes crear una imagen de Docker en el directorio de imágenes de Docker y subir las imágenes a Amazon Elastic Container Registry (Amazon ECR) para que pueda ejecutarse en Lambda. Sigue los comandos especificados en el README de nuestro repositorio de GitHub para implementar los servicios.

En este paso, demostramos el hospedaje de LLM a través de los contenedores de aprendizaje profundo de SageMaker. Ajusta la configuración según tus necesidades de cómputo:

  • Modelo: Para encontrar un modelo que cumpla con tus requisitos, puedes explorar recursos como el repositorio de modelos de Hugging Face. Ofrece una variedad de modelos como Falcon 7B o Flan-T5-XXL. Además, puedes encontrar información detallada sobre varias arquitecturas de modelos admitidas oficialmente, lo que te ayuda a tomar una decisión informada. Para obtener más información sobre los diferentes tipos de modelos, consulta las arquitecturas optimizadas.
  • Punto de enlace de inferencia del modelo: Define la ruta del modelo (por ejemplo, Falcon 7B), elige tu tipo de instancia (por ejemplo, g5.4xlarge) y utiliza cuantización (por ejemplo, cuantización int-8).Nota: Esta solución te proporciona la flexibilidad de elegir otro punto de enlace de inferencia del modelo. También puedes usar Amazon Bedrock, que proporciona acceso a otros LLM como Amazon Titan. Nota: Esta solución te proporciona la flexibilidad de elegir otro punto de enlace de inferencia del modelo. También puedes usar Amazon Bedrock, que proporciona acceso a otros LLM como Amazon Titan.

Configura tu índice de documentos a través de LlamaIndex

Para configurar tu índice de documentos, primero carga los datos de tus documentos. Suponemos que tienes la fuente de tu contenido de preguntas frecuentes, como un archivo PDF o de texto.

Después de cargar los datos del documento, el sistema LlamaIndex iniciará automáticamente el proceso de creación del índice de documentos. Esta tarea la realiza una función Lambda, que genera el índice y lo guarda en un bucket de S3.

Para habilitar la recuperación eficiente de información relevante, configura el recuperador de documentos utilizando el Motor de Consulta del Retriever de LlamaIndex. Este motor ofrece varias opciones de personalización, como las siguientes:

  • Modelos de embedding – Puedes elegir tu modelo de embedding, como el embedding de Hugging Face.
  • Límite de confianza – Especifica un umbral de límite de confianza para determinar la calidad de los resultados de recuperación. Si la puntuación de confianza cae por debajo de este umbral, puedes optar por proporcionar respuestas fuera de alcance, indicando que la consulta está más allá del alcance de los documentos indexados.

Prueba la integración

Define la definición de tu bot con un intent de fallback y utiliza la consola de Amazon Lex para probar tus solicitudes de preguntas frecuentes. Para obtener más detalles, consulta el repositorio de GitHub. La siguiente captura de pantalla muestra un ejemplo de conversación con el bot.

Consejos para mejorar la eficiencia de tu bot

Los siguientes consejos podrían mejorar aún más la eficiencia de tu bot:

  • Almacenamiento del índice – Almacena tu índice en un bucket de S3 o en un servicio con capacidades de base de datos de vectores como Amazon OpenSearch. Al utilizar soluciones de almacenamiento basadas en la nube, puedes mejorar la accesibilidad y escalabilidad de tu índice, lo que se traduce en tiempos de recuperación más rápidos y un mejor rendimiento general. Además, consulta esta publicación de blog para obtener un bot de Amazon Lex que utiliza una solución de búsqueda de Amazon Kendra.
  • Optimización de la recuperación – Experimenta con diferentes tamaños de modelos de embedding para el recuperador. La elección del modelo de embedding puede tener un impacto significativo en los requisitos de entrada de tu LLM. Encontrar el equilibrio óptimo entre el tamaño del modelo y el rendimiento de recuperación puede resultar en una mayor eficiencia y tiempos de respuesta más rápidos.
  • Ingeniería de prompts – Experimenta con diferentes formatos, longitudes y estilos de prompts para optimizar el rendimiento y la calidad de las respuestas de tu bot.
  • Selección del modelo LLM – Selecciona el modelo LLM más adecuado para tu caso de uso específico. Considera factores como el tamaño del modelo, las capacidades de lenguaje y la compatibilidad con los requisitos de tu aplicación. Elegir el modelo LLM adecuado garantiza un rendimiento óptimo y una utilización eficiente de los recursos del sistema.

Las conversaciones en el centro de contacto pueden abarcar desde autoservicio hasta una interacción humana en vivo. Para casos de uso que involucren interacciones de persona a persona a través de Amazon Connect, puedes utilizar Wisdom para buscar y encontrar contenido en múltiples repositorios, como preguntas frecuentes (FAQs), wikis, artículos e instrucciones paso a paso para manejar diferentes problemas de los clientes.

Limpieza

Para evitar incurrir en gastos futuros, procede a eliminar todos los recursos que se implementaron como parte de este ejercicio. Hemos proporcionado un script para cerrar el punto de enlace de SageMaker de manera adecuada. Los detalles de uso están en el archivo README. Además, para eliminar todos los demás recursos, puedes ejecutar cdk destroy en el mismo directorio que los otros comandos de cdk para desaprovisionar todos los recursos en tu stack.

Resumen

Este artículo discutió los siguientes pasos para mejorar Amazon Lex con funciones de preguntas y respuestas basadas en LLM utilizando la estrategia RAG y LlamaIndex:

  • Instalar las dependencias necesarias, incluidas las bibliotecas de LlamaIndex
  • Configurar el alojamiento del modelo a través de Amazon SageMaker o Amazon Bedrock (en vista previa limitada)
  • Configurar LlamaIndex creando un índice y poblándolo con documentos relevantes
  • Integrar RAG en Amazon Lex modificando la configuración y configurando RAG para que use LlamaIndex para la recuperación de documentos
  • Probar la integración participando en conversaciones con el chatbot y observando su recuperación y generación de respuestas precisas

Al seguir estos pasos, puede incorporar sin problemas capacidades de preguntas y respuestas (QA) basadas en LLM y una indexación eficiente de documentos en su chatbot de Amazon Lex, lo que resulta en interacciones más precisas, completas y contextualmente conscientes con los usuarios. Como seguimiento, también lo invitamos a revisar nuestra próxima publicación en el blog, que explora cómo mejorar la experiencia de preguntas frecuentes de Amazon Lex utilizando la ingestión de URL y LLMs.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Dispositivo óptico portátil muestra promesa para detectar hemorragias postparto

Un dispositivo óptico portátil desarrollado por investigadores de la Universidad de Washington en St. Louis (WashU) p...

Inteligencia Artificial

🤖 ¡Háganse a un lado para el robot similar a una anguila un avance en la tecnología submarina! 🌊

Una innovación de vanguardia del Instituto Federal Suizo de Tecnología Lausana ha producido un notable y versátil rob...

Inteligencia Artificial

La función de detección de suplantación de identidad protege a las marcas y personalidades de las cuentas falsas en las redes sociales

Una empresa canadiense ha incorporado una función de protección contra la suplantación de identidad en su plataforma ...

Inteligencia Artificial

Visión a través del sonido para los ciegos

Los científicos han creado tecnología de toque acústico que utiliza el sonido para ayudar a las personas ciegas a ver.

Inteligencia Artificial

Procesamiento del Lenguaje Natural Más allá de BERT y GPT

El mundo de la tecnología está en constante evolución, y una área que ha experimentado avances significativos es el P...