Los modelos de lenguaje de gran tamaño facilitan la creación de funciones de IA. Han inspirado nuestra imaginación colectiva sobre lo que podemos lograr con la IA, ya que es sencillo desarrollar aplicaciones mediante las API públicas de OpenAI, Anthropic y otros.
Aunque las API públicas para acceder a los LLM ofrecen un flujo de trabajo estándar para los desarrolladores, la tarea de llamar a una API y gestionar su respuesta oculta la verdadera complejidad del problema. Al crear funciones basadas en modelos de lenguaje, trabajarás principalmente en los límites de sus capacidades. Hacerlo con eficacia requiere habilidades que la mayoría de los ingenieros de software aún no han desarrollado, incluidas algunas de disciplinas afines pero fundamentalmente distintas, como la ciencia de datos.
Nuestros equipos de Webflow que trabajan en productos de IA se han enfrentado a este conflicto al intentar desarrollar soluciones de IA. Nuestros flujos de trabajo de LLM son complejos y tienen muchos puntos donde pueden fallar. Por ejemplo, en algunos casos encadenamos llamadas. En muchos otros, tenemos formatos de salida definidos estrictamente para que la respuesta active la lógica de nuestro sistema y realice tareas en nombre del usuario. Entender cómo funciona el sistema y por qué no logra producir un resultado de alta calidad es un desafío importante para nuestro equipo.
El desafío radica en que la respuesta del modelo es probabilística, no determinista. Una consecuencia es que, aunque debemos seguir escribiendo nuestras pruebas de integración y unitarias habituales para verificar que el sistema maneja correctamente un conjunto predefinido de respuestas, también necesitamos otra categoría de pruebas que los programadores no están acostumbrados a mantener e integrar. Aquí es donde entran en juego las evaluaciones de modelos. En este artículo, explicaré qué son y cómo las usamos en Webflow.
Entender las evaluaciones
Las evaluaciones de modelos son pruebas que ejecutan una gran cantidad de entradas predefinidas a través del sistema y contienen un mecanismo para calificar la calidad de la salida. Ejecutamos muchas entradas porque no intentamos probar que el sistema funcione correctamente; más bien, medimos la probabilidad de una respuesta correcta o la calidad promedio de la respuesta. En resumen, pasamos de una medida binaria de éxito a una medida probabilística. Este modo de prueba es conceptualmente distinto a otras herramientas que los desarrolladores usan para mantener sistemas, como las pruebas unitarias, de integración y de extremo a extremo. Las evaluaciones de modelos son un concepto de la ciencia de datos donde evaluamos el rendimiento de un modelo en una amplia gama de tareas y usamos esa información para entender cómo debemos modificarlo.
Para obtener una visión integral del rendimiento de nuestro sistema, queremos medirlo en varios ejes. Por ejemplo, dado que los modelos de lenguaje están diseñados para interpretar el lenguaje humano, a menudo necesitaremos aplicar subjetividad al evaluar qué tan bien funciona el modelo. También podemos querer calificar la salida en una escala en lugar de usar un criterio binario simple de aprobado/reprobado. Veamos algunos tipos de evaluaciones:
Evaluaciones subjetivas frente a objetivas
En la evaluación subjetiva, usamos el juicio humano para determinar qué tan bien se ajusta la respuesta a la entrada. Estas evaluaciones suelen realizarse mediante un sistema de calificación de varios puntos. Por ejemplo, en nuestros equipos de IA queremos entender de forma semisubjetiva qué tan bien se ve el componente resultante. Detallaré cómo lo logramos más adelante, pero es importante notar que usamos una escala de 3 puntos para capturar este juicio subjetivo: "Éxito", "Éxito parcial" y "Fallo".
Las evaluaciones objetivas (también llamadas evaluaciones heurísticas) verifican que se cumpla una condición específica de verdadero/falso. Por ejemplo, si requieres que las respuestas se devuelvan en un formato específico, puedes escribir una lógica de código que verifique que el formato sea correcto en todas las salidas generadas.
Creación de evaluaciones subjetivas: evaluaciones humanas
La forma más rápida de empezar con las evaluaciones de modelos es generar un conjunto de entradas de prueba y hacer que un humano inspeccione y califique manualmente las salidas según tus criterios predefinidos. Aunque esto requiere una configuración mínima y ofrece una excelente calidad de resultados desde el principio, consume mucho tiempo y puede resultar costoso en horas de desarrollo. Para reducir el trabajo manual, buscamos soluciones para automatizar el proceso de evaluación.
Automatización de evaluaciones subjetivas: calificar la IA con IA
Las evaluaciones objetivas son fáciles de automatizar, ya que normalmente puedes escribir código que realice la verificación. Las evaluaciones subjetivas son más complicadas. Para esta tarea, recurrimos de nuevo a los modelos de lenguaje para analizar subjetivamente qué tan bien funciona la respuesta según ciertos criterios. Afortunadamente, los modelos de lenguaje son sorprendentemente buenos para calificar si la salida de otro modelo ha logrado completar una tarea. Estas salidas no siempre coinciden al 100% con el juicio humano, pero en conjunto suelen ser buenas para detectar cambios importantes en un amplio conjunto de prompts. Por ejemplo, las pruebas automatizadas no han sido las más fiables para identificar tendencias sobre qué causa específicamente que las puntuaciones de calidad sean bajas, pero suelen ser buenas para determinar si un cambio en el sistema produce un resultado neto positivo en general. Esto se debe a que carecen del contexto de cómo se ven las demás salidas y analizan cada una de forma aislada.
Para ganar confianza en tus puntuaciones automatizadas, puedes realizar evaluaciones de IA y humanas simultáneamente para recopilar datos sobre qué tan bien coinciden. En la práctica, realizarás evaluaciones automatizadas con frecuencia mientras llevas a cabo evaluaciones humanas periódicas para verificar que la realidad no diste mucho de la puntuación automatizada. Por ejemplo, en Webflow nuestra mejor práctica ha sido realizar una calificación manual semanal y confiar en las puntuaciones automatizadas para la validación diaria de los cambios realizados por los desarrolladores. También confiamos en ellas para detectar regresiones inesperadas en la calidad.
Evaluaciones en la práctica
En nuestros equipos de IA, hemos empezado a usar evaluaciones de forma extensiva, tanto en nuestro ciclo de desarrollo como para alinear a las partes interesadas. Nuestro problema al comenzar el desarrollo de proyectos de IA en Webflow era que sabíamos que la calidad de nuestra función era deficiente, pero carecíamos de un lenguaje para discutirla. Como nuestro equipo estaba acostumbrado a identificar errores de software, intentamos usar un flujo de trabajo basado en Jira para abordar los problemas de calidad del modelo de lenguaje. Sin embargo, esto no permite a los desarrolladores saber qué problemas ocurren con más frecuencia ni cuánto ha reducido su solución la frecuencia de aparición.

¡Estamos contratando!
Buscamos talento en producto e ingeniería para que se una a nuestra misión de poner superpoderes de desarrollo al alcance de todos.










