Connectly
Ingeniería2024-10-24

Sofia V3: la nueva generación de IA de ventas conversacional

Por Sravan Jayanthi

Sofia V3: la nueva generación de IA de ventas conversacional

Motivación

Connectly AI es una empresa de IA conversacional B2B que ofrece SaaS de IA de ventas para grandes marcas de e-commerce como Alibaba, Columbia y American Eagle.

El producto insignia de Connectly AI es el Sofia AI Sales Assistant, una IA de ventas conversacional avanzada que permite el descubrimiento de productos, recomendaciones y asistencia al cliente, impulsando conversiones 30% más altas en campañas de marketing salientes y contactos entrantes hacia los negocios.

El Sofia AI Sales Assistant insignia de Connectly

El desafío

Después del éxito inicial con Sofia AI, nuestros clientes querían que fuera más allá de un vendedor básico y se convirtiera en un "experto" en ventas. Para convertirse en experto, Sofia AI necesitaba razonamiento multi-salto y planificación multi-paso más avanzados. Por ejemplo, para recomendar el mejor look para el Día del Trabajo, Sofia podría necesitar primero leer varios blogs, explorar un catálogo de productos y finalmente recomendar looks.

Además, una IA "experta" no puede ser un modelo único para todos; debe estar adaptada de forma única a cada negocio. Nuestros clientes de negocio necesitan poder compartir conocimiento de dominio y especificar instrucciones en lenguaje natural (por ejemplo, aumentar las ventas de un cierto producto, fomentar interacciones de negocio a negocio, generación de leads dirigida, etc.). Por ejemplo, un negocio podría decir "nuestros clientes responden bien cuando recomiendas al menos una opción de la sección de rebajas para cada look" o "durante las próximas dos semanas, puedes usar el código promocional 'sofia15' para incentivar a los clientes indecisos a comprar."

Arquitectura anterior: Sofia V2

El asistente Sofia AI anterior fue diseñado con dos etapas: uso de herramientas y respuesta. La arquitectura se diseñó como un multiplexor de herramientas especializadas, donde cada "modelo de acción" tenía lógica que determinaba si activar o no esa herramienta. La arquitectura estaba optimizada para baja latencia y bajos costos usando modelos más pequeños y específicos para cada tarea, que decidían si una herramienta debía invocarse según las conversaciones. Hay varios pros y contras asociados con este diseño.

Arquitectura de Sofia V2

Arquitectura de Sofia V2

En la etapa final, un LLM tenía la tarea de analizar una conversación extensa, conjuntos de resultados de llamadas a herramientas, lógica de prompts personalizada y un conjunto complejo de condiciones o reglas sobre cómo responder, e intentar curar una respuesta.

Había varios desafíos clave con este diseño:

  1. No podía realizar razonamiento multi-salto porque varias herramientas solo podían invocarse en paralelo, no en secuencia. Por ejemplo, podía leer guías de estilo y buscar recomendaciones de productos simultáneamente, pero no podía leer una guía de estilo y luego buscar una recomendación.
  2. Había puntos de falla irrecuperables. Si el modelo de "acción" de intención para recomendaciones de productos no detectaba una intención de recomendación, el bot no podía ofrecer recomendaciones.
  3. Cuando varias herramientas se ejecutaban en paralelo con el modelo de respuesta, el LLM se sobrecargaba con demasiado contexto. Por ejemplo, se le pedía resumir extractos de una base de conocimiento y dar seguimiento a recomendaciones al mismo tiempo.

Arquitectura de nueva generación V3

En Sofia V3 buscamos diseñar un asistente de ventas de IA que sea un chatbot conversacional altamente versátil. Nuestra IA de ventas inteligente puede cumplir objetivos especificados por el comerciante y abordar consultas complejas multi-salto usando técnicas de razonamiento agéntico de última generación.

Descripción del flujo

Uno de los objetivos importantes en el diseño de la arquitectura fue asegurar que cada módulo de IA tuviera una responsabilidad única y bien definida y no estuviera sobrecargado con múltiples tareas. Para lograrlo, proporcionamos un conjunto de reglas personalizadas especificadas por el comerciante, asignadas a diferentes módulos (lo discutiremos en detalle más adelante).

