Buckets:
| # Evaluación | |
| Con un modelo ajustado mediante SFT o LoRA SFT, deberíamos evaluarlo sobre benchmarks estándar. Como ingenieros de machine learning, conviene mantener una batería de evaluaciones relevantes para el dominio en el que trabajas. En esta página veremos algunos de los benchmarks más comunes y cómo usarlos para evaluar tu modelo. También veremos cómo crear benchmarks personalizados para tu caso de uso. | |
| ## Benchmarks automáticos | |
| Los benchmarks automáticos sirven como herramientas estandarizadas para evaluar modelos de lenguaje en distintas tareas y capacidades. Aunque proporcionan un punto de partida útil para entender el rendimiento de un modelo, es importante recordar que solo representan una parte de una estrategia de evaluación completa. | |
| ## Entender los benchmarks automáticos | |
| Los benchmarks automáticos suelen consistir en datasets curados con tareas y métricas predefinidas. Su objetivo es evaluar distintos aspectos de la capacidad del modelo, desde la comprensión básica del lenguaje hasta formas más complejas de razonamiento. Su ventaja principal es la estandarización: permiten comparar modelos de forma consistente y obtener resultados reproducibles. | |
| Sin embargo, conviene tener presente que un buen resultado en benchmarks no siempre se traduce directamente en efectividad en el mundo real. Un modelo que sobresale en benchmarks académicos puede seguir teniendo dificultades en aplicaciones prácticas o en dominios concretos. | |
| ## Benchmarks de conocimiento general | |
| [MMLU](https://huggingface.co/datasets/cais/mmlu) (Massive Multitask Language Understanding) pone a prueba conocimientos en 57 materias, desde ciencias hasta humanidades. Aunque es muy completo, puede no reflejar la profundidad de especialización necesaria en dominios específicos. TruthfulQA evalúa la tendencia de un modelo a reproducir ideas equivocadas comunes, aunque no puede capturar todas las formas de desinformación. | |
| ## Benchmarks de razonamiento | |
| [BBH](https://huggingface.co/datasets/lukaemon/bbh) (Big Bench Hard) y [GSM8K](https://huggingface.co/datasets/openai/gsm8k) se centran en tareas complejas de razonamiento. BBH evalúa razonamiento lógico y planificación, mientras que GSM8K se orienta específicamente a la resolución de problemas matemáticos. Estos benchmarks ayudan a medir capacidades analíticas, aunque pueden no capturar el tipo de razonamiento matizado que se necesita en escenarios reales. | |
| ## Comprensión del lenguaje | |
| [HELM](https://github.com/stanford-crfm/helm) proporciona un marco de evaluación holístico. Benchmarks como HELM ofrecen información sobre capacidades de procesamiento del lenguaje en aspectos como sentido común, conocimiento del mundo y razonamiento. Aun así, pueden no reflejar por completo la complejidad de la conversación natural o de la terminología específica de ciertos dominios. | |
| ## Benchmarks específicos de dominio | |
| Veamos algunos benchmarks centrados en dominios concretos como matemáticas, programación y chat. | |
| El [benchmark MATH](https://huggingface.co/papers/2103.03874) es una herramienta importante para evaluar razonamiento matemático. Consta de 12.500 problemas de competiciones matemáticas y cubre álgebra, geometría, teoría de números, conteo, probabilidad y más. Lo que hace especialmente difícil a MATH es que exige razonamiento en varios pasos, comprensión de notación matemática formal y capacidad para generar soluciones paso a paso. A diferencia de tareas aritméticas simples, los problemas de MATH suelen requerir estrategias sofisticadas de resolución y aplicación de conceptos matemáticos. | |
| El [benchmark HumanEval](https://github.com/openai/human-eval) es un dataset de evaluación centrado en programación que consta de 164 problemas. Evalúa la capacidad del modelo para generar código Python funcionalmente correcto que resuelva las tareas planteadas. Lo que lo hace especialmente valioso es que comprueba tanto la generación de código como su corrección funcional mediante ejecución de tests, en lugar de limitarse a medir similitud superficial con soluciones de referencia. Los problemas van desde manipulación básica de cadenas hasta algoritmos y estructuras de datos más complejos. | |
| [Alpaca Eval](https://tatsu-lab.github.io/alpaca_eval/) es un marco de evaluación automatizado diseñado para valorar la calidad de modelos que siguen instrucciones. Usa GPT-4 como juez para evaluar respuestas del modelo en dimensiones como utilidad, honestidad e inocuidad. El marco incluye un dataset de 805 prompts cuidadosamente seleccionados y permite comparar respuestas con múltiples modelos de referencia, como Claude, GPT-4 y otros. Lo interesante de Alpaca Eval es que proporciona evaluaciones consistentes y escalables sin necesidad de anotadores humanos, manteniendo cierta sensibilidad a aspectos matizados del rendimiento que métricas más tradicionales suelen pasar por alto. | |
| ## Enfoques alternativos de evaluación | |
| Muchas organizaciones han desarrollado métodos de evaluación alternativos para abordar las limitaciones de los benchmarks estándar. | |
| ### LLM-as-Judge | |
| Usar un modelo de lenguaje para evaluar las salidas de otro se ha vuelto cada vez más popular. Este enfoque puede ofrecer una retroalimentación más matizada que las métricas tradicionales, aunque también introduce sus propios sesgos y limitaciones. | |
| ### Arenas de evaluación | |
| Las arenas de evaluación como [Chatbot Arena](https://lmarena.ai/) ofrecen una forma distinta de evaluar LLM mediante retroalimentación colectiva. En estas plataformas, las personas usuarias participan en "batallas" anónimas entre dos LLM, hacen preguntas y votan cuál responde mejor. Este enfoque recoge patrones de uso del mundo real y preferencias a partir de preguntas diversas y exigentes, y distintos estudios han mostrado una fuerte correlación entre los votos de la comunidad y las evaluaciones expertas. Aun así, estas plataformas también tienen limitaciones: pueden estar sesgadas por la base de usuarios, por la distribución de prompts y por su foco principal en utilidad más que en seguridad. | |
| ### Suites de benchmarks personalizados | |
| Las organizaciones suelen desarrollar suites internas adaptadas a sus necesidades y casos de uso. Estas suites pueden incluir tests de conocimiento específico del dominio o escenarios de evaluación que reproduzcan condiciones reales de despliegue. | |
| ## Evaluación personalizada | |
| Aunque los benchmarks estándar proporcionan una base útil, no deberían ser tu único método de evaluación. Un enfoque más completo puede seguir estos pasos: | |
| 1. Empieza con benchmarks estándar relevantes para establecer una línea base y facilitar comparaciones con otros modelos. | |
| 2. Identifica los requisitos y desafíos específicos de tu caso de uso. ¿Qué tareas realizará realmente el modelo? ¿Qué errores serían más problemáticos? | |
| 3. Desarrolla datasets de evaluación personalizados que reflejen tu caso de uso real. Por ejemplo: | |
| - Consultas reales de personas usuarias en tu dominio | |
| - Casos límite frecuentes | |
| - Escenarios especialmente difíciles | |
| 4. Considera una estrategia de evaluación en varias capas: | |
| - Métricas automáticas para retroalimentación rápida | |
| - Evaluación humana para captar matices | |
| - Revisión por expertos del dominio en aplicaciones especializadas | |
| - Pruebas A/B en entornos controlados | |
| ## Implementar evaluaciones personalizadas | |
| En esta sección implementaremos evaluación para nuestro modelo ajustado. Podemos usar [`lighteval`](https://github.com/huggingface/lighteval) para evaluar el modelo sobre benchmarks estándar, ya que incluye una amplia variedad de tareas integradas. Solo necesitamos definir qué tareas evaluar y qué parámetros usar. | |
| Las tareas de LightEval se definen con un formato específico: | |
| ``` | |
| {suite}|{task}|{num_few_shot}|{auto_reduce} | |
| ``` | |
| | Parámetro | Descripción | | |
| |-----------|-------------| | |
| | `suite` | La suite de benchmarks, por ejemplo `mmlu` o `truthfulqa` | | |
| | `task` | La tarea concreta dentro de la suite, por ejemplo `abstract_algebra` | | |
| | `num_few_shot` | Número de ejemplos incluidos en el prompt, `0` para zero-shot | | |
| | `auto_reduce` | Si debe reducir automáticamente los ejemplos few-shot cuando el prompt es demasiado largo, `0` o `1` | | |
| Ejemplo: `"mmlu|abstract_algebra|0|0"` evalúa la tarea de álgebra abstracta de MMLU en modo zero-shot. | |
| ## Ejemplo de pipeline de evaluación | |
| Vamos a montar un pipeline de evaluación para nuestro modelo ajustado. Evaluaremos el modelo sobre un conjunto de subtareas relacionadas con el dominio de la medicina. | |
| Aquí tienes un ejemplo completo de evaluación sobre benchmarks automáticos relevantes para un dominio específico usando Lighteval con backend VLLM: | |
| ```bash | |
| lighteval accelerate \ | |
| "pretrained=your-model-name" \ | |
| "mmlu|anatomy|0|0" \ | |
| "mmlu|high_school_biology|0|0" \ | |
| "mmlu|high_school_chemistry|0|0" \ | |
| "mmlu|professional_medicine|0|0" \ | |
| --max_samples 40 \ | |
| --batch_size 1 \ | |
| --output_path "./results" \ | |
| --save_generations true | |
| ``` | |
| Los resultados se muestran en formato tabular: | |
| ```text | |
| | Task |Version|Metric|Value | |Stderr| | |
| |----------------------------------------|------:|------|-----:|---|-----:| | |
| |all | |acc |0.3333|± |0.1169| | |
| |leaderboard:mmlu:_average:5 | |acc |0.3400|± |0.1121| | |
| |leaderboard:mmlu:anatomy:5 | 0|acc |0.4500|± |0.1141| | |
| |leaderboard:mmlu:high_school_biology:5 | 0|acc |0.1500|± |0.0819| | |
| ``` | |
| Lighteval también incluye una API en Python para tareas de evaluación más detalladas, lo que resulta útil si quieres manipular los resultados con más flexibilidad. Consulta la [documentación de Lighteval](https://huggingface.co/docs/lighteval/using-the-python-api) para más información. | |
| > [!TIP] | |
| > ✏️ **Pruébalo**. Evalúa tu modelo ajustado en una tarea específica de lighteval. | |
| # Quiz de final de capítulo[[end-of-chapter-quiz]] | |
| ### 1. ¿Cuáles son las principales ventajas de usar benchmarks automáticos para evaluar modelos? | |
| ### 2. ¿Qué benchmark evalúa específicamente conocimiento en 57 materias diferentes? | |
| ### 3. ¿Qué es LLM-as-Judge? | |
| ### 4. ¿Qué debería incluir una estrategia de evaluación completa? | |
| ### 5. ¿Cuál es una limitación de los benchmarks automáticos? | |
| ### 6. ¿Cuál es el propósito de crear datasets de evaluación personalizados? | |
Xet Storage Details
- Size:
- 10.5 kB
- Xet hash:
- a0d84472698440511d0e2a92d7d945d935066e4e7919cc3d64d3d82a8a26d709
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.