Photo de profil d'Antoine Chatry, developpeur web

Antoine Chatry

codewars score

Comment fonctionne mon outil CodeQuantBenchmark ?

Je suis heureux de partager avec vous mon dernier projet : CodeQuantBenchmark, une boîte à outils que j'ai développée pour automatiser et standardiser le benchmarking de modèles quantifiés sur des tâches liées au code.

Cet outil est conçu pour vous accompagner du traitement des données brutes jusqu’à des métriques pertinentes sans avoir à assembler un tas de scripts à chaque fois. Il combine le pré-traitement des données, la prise en charge optionnelle du fine-tuning, des workflows de quantification multi-précisions ainsi que des benchmarks détaillés dans un pipeline unique. Voici comment il fonctionne :


1. Préparation des données

Tout d'abord, la boîte à outils charge votre jeu de données d’exemples de code.
Selon la tâche, elle peut extraire des informations structurelles issues du code, par exemple les arbres syntaxiques abstraits (AST), afin que les évaluations ne se limitent pas à une simple comparaison de texte.
L’utilisation d’une extraction AST permet de générer des représentations structurées qui peuvent ensuite être exploitées lors des évaluations ou des prédictions pour analyser plus finement comment les modèles comprennent la structure et la sémantique du code.

2. Fine-tuning optionnel

Une fois les données prêtes, vous pouvez choisir de faire un fine-tuning du modèle sur votre jeu de données spécifique.
Cela est particulièrement utile si vous souhaitez adapter votre modèle avant de le quantifier ou de le benchmarker.
Le projet inclut des scripts utilitaires et des exemples pour exécuter un fine-tuning basé sur des approches de type QLoRA ou adaptation de faible rang, ce qui permet d'améliorer la précision du modèle avant la quantification.

3. Quantification

La quantification consiste à réduire la précision d’un modèle pour économiser de la mémoire et accélérer l’inférence.
CodeQuantBenchmark prend en charge la conversion de modèles vers plusieurs formats quantifiés, par exemple différentes précisions GGUF allant de Q2 à Q8 selon vos besoins.
Cela s’appuie sur des utilitaires de conversion existants et prend en charge plusieurs stratégies de quantification pour minimiser l’erreur tout en produisant des checkpoints quantifiés standardisés.
Ces différents niveaux de précision facilitent la comparaison systématique de l’influence de la quantification sur le comportement des modèles.

4. Exécution des benchmarks

Une fois un modèle quantifié prêt, l’outil exécute des évaluations en utilisant une variété de métriques :
• Des métriques de qualité telles que la validité syntaxique, le score BLEU ou la similarité Jaccard pour comparer le code généré aux références
• Des mesures de latence comme le nombre de tokens par milliseconde
• L’utilisation de mémoire lors de l’inférence
Ces métriques vous aident à comprendre les compromis entre l’efficacité, la taille du modèle et la qualité de sortie, ce qui est particulièrement utile lorsque vous comparez différents niveaux ou formats de quantification.
CodeQuantBenchmark fournit également des tests unitaires et d’intégration en option, ce qui sert de référence pour valider vos pipelines.

5. Affichage des résultats

Au fur et à mesure que les benchmarks se terminent, les résultats sont collectés et visualisés. La boîte à outils génère des graphiques et des journaux structurés afin que vous puissiez facilement comparer les expériences ou les reproduire ultérieurement.
Tout est pensé de manière modulaire afin que vous puissiez ajouter vos propres métriques, tâches d’évaluation ou formats d’export si nécessaire. Cela facilite la création de workflows reproductibles pour la recherche ou les expérimentations comparatives.

Résumé rapide et technologies utilisées

En résumé : vous configurez le pipeline, fournissez les données et les checkpoints de modèles, exécutez les benchmarks et obtenez une vue complète des performances des modèles sous quantification.


Technologies utilisées :

Python pour les scripts et l’orchestration
Outils d’extraction AST pour des caractéristiques structurées du code
Utilitaires de conversion multi-précision pour la quantification
Modules de métriques pour la qualité et les performances
Outils de visualisation pour les rapports et les synthèses
Unsloth Notebook pour le .ipynb généré

Lien vers le projet : https://github.com/AntoineChatry/CodeQuantBenchmark


J’espère que cet article vous donne une vue claire de la façon dont CodeQuantBenchmark fonctionne et comment il peut aider à rendre le benchmarking de modèles reproductible !