Cuando un usuario le pide a Sofia una sugerencia de ideas de regalo o ayuda con su pedido, esto se pasa primero al agente de extracción de instrucciones, que genera un objetivo contextual para que Sofia lo cumpla. Luego, esta instrucción se pasa al agente de planificación y llamado de herramientas, que curará un plan de bajo nivel y ejecutará herramientas para cumplir la tarea. Finalmente, los resultados de las herramientas se entregan junto con la instrucción al agente de respuesta, que redacta un mensaje de vuelta al usuario.

Arquitectura de Sofia V3

Arquitectura de Sofia V3

Ejemplo de conversación con Sofia

A continuación hay un ejemplo de interacción de 2 turnos entre un usuario y Sofia AI para un vendedor de vinos, dentro de una experiencia conversacional intuitiva. El objetivo de alto nivel para Sofia es explicar y vender el producto principal, que es un servicio de suscripción de vinos.

Usuario: Vinos para acompañar una pizza margherita.

Sofia: Para acompañar la pizza margherita, recomiendo los siguientes vinos: Chianti Classico, Pinot Grigio y Sauvignon Blanc. ¿Alguno de estos te llama la atención?

Usuario: Me voy con el Pinot Grigio, ¿cuáles son las opciones de suscripción?

Sofia: ¡Por supuesto! Aquí tienes un Pinot Grigio de la región de Borgoña en Francia <link>. Te recomiendo uno de nuestros 3 planes de suscripción para obtener el mejor valor. ¿Te gustaría saber más?

Agente de extracción de instrucciones

Flujo del agente de extracción de instrucciones

Flujo del agente de extracción de instrucciones

El primer módulo sería un agente de extracción de instrucciones, encargado de identificar el objetivo del sistema en base a las "reglas de comportamiento" y la consulta del usuario.

Las reglas de comportamiento describen el comportamiento de alto nivel del sistema, como cómo debe responder a diferentes tipos de entrada. A continuación, el ejemplo para nuestra tienda de vinos:

  • Proporciona información sobre la historia de nuestra tienda, el portafolio de vinos y las sucursales
  • Explica los diferentes planes de suscripción y sus beneficios asociados, incluyendo envío gratis, descuentos y exenciones de descorche.

Dado el contexto de la conversación y los objetivos que el negocio definió para Sofia, esta diseña una instrucción apropiada para la etapa dada del flujo de la conversación.

Instrucción del turno 1: Revisa la guía de maridaje de vinos y sugiere varios vinos de nuestro portafolio que combinen bien con una pizza margherita.

Instrucción del turno 2: Busca en el catálogo de productos el Pinot Grigio y sugiere comprar un plan de suscripción.

El crítico de instrucciones observa la tarea elaborada y determina si captura y cumple totalmente las reglas de comportamiento dadas. Esta es una técnica descrita en Reflexion (Shinn et al. 2023) que mejora la capacidad de razonamiento del LLM y asegura que el extractor de instrucciones sea más robusto al capturar la intención latente y los objetivos del negocio.

Después de aprovechar un crítico para verificar la precisión de la instrucción extraída, esta se pasa al agente de llamado de herramientas y al agente de respuesta para guiar sus próximos pasos.

Agente de planificación y llamado de herramientas

Flujo del agente de planificación y llamado de herramientas

Flujo del agente de planificación y llamado de herramientas

El agente de planificación y llamado de herramientas tiene la tarea de aprovechar un conjunto de herramientas proporcionadas al asistente de ventas para intentar cumplir la instrucción. Esto implica elaborar un plan, ejecutar herramientas y observar sus resultados para determinar su aceptabilidad.

En nuestro ejemplo, se instruyó a Sofia a compartir sugerencias para los usuarios accediendo a una base de conocimiento de catálogos y guías sobre vinos más adecuados para pizza, junto con un inventario de productos de vinos disponibles.

Traza de planificación y llamado de herramientas del turno 1

Pensamiento: Necesito sugerir un vino adecuado que combine bien con la pizza margherita. Debería buscar en la base de conocimiento para encontrar una guía de productos que describa selecciones de vino.

Llamada a herramienta: knowledge_base_search(instruction="Encuentra vinos de nuestro portafolio que combinen bien con una pizza margherita")

Salida de la herramienta: Vinos recomendados: Chianti Classico, Pinot Grigio y Sauvignon Blanc.

