9 puntos por xguru 2024-12-02 | Aún no hay comentarios. | Compartir por WhatsApp
  • Canva alcanzó 200 millones de MAU, tiene más de 30 mil millones de diseños y genera alrededor de 300 diseños nuevos por segundo
    • Buscar diseños y encontrar archivos compartidos por otros usuarios se ha vuelto un problema cada vez más importante
  • En la búsqueda pública (web/búsqueda de productos), se construyen datasets a partir de las consultas de los usuarios y un conjunto fijo de elementos de búsqueda
    • Revisores especializados evalúan la relevancia entre cada consulta y elemento para asignar etiquetas
    • El rendimiento del motor de búsqueda se evalúa mediante métricas de recall y precision
  • En la búsqueda personal, para proteger la privacidad, no se pueden revisar diseños privados ni usar los datos de los usuarios como dataset de evaluación
    • Como solución, se usa IA generativa (como GPT-4o) para crear contenido y consultas realistas pero completamente sintéticos
    • Esto permite evaluar mejoras en el pipeline de búsqueda sin comprometer en absoluto la privacidad

Estado anterior: métodos de prueba limitados

  • Proceso de prueba anterior
    • Los ingenieros usaban métodos limitados de pruebas offline
    • Ejecutaban consultas de problemas conocidos en cuentas de Canva para comparar el rendimiento antes y después de cambios de código
      • Ejemplo: al mejorar la corrección ortográfica, probaban consultas mal escritas como desgin
        • Antes del cambio: sin resultados
        • Después del cambio: se devolvían documentos relacionados con design
    • Los cambios que pasaban las pruebas offline avanzaban a la etapa de pruebas online
      • Se realizaban pruebas A/B usando el framework de experimentación de Canva
      • Se comparaba la tasa de éxito de búsqueda entre usuarios con el cambio aplicado y usuarios con la búsqueda estándar
  • Limitaciones
    • Falta de validez estadística en las pruebas offline
      • Con un número limitado de consultas es difícil representar diversos comportamientos de búsqueda
    • Posible impacto negativo en los usuarios
      • Existe la posibilidad de que degradaciones de rendimiento no detectadas offline queden expuestas en experimentos online
    • Consumo de tiempo en los experimentos online
      • Para obtener significancia estadística se requieren al menos varios días o semanas
      • Esto limita la cantidad de experimentos simultáneos y la velocidad para probar ideas

Estado ideal: construir un nuevo dataset y un pipeline de evaluación

  • Objetivo: se necesitaba un dataset personalizado y un pipeline de evaluación para que los ingenieros pudieran medir objetivamente los cambios antes de pasar a pruebas online
  • Requisitos principales:
    • Reproducibilidad: ofrecer los mismos resultados en cualquier momento
    • Iteración rápida: que los ingenieros puedan probar rápidamente los resultados tras cambiar código, sin esperar al despliegue en producción
    • Similitud con producción: ofrecer resultados alineados con el comportamiento real en producción
    • Trabajo no bloqueante: permitir que los miembros del equipo experimenten de forma independiente sin estorbarse entre sí

Crear datasets realistas: uso de IA generativa

  • Dataset de evaluación que respeta la privacidad
    • Se usó GPT-4o para generar datos sintéticos que pudieran reemplazar los datos reales de los usuarios
    • Sin copiar diseños de usuarios, se crearon datos realistas reflejando distribuciones estadísticas como la longitud del texto
  • Generación de casos de prueba para evaluar recall
    • A partir de temas y tipos de diseño (documentos, presentaciones, etc.), se usó GPT-4o para generar consultas y contenido correspondiente
    • Ajuste de dificultad de las consultas:
      • incluir errores ortográficos
      • sustituir por sinónimos
      • reformular la consulta
  • Generación de casos de prueba para evaluar precision
    • Se generó un dataset que incluía diseños relevantes y no relevantes
    • Formas de generar diseños no relevantes:
      • incluir solo algunas palabras clave
      • modificarlos para que parezcan plantillas o borradores
      • configurarlos como diseños antiguos

Problemas al usar IA generativa

  • Ventajas y límites de los LLMs
    • Ventaja: pueden generar grandes volúmenes de texto de forma eficiente
      • El dataset de evaluación estático generado puede reutilizarse repetidamente y entregar resultados consistentes y deterministas con rapidez
    • Eliminación de limitaciones: una vez creado el dataset, se excluyen los problemas de latencia y aleatoriedad de los LLM
  • Problemas
    • Negativa a generar títulos largos
      • Aunque se pidió generar títulos de 12 a 15 palabras, devolvía títulos más cortos
        • Ejemplo:
          • Exploring the Latest Advancements in Screen Technology and Applications (9 palabras)
          • Best Practices for Teachers: Presentation Tips for Meet the Teacher (10 palabras)
      • Es posible que esto refleje que en documentos reales los títulos largos son poco frecuentes
      • Como resultado, se replanteó el criterio sobre la longitud de los títulos
    • Errores de repetición y alucinación
      • Al pedir distintas faltas de ortografía de una palabra, devolvía resultados duplicados o poco realistas
        • Ejemplo: al pedir distintas faltas de ortografía de Calendar, generaba resultados repetitivos
    • Problemas al generar títulos no relevantes
      • Hubo casos en que no seguía correctamente las instrucciones al crear títulos de diseños nonrelevant
      • Algunos títulos devueltos no incluían las palabras clave especificadas o incluso contenían simplemente title string, entre otros resultados incorrectos

