Antoine Chatry, foto de perfil, desarrollador web

Antoine Chatry

codewars score

¿Cómo funciona mi herramienta CodeQuantBenchmark?

Me complace compartir con ustedes mi último proyecto: CodeQuantBenchmark, una caja de herramientas que desarrollé para automatizar y estandarizar la evaluación comparativa (benchmarking) de modelos cuantificados en tareas relacionadas con código.

Esta herramienta está diseñada para acompañarte desde los datos sin procesar hasta métricas significativas sin tener que unir un montón de scripts cada vez. Combina el preprocesamiento de datos, soporte opcional de fine-tuning, flujos de trabajo de cuantificación con múltiples precisiones y benchmarking detallado en un solo pipeline. Así es como funciona:


1. Preparación de los datos

Primero, la caja de herramientas carga tu conjunto de datos de ejemplos de código.
Dependiendo de la tarea, puede extraer información estructural del código, por ejemplo, árboles sintácticos abstractos (AST), para que las evaluaciones no se limiten solo a la comparación de texto plano.
El uso de la extracción de AST permite generar representaciones estructuradas que luego pueden usarse en evaluaciones o flujos de predicción para analizar con mayor detalle cómo los modelos entienden la estructura y la semántica del código.

2. Fine-tuning opcional

Una vez que los datos están listos, puedes optar por ajustar (fine-tune) el modelo en tu conjunto de datos específico.
Esto es particularmente útil si quieres adaptar tu modelo antes de cuantificarlo o evaluarlo.
El proyecto incluye scripts utilitarios y ejemplos para ejecutar un fine-tuning inspirado en enfoques de tipo QLoRA o adaptación de bajo rango, lo que permite mejorar la precisión del modelo antes de la cuantificación.

3. Cuantificación

La cuantificación consiste en reducir la precisión de un modelo para ahorrar memoria y acelerar la inferencia.
CodeQuantBenchmark admite la conversión de modelos a varios formatos cuantificados, por ejemplo, diferentes precisiones GGUF que van de Q2 a Q8.
Esto se basa en utilidades de conversión existentes que implementan varias estrategias de cuantificación para minimizar errores, produciendo checkpoints cuantificados estandarizados que puedes evaluar de forma sistemática.
Estos distintos niveles de precisión facilitan comparar de manera controlada cómo la cuantificación afecta el comportamiento del modelo.

4. Ejecución de benchmarks

Con un modelo cuantificado listo, la herramienta ejecuta evaluaciones utilizando una variedad de métricas:
• Métricas de calidad como validez sintáctica, puntuación BLEU o similitud Jaccard para comparar el código generado con las referencias
• Medidas de latencia como tokens por milisegundo
• Uso de memoria durante la inferencia
Estas métricas te ayudan a entender los compromisos entre eficiencia, tamaño del modelo y calidad de salida, lo cual es especialmente útil cuando comparas diferentes niveles o formatos de cuantificación.
CodeQuantBenchmark también proporciona pruebas unitarias y de integración opcionales, lo que sirve como referencia para validar tus pipelines.

5. Visualización de resultados

A medida que se completan los benchmarks, los resultados se recopilan y visualizan. La caja de herramientas genera gráficos y registros estructurados para que puedas comparar fácilmente los experimentos o reproducirlos más adelante.
Todo está pensado de forma modular para que puedas agregar tus propias métricas, tareas de evaluación o formatos de exportación si es necesario. Esto facilita la creación de flujos de trabajo reproducibles para investigación o experimentación comparativa.

Resumen rápido y tecnologías utilizadas

En resumen: configuras el pipeline, proporcionas los datos y los puntos de control de los modelos, ejecutas los benchmarks y obtienes una vista completa del rendimiento de los modelos bajo cuantificación.


Tecnologías utilizadas:

Python para scripting y orquestación
Herramientas de extracción de AST para características estructuradas del código
Utilidades de conversión multi-precisión para cuantificación
Módulos de métricas para calidad y rendimiento
Herramientas de visualización para informes y síntesis
Unsloth Notebook para el .ipynb generado

Enlace al proyecto: https://github.com/AntoineChatry/CodeQuantBenchmark


¡Espero que este artículo te dé una visión clara de cómo funciona CodeQuantBenchmark y cómo puede ayudar a hacer benchmarking de modelos de forma reproducible!