Traza de planificación y llamado de herramientas del turno 2

Pensamiento: Debería encontrar un vino Pinot Grigio dentro de nuestro inventario de productos para el usuario. Luego debería informarle sobre el servicio de suscripción para comprar ese producto Pinot Grigio específico.

Llamada a herramienta: recommendation_engine(query="Pinot Grigio")

Salida de la herramienta: Aquí tienes un enlace a nuestra selección de Pinot Grigio: <link>.

Agente de respuesta

Flujo del agente de respuesta

Flujo del agente de respuesta

El módulo final es el agente de respuesta, que tendría acceso a las reglas de respuesta, y tendría la tarea de entender la conversación y las salidas observadas de las herramientas para escribir una respuesta de vuelta al usuario.

Las reglas de respuesta describen el formato y el estilo de la respuesta del sistema. A continuación, un ejemplo de cómo el negocio puede especificar el tono o el nivel de detalle en la respuesta para el vendedor de vinos.

  • Formatea las respuestas de manera clara y concisa. Usa viñetas o listas numeradas según sea necesario.
  • Usa un tono amigable y profesional.
  • Involucra al usuario haciendo preguntas de seguimiento relevantes

Respuesta del turno 1: Para acompañar la pizza margherita, recomiendo los siguientes vinos: Chianti Classico, Pinot Grigio y Sauvignon Blanc. ¿Alguno de estos te llama la atención?

Respuesta del turno 2: ¡Por supuesto! Aquí tienes un Pinot Grigio de la región de Borgoña en Francia <link>. Te recomiendo uno de nuestros 3 planes de suscripción para obtener el mejor valor. ¿Te gustaría saber más?

Nota cómo estructura la respuesta y se ajusta al objetivo de ser conciso y directo al punto, mientras involucra al usuario con seguimientos relevantes.

Ajuste del sistema: modelos y prompts

Para asegurar que usamos los modelos y prompts óptimos, construimos datasets y usamos desarrollo impulsado por métricas para mejorar de forma iterativa.

Generación de datasets

Aunque los métodos y la estructura de nuestro dataset siguen siendo propietarios, para fomentar trabajo futuro en estos sistemas, queremos destacar una técnica de generación de datasets sintéticos que encontramos particularmente útil:

Siguiendo la técnica de SMM-QG, instruimos al modelo generativo para diseñar salidas de herramientas tanto exitosas como fallidas, para probar ambos casos.

Metodología de muestreo y generación de datasets de SMMQG (Wu et al. 2024)

Metodología de muestreo y generación de datasets de SMMQG (Wu et al. 2024)

Esto fue útil ya que nos permitió tener un dataset estándar para desarrollar y optimizar en nuestra metodología de desarrollo impulsado por métricas.

Evaluación: desarrollo impulsado por métricas

Nota: nuestra arquitectura de LLM es propietaria, así que para esta sección usaremos modelos fundacionales comunes para mostrar nuestro enfoque de desarrollo impulsado por métricas. Además, esperamos que esto pueda agregar más información a nuestro conocimiento común sobre cómo se desempeñan los modelos fundacionales populares.

Para evaluar el éxito, definimos puntuaciones claras y medibles que queremos que nuestro sistema optimice en a) extracción de instrucciones y b) éxito en el cumplimiento de reglas.

Evaluamos el éxito de la extracción de instrucciones y del crítico aprovechando GPT-4 como juez para calificar la calidad de las instrucciones generadas en una escala de 4, sobre 3 conversaciones con un promedio de 5 turnos.

Tabla de calificaciones de instrucciones para modelos fundacionales populares

Tabla de calificaciones de instrucciones para modelos fundacionales populares

Queríamos comparar la calidad de las conversaciones, particularmente en el cumplimiento de las categorías definidas de reglas, con la arquitectura anterior. Comparamos casos con salidas de herramientas exitosas (con salidas de herramientas exitosas) y casos negativos (con salidas de herramientas fallidas) donde las herramientas fallan, y determinamos si aún logran cumplir con las reglas dadas.

Tabla de calificaciones de cumplimiento de reglas comparando Sofia V2 y Sofia V3 con GPT-4o

Tabla de calificaciones de cumplimiento de reglas comparando Sofia V2 y Sofia V3 con GPT-4o