Ejecutar la evaluación: pruebas y análisis en entorno local

  • Uso del dataset de evaluación
    • El dataset sintético generado se aplicó al pipeline de búsqueda para obtener métricas de evaluación
    • Tras explorar varios métodos de ejecución, se adoptó una ejecución local usando Testcontainers
  • Pipeline local basado en Testcontainers
    • Aprovechar el soporte existente de Testcontainer
      • La arquitectura RPC orientada a servicios de Canva ya tenía implementado soporte para Testcontainer
      • Se construyó el pipeline combinando componentes externos como Elasticsearch con Testcontainers internos
    • Reproducción completa de la configuración de producción
      • Al ejecutar localmente el pipeline de búsqueda y los modelos de ML de soporte, se configuró un entorno idéntico al de producción
      • Los ingenieros podían experimentar con distintas variantes de modelos
  • Proceso de manejo de casos de prueba
    1. Crear el estado necesario para cada caso de prueba
    • En lugar de generar diseños de Canva, solo se extraían e insertaban los datos necesarios para el índice de búsqueda
    1. Ejecutar el pipeline de búsqueda local
    • Se ejecutaba el dataset junto con las consultas de prueba para producir resultados de búsqueda
    1. Enviar los resultados al módulo de evaluación
    • Se calculaban métricas de recall y precision
  • Diagrama de flujo de datos
    • Se proporcionó un diagrama que muestra visualmente el flujo completo de procesamiento de datos a través de la herramienta de evaluación

Visualizar los resultados

  • Desarrollo de una herramienta de visualización
    • Se creó una herramienta personalizada basada en Streamlit para visualizar y comparar eficazmente los resultados de evaluación
    • Los ingenieros podían comparar de un vistazo las métricas de recall y precision entre distintas configuraciones
  • Funciones principales
    1. Comparación por configuración
      • Agrega resultados para comparar lado a lado el rendimiento de distintos ajustes
    2. Desglose del rendimiento por tipo de consulta y dificultad
      • Permite analizar por separado el rendimiento según el tipo o la dificultad de una consulta específica
    3. Depuración de consultas individuales
      • Permite revisar la salida de cada consulta para depurar con precisión casos de uso específicos
  • Apoyo para decisiones rápidas
    • Una vez terminada la evaluación, la herramienta se ejecuta de inmediato y ayuda a los ingenieros a tomar decisiones rápidamente en función de los resultados
    • Los ingenieros pueden iterar y mejorar de manera independiente sin depender del trabajo de otros miembros del equipo

Impacto y planes a futuro

  • ¿Qué tan cerca estuvieron del estado ideal?
    • El dataset de evaluación y la herramienta ofrecen reproducibilidad completa y generan resultados en cuestión de minutos
    • Los ingenieros pueden evaluar localmente de forma independiente y objetiva resultados alineados con el comportamiento en producción
    • Se garantiza completamente la privacidad sin revisar en absoluto los diseños ni las consultas de los clientes
  • Resumen de resultados
    1. Iteración rápida
    • Se procesan más de 1000 casos de prueba en menos de 10 minutos
    • Durante el periodo de 2 a 3 días que requiere un experimento online, se pueden realizar más de 300 evaluaciones offline
    1. Correlación entre resultados offline y online
    • Los resultados offline están diseñados para descartar ideas inadecuadas y permitir que solo los cambios con alta probabilidad de éxito pasen a experimentos online
    • Durante el desarrollo se realizaron varios experimentos para verificar la sincronización entre resultados offline y online
    • Se confirmó una fuerte consistencia tanto en cambios positivos como negativos del rendimiento
    1. Capacidades de depuración local
    • Se ofrece soporte de depuración para observar el flujo de los casos de prueba a través de cada componente del pipeline de búsqueda
    • Es mucho más eficiente que el método anterior de depuración, que dependía de logs de producción
  • Planes a futuro
    • Expandir el dataset
      • Agregar funciones más realistas, como el grafo de colaboración
    • Mejorar las herramientas
      • Fortalecer el tooling para que los ingenieros puedan generar datos sintéticos personalizados según sus necesidades
    • Maximizar el uso de IA generativa
      • Seguir aprovechando las posibilidades que ofrecen los datos sintéticos para mejorar la herramienta de búsqueda de Canva y brindar la mejor experiencia posible a la comunidad

Aún no hay comentarios.

Aún no hay comentarios.