Cómo Notion desarrolla funciones de IA (Linus Lee)
(youtube.com)-
La experiencia de Linus Lee en desarrollo de IA
- Linus Lee trabaja en Notion como lead AI engineer.
- Antes de Notion, investigó bastante sobre NLP, machine learning y HCI, y también hizo mucho prototipado y escritura.
- En Notion desarrolló las funciones Q&A, Autofill y AI Writing, y también ha investigado modelos de espacio latente.
-
Resumen del desarrollo de IA en Notion
- Linus Lee ha desarrollado diversas herramientas web y de productividad desde su época universitaria.
- Durante 2022 empezó a leer papers e investigar sobre IA por su cuenta.
- En octubre de 2022, se unió al proyecto beta de AI Writer de Notion.
- Cuando entró a Notion, el equipo de IA estaba compuesto por cuatro personas, pero ahora ha crecido a unas 20.
- Los principales proyectos en los que participó Linus Lee fueron AI Writer, Autofill y Q&A, lanzados en febrero, mayo y noviembre de 2023, respectivamente.
- En adelante, Notion AI planea mejorar aún más la usabilidad mediante tecnología de agentes.
-
Introducción a las oficinas de Notion y al equipo de IA
- Notion tiene oficinas en San Francisco y Nueva York, y la oficina de San Francisco se usa para almuerzos y espacios para eventos.
- La oficina de Nueva York es donde vive y trabaja Linus Lee, y destaca por su entorno laboral de diseño limpio.
- El desarrollo de funciones de IA en Notion comenzó en 2023, y el CEO y el CTO participan directamente en el desarrollo del producto.
- En una foto de una reunión del equipo de IA en otoño de 2022, se ve a managers, al CEO Ivan, al CTO Simon, product managers y diseñadores realizando una sesión de Q&A.
- En el desarrollo de productos de IA, la calidad y la evaluación son factores clave, y se usan técnicas de evaluación que consideran el espectro entre benchmarks de investigación y uso real en producción.
- Notion verifica el rendimiento entre benchmarks y datos reales, y evalúa con precisión el desempeño de los modelos mediante pruebas programáticas.
- Los criterios de evaluación incluyen la presencia de ciertas palabras, confianza, inclusión de keywords y rendimiento lingüístico preciso.
-
Desarrollo de productos de IA en Notion
- La evaluación humana es un elemento importante en el desarrollo de productos de Notion AI.
- En los datasets de prueba, personas revisan los datos y luego el producto se prueba mediante tests programáticos.
- Después del desarrollo del producto, se necesita monitoreo continuo basado en el feedback de los usuarios.
- La IA debe ofrecer capacidades en varios niveles para recopilar casos de falla de los usuarios y responder preguntas de forma efectiva.
- La clave para desarrollar productos de IA de alta calidad es la edición y la calidad de los datos. Por eso es importante ajustar los datos del mundo real al modelo.
- El equipo de Notion desarrolla estas funciones discutiéndolas en conjunto entre engineers, researchers, designers y product managers.
- Usan modelos como GPT-4 para mejorar continuamente el modelo de edición y elevar la calidad de los resultados.
-
Proceso de desarrollo de funciones de IA en Notion
- Los engineers de Notion AI desarrollan modelos mediante recopilación de información y estructuración de datos. Por eso deben analizar a fondo los datos y ajustarse a las necesidades de los usuarios.
- Construyen datasets mientras investigan maneras de organizar información como notas de reuniones y páginas web de los usuarios de Notion, porque esto afecta el rendimiento del modelo de IA.
- A través de la investigación identifican casos de uso como Q&A y prueban los modelos, para poder ofrecer respuestas efectivas a las preguntas de los usuarios.
- Desarrollan sistemas prototipo usando GPT-4 y modelos en la nube, y luego los prueban internamente para detectar problemas iniciales.
- Analizan los casos de falla recopilados mediante uso interno y, con base en ellos, mejoran el dataset y el modelo. Así elevan la precisión del modelo mediante pruebas y feedback iterativos.
-
Procedimiento de desarrollo y evaluación de modelos de IA en Notion
- El proceso iterativo del modelo incluye ajustar prompts, afinar detalles del modelo y agregar una segunda etapa al pipeline del language model.
- Cuando consideran que resolvieron un problema durante el desarrollo, vuelven a desplegar y recopilan más casos de falla para repetir el proceso.
- Este ciclo se repite hasta que la calidad de las entradas y salidas en el entorno interno sea satisfactoria.
- En algún momento, publican el producto para un pequeño grupo de usuarios mediante un programa beta, y monitorean el feedback de usuarios y los datos de logs recopilados automáticamente.
- En la etapa inicial de construcción del dataset, usan diversos métodos para verificar que refleje bien los casos de uso reales.
-
Etapa inicial del desarrollo de funciones de IA
- Crean un prototipo y lo prueban con el equipo interno de IA.
- Así recopilan distintos inputs y ejemplos mediante uso interno.
- El conjunto inicial de inputs no necesita representar perfectamente todos los casos reales.
- Después de las pruebas internas, lo despliegan a un grupo más amplio de usuarios para obtener gradualmente datos más realistas.
- También es posible construir el dataset inicial con base en casos de falla previstos.
- Al desarrollar funciones de soporte de idiomas, usan datasets de QA existentes traducidos a lenguas extranjeras.
-
Recolección y evaluación de datos mediante pruebas internas y externas
- El dataset inicial no necesita ser perfectamente realista. Por eso se recopilan mejores datos a través de pruebas.
- Se prueba el prototipo con usuarios internos o con un pequeño grupo de usuarios externos, y se recopilan ejemplos de salidas incorrectas de varias maneras.
- Se realizan evaluaciones programáticas basadas en keywords o en la estructura de la salida, y se dejan logs de todas las inferencias de IA. Así se pueden revisar y analizar las salidas fallidas.
- Mediante entrevistas con usuarios, se pueden entender los casos de uso reales y descubrir formas de uso inesperadas.
- Por ejemplo, durante las pruebas internas de Autofill descubrieron que muchos empleados lo usaban para traducción, por lo que desarrollaron una versión más optimizada para ese propósito.
-
Métodos de feedback y evaluación de productos de IA
- Los botones de feedback de me gusta y no me gusta no son muy útiles para los usuarios, por lo que no se usan con frecuencia.
- Además, con la escala de usuarios de Notion no es posible obtener suficientes datos solo mediante esos botones de feedback.
- Sin embargo, ocasionalmente ayudan a detectar casos excepcionales que no se habían encontrado por otros casos de uso.
- Internamente, evalúan el rendimiento del modelo ante inputs inesperados mediante pruebas adversariales.
- Las pruebas adversariales son útiles para comprender los límites del rendimiento del modelo e identificar dónde aparecen los problemas.
- Monitorean continuamente las fortalezas y debilidades del modelo a través de datos de uso real.
-
Elementos clave en el desarrollo de productos de IA
- La evaluación y los logs son lo más importante.
- Es necesario construir logs integrales y totalmente reproducibles.
- Con ejemplos de malas salidas en uso real o resultados de pruebas internas, se puede reconstruir y depurar el pipeline.
- Cada ejemplo se vuelve a ejecutar en el entorno de desarrollo para probarlo con nuevos prompts o modelos y encontrar una solución.
- Después de resolver el problema, ese ejemplo se agrega al dataset de prueba para evitar que vuelva a ocurrir el mismo problema.
-
Lecciones importantes del desarrollo de IA
- Hay que usar el producto pronto y probarlo con frecuencia para refinar la comprensión de la tarea.
- El factor diferenciador en IA no es el rendimiento del modelo, sino la comprensión de la tarea.
- Al crear aplicaciones de IA para usuarios finales, el equipo de IA debe entender profundamente la dificultad de la tarea y las limitaciones del modelo.
- Es importante dividir la tarea en partes pequeñas e identificar en qué falla con frecuencia el modelo y en qué se desempeña bien de forma natural.
- La mejor manera de entender la dificultad de la tarea es usar el producto con frecuencia, analizar las salidas y comprender las causas de error del modelo.
-
Puntos de atención al desarrollar productos de IA
- Las especificaciones del producto deben indicar no solo la interfaz y las funciones, sino también los criterios de evaluación y qué se considera una buena salida.
- Los criterios de evaluación sirven como un punto central de comunicación entre responsables de producto, engineers e investigadores.
- La experiencia en machine learning tradicional también puede aplicarse a LLM y modelos de IA generativa, y aporta más insights de los que parece.
- Sin embargo, mientras que en el machine learning tradicional se trabaja con grandes datasets y se analizan clusters o grandes subconjuntos, en los language models se revisan con mayor frecuencia casos de falla individuales y logs individuales.
- Por lo tanto, se necesitan herramientas y workflows distintos para trabajar con language models.
-
La importancia de evaluar modelos de IA y cómo abordarla
- La evaluación parte del usuario y de lo que realmente hace; ahí está la fuente de verdad.
- Por eso, el material de evaluación debe reflejar casos de uso reales basados en datos de uso internos y externos.
- Un reto importante en el proceso de evaluación es asegurar que se cubra suficientemente todo el espacio de inputs donde se espera que el sistema funcione bien.
- Construir un pipeline de evaluación automática puede ahorrar tiempo más adelante, cuando haya que procesar muchos datos, pero al inicio es importante que los miembros del equipo revisen y entiendan directamente los resultados.
- Esto ayuda a identificar las causas de falla del modelo y sus tendencias frente a tareas específicas.
-
Cómo formar un equipo de IA
- Hay dos enfoques principales: el primero es convertir un equipo existente de machine learning en un equipo de IA.
- Eso puede dar lugar a un equipo centrado en datos, validación y benchmarks. Por eso es importante evaluar en función de las necesidades del usuario y las expectativas del mundo real.
- El segundo enfoque es que un equipo de engineers existente aprenda a usar APIs de language models como la de OpenAI. Notion también usó este método. Por eso su equipo inicial de IA estaba compuesto en su mayoría por web engineers.
- La ventaja de estos equipos es que son fuertes en comprensión del usuario y en experimentos de prueba. Sin embargo, tuvieron que aprender la importancia de la evaluación rigurosa y de datasets de alta calidad.
- Además, las buenas prácticas de higiene y workflow son importantes para mantener los datasets. Por lo tanto, asegurar data points de alta calidad es esencial.
Aún no hay comentarios.