Note
Nota: Este documento es una versión traducida automáticamente y puede contener imprecisiones. ¡Agradecemos sus contribuciones para mejorar la traducción!
Un conjunto de datos de evaluación ultraligero y un generador sintético
para exponer fallos críticos de LLM en segundos, ideal para CI/CD y LLMOps.
GitHub • Conjunto de datos de Hugging Face • Artículo (arXiv:2505.12058) • PyPI
Tiny QA Benchmark++ (TQB++) es un conjunto de evaluación ultraligero y un paquete de Python diseñado para exponer fallos críticos en sistemas de Modelos de Lenguaje Grandes (LLM) en cuestión de segundos. Sirve como pruebas unitarias de software para LLM, ideal para comprobaciones rápidas de CI/CD, ingeniería de prompts y garantía de calidad continua en LLMOps modernos, para ser utilizado junto con herramientas de evaluación de LLM existentes como Opik.
Este repositorio contiene la implementación oficial y los conjuntos de datos sintéticos para el artículo: Tiny QA Benchmark++: Micro Gold Dataset with Synthetic Multilingual Generation for Rapid LLMOps Smoke Tests.
- Artículo: arXiv:2505.12058
- Hugging Face Hub: datasets/vincentkoc/tiny_qa_benchmark_pp
- Repositorio de GitHub: vincentkoc/tiny_qa_benchmark_pp
- Núcleo Inmutable Gold Standard: Un conjunto de datos de Preguntas y Respuestas (QA) en inglés de 52 ítems elaborado a mano (
core_en) para pruebas de regresión deterministas de datasets/vincentkoc/tiny_qa_benchmark anteriores. - Kit de Herramientas de Personalización Sintética: Un script de Python (
tools/generator) que utiliza LiteLLM para generar micro-benchmarks a medida bajo demanda para cualquier idioma, tema o dificultad. - Metadatos Estandarizados: Artefactos empaquetados en formato Croissant JSON-LD (
metadata/) para su descubrimiento y carga automática por herramientas y motores de búsqueda. - Ciencia Abierta: Todo el código (generador, scripts de evaluación) y el conjunto de datos principal en inglés se publican bajo la licencia Apache-2.0. Los paquetes de datos generados sintéticamente tienen una licencia personalizada de solo evaluación.
- Alineación con LLMOps: Diseñado para una fácil integración en pipelines de CI/CD, flujos de trabajo de ingeniería de prompts, detección de deriva multilingüe y paneles de observabilidad.
- Paquetes Multilingües: Paquetes preconstruidos para numerosos idiomas, incluyendo inglés, francés, español, portugués, alemán, chino, japonés, turco, árabe y ruso.
Las capacidades principales de generación sintética de TQB++ están disponibles como un paquete de Python, tinyqabenchmarkpp, que se puede instalar desde PyPI.
pip install tinyqabenchmarkpp(Nota: Asegúrate de tener Python 3.8+ y pip instalados. El nombre exacto del paquete en PyPI puede variar; por favor, comprueba la página oficial del proyecto en PyPI para el nombre correcto del paquete si este comando no funciona.)
Una vez instalado, puedes usar el comando tinyqabenchmarkpp (o python -m tinyqabenchmarkpp.generate) para crear conjuntos de datos QA personalizados.
Ejemplo:
tinyqabenchmarkpp --num 10 --languages "en,es" --categories "science" --output-file "./science_pack.jsonl"Esto generará un pequeño paquete de 10 preguntas de ciencia en inglés y español.
Para instrucciones detalladas sobre todos los parámetros disponibles (como --model, --context, --difficulty, etc.), uso avanzado y ejemplos para diferentes proveedores de LLM (OpenAI, OpenRouter, Ollama), por favor consulta el README del Kit de Herramientas del Generador o ejecuta tinyqabenchmarkpp --help.
Aunque el paquete tinyqabenchmarkpp se centra en la generación de conjuntos de datos, el proyecto TQB++ también proporciona conjuntos de datos pregenerados y herramientas de evaluación, como se describe a continuación.
Los conjuntos de datos TQB++ están disponibles en Hugging Face Hub y se pueden cargar fácilmente usando la biblioteca datasets. Esta es la forma recomendada de acceder a los datos.
from datasets import load_dataset, get_dataset_config_names
# Descubrir configuraciones de conjuntos de datos disponibles (ej. core_en, pack_fr_40, etc.)
configs = get_dataset_config_names("vincentkoc/tiny_qa_benchmark_pp")
print(f"Configuraciones disponibles: {configs}")
# Cargar el conjunto de datos principal en inglés (asumiendo que \'core_en\' es una configuración)
if "core_en" in configs:
core_dataset = load_dataset("vincentkoc/tiny_qa_benchmark_pp", name="core_en", split="train")
print(f"\\nCargados {len(core_dataset)} ejemplos de core_en:")
# print(core_dataset[0]) # Imprimir el primer ejemplo
else:
print("\\nNo se encontró la configuración \'core_en\'.")
# Cargar un paquete sintético específico (ej. un paquete en francés)
# Reemplaza \'pack_fr_40\' con un nombre de configuración real de la lista `configs`
example_pack_name = "pack_fr_40" # u otro nombre de configuración válido
if example_pack_name in configs:
synthetic_pack = load_dataset("vincentkoc/tiny_qa_benchmark_pp", name=example_pack_name, split="train")
print(f"\\nCargados {len(synthetic_pack)} ejemplos de {example_pack_name}:")
# print(synthetic_pack[0]) # Imprimir el primer ejemplo
else:
print(f"\\nNo se encontró la configuración \'{example_pack_name}\'. Por favor, elige entre las configuraciones disponibles.")Para obtener información más detallada sobre los conjuntos de datos, incluyendo su estructura y licencias específicas, por favor consulta los archivos README dentro del directorio data/ (es decir, data/README.md, data/core_en/README.md y data/packs/README.md).
data/: Contiene los conjuntos de datos QA.core_en/: El conjunto de datos original de 52 ítems en inglés elaborado a mano.packs/: Paquetes de datos multilingües y temáticos generados sintéticamente.
tools/: Contiene scripts para la generación y evaluación de conjuntos de datos.generator/: El generador de conjuntos de datos QA sintéticos.eval/: Scripts y utilidades para evaluación de modelos contra los conjuntos de datos TQB++.
paper/: El código fuente LaTeX y archivos asociados para el artículo de investigación.metadata/: Archivos de metadatos Croissant JSON-LD para los conjuntos de datos.LICENSE: Licencia principal para la base de código (Apache-2.0).LICENCE.data_packs.md: Licencia personalizada para los paquetes de datos generados sintéticamente.LICENCE.paper.md: Licencia para el contenido del artículo.
TQB++ está diseñado para diversos flujos de trabajo de LLMOps y evaluación:
- Pruebas de Pipeline CI/CD: Úsalo como prueba unitaria con herramientas de prueba de LLM para servicios LLM para detectar regresiones.
- Ingeniería de Prompts y Desarrollo de Agentes: Obtén retroalimentación rápida al iterar en prompts o diseños de agentes.
- Integración de Arnés de Evaluación: Diseñado para un uso fluido con arneses de evaluación. Codifícalo como un YAML de OpenAI Evals (consulta
intergrations/openai-evals/README.md) o un conjunto de datos de Opik para el seguimiento en el panel de control y una evaluación robusta de LLM. La carpetaintergrations/proporciona más detalles sobre el soporte listo para usar disponible. - Detección de Deriva Multilingüe: Monitoriza las regresiones de localización usando paquetes TQB++ multilingües.
- Pruebas Adaptativas: Sintetiza nuevos micro-benchmarks sobre la marcha adaptados a características específicas o derivas de datos.
- Monitorización de Dinámicas de Ajuste Fino: Rastrea la erosión del conocimiento o cambios de capacidad no deseados durante el ajuste fino.
Si usas TQB++ en tu investigación o trabajo, por favor cita el TQB original y el artículo de TQB++:
% Este conjunto de datos sintético y generador
@misc{koctinyqabenchmarkpp,
author = {Vincent Koc},
title = {Tiny QA Benchmark++ (TQB++) Conjuntos de Datos y Kit de Herramientas},
year = {2025},
publisher = {Hugging Face & GitHub},
doi = {10.57967/hf/5531},
howpublished = {\\url{https://huggingface.co/datasets/vincentkoc/tiny_qa_benchmark_pp}},
note = {Ver también: \\url{https://github.com/vincentkoc/tiny_qa_benchmark_pp}}
}
% Artículo TQB++
@misc{koc2025tinyqabenchmarkultralightweight,
title={Tiny QA Benchmark++: Ultra-Lightweight, Synthetic Multilingual Dataset Generation & Smoke-Tests for Continuous LLM Evaluation},
author={Vincent Koc},
year={2025},
eprint={2505.12058},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2505.12058}
}El código en este repositorio (incluyendo el generador y los scripts de evaluación) y el conjunto de datos data/core_en y cualquier otra cosa no mencionada con una licencia están licenciados bajo la Licencia Apache 2.0. Consulta el archivo LICENSE para más detalles.
Los paquetes de datos generados sintéticamente en data/packs/ se distribuyen bajo una licencia personalizada "Solo Evaluación, No Comercial, Sin Derivadas". Consulta LICENCE.data_packs.md para más detalles.
Los archivos de metadatos Croissant JSON-LD en metadata/ están disponibles bajo CC0-1.0.
El contenido del artículo en paper/ está sujeto a sus propios términos de licencia, detallados en LICENCE.paper.md.