Estos resultados muestran que hay mejoras monotónicas claras en el nuevo diseño de arquitectura respecto al cumplimiento de las reglas personalizadas del asistente durante la conversación. Además, en los casos en que las herramientas fallan, aún logramos seguir involucrando al usuario en la conversación sin degradar el rendimiento en el cumplimiento de reglas.

Ablación entre LLMs

Un estudio interesante que realizamos fue hacer una ablación entre diferentes modelos LLM dentro del stack. Diferentes modelos tienen compensaciones en su capacidad de soportar tareas multilingües, llamado de herramientas o razonamiento complejo, y buscamos encontrar la mejor combinación de modelos mientras minimizábamos el tiempo de respuesta y el costo.

Ablación entre modelos usados dentro de Sofia V3

Ablación entre modelos usados dentro de Sofia V3

Encontramos que podemos aprovechar una combinación de estos modelos, cada uno con la capacidad apropiada para la tarea en cuestión, para maximizar el rendimiento mientras también minimizamos el tiempo de respuesta.

Desglose del tiempo promedio de conversación

Desglose del tiempo promedio de conversación

Planeamos estudiar más a fondo la optimización del tiempo de respuesta del modelo para que se sienta instantáneo para los usuarios finales.

Conclusión

Sofia V3 ofrece capacidades avanzadas para permitir a los comerciantes programar un "experto" de ventas de IA autónomo en lenguaje natural puro. Los negocios pueden tanto diseñar objetivos personalizados para el asistente de ventas como criterios sobre cómo debe interactuar con los usuarios, y este cumple inteligentemente estas tareas dentro de la conversación. La versión de nueva generación de Sofia AI ya está disponible en https://www.connectly.ai/ y se están lanzando funcionalidades más avanzadas cada mes.

Revisión de literatura

Construir aplicaciones de LLM contemporáneas es una tarea desafiante, y hemos identificado las mejores técnicas conocidas para diseñar y construir un sistema de IA generativa de alto rendimiento y listo para producción a toda velocidad.

Generación de datasets sintéticos, Wu, Jayanthi et al. 2024:

  • Aprovechamos la técnica más avanzada para construir datasets sintéticos de alta calidad y similares a los humanos, para diseñar rápidamente un benchmark con el cual probar e iterar nuestro diseño. Este trabajo, Synthetic Multimodal Question Generation, detalla un enfoque riguroso para construir datasets de consulta y respuesta especificados por el usuario para tareas de dominio cerrado como preguntas y respuestas o búsqueda.

Reflexion, Shinn et al. 2023:

  • Reflexion describe un enfoque para mejorar la calidad de los LLM en tareas difíciles que requieren razonamiento, aprovechando un modelo crítico que evalúa si la tarea se cumplió con éxito. El crítico produce una "reflexión" que se devuelve al modelo original para reintentar la tarea con una crítica de su enfoque anterior, en un esfuerzo por lograr que diseñe un enfoque más robusto para resolver la tarea.

Aprendizaje por refuerzo verbal en Reflexion (Shinn et al. 2023)

Aprendizaje por refuerzo verbal en Reflexion (Shinn et al. 2023)

Self-Reflection, Renze y Guven 2024, y Self-Refine, Madaan et al. 2023:

  • Muchos pipelines avanzados de RAG o LLM agéntico aprovechan la auto-reflexión para aumentar la confiabilidad de las tareas subyacentes del modelo de lenguaje. Similar a Reflexion, esto aprovecha una capacidad clave de los modelos fundacionales contemporáneos de ser más eficaces en tareas discriminativas que en generativas. Por lo tanto, al elaborar llamadas a funciones o resolver preguntas y respuestas contextuales, aprovechar la retroalimentación implícita del LM puede permitirle validar la corrección de su respuesta.

Ejemplo de LangChain de auto-reflexión

Ejemplo de LangChain de auto-reflexión

GPT-as-a-Judge, Thankur et al. 2024:

  • En un estudio de todos los principales LM cerrados y de código abierto, se encontró que el modelo con la mayor alineación con los juicios anotados por humanos fue GPT-4. Por lo tanto, aprovechamos GPT-4 como un proxy cercano de los juicios humanos al calificar la calidad de las generaciones para las diversas tareas estudiadas.

Autores

Sravan Jayanthi, Joel Simonoff, Yandong Liu