Chain-of-Thought Hub est un framework open-source conçu pour mesurer les capacités de raisonnement complexe des grands modèles de langage (LLM). En exploitant la technique du "Chain-of-Thought" (chaîne de pensée), cet outil permet de comparer les performances de modèles tels que GPT-4, Claude ou Llama sur des tâches logiques ardues. Ce guide détaille comment configurer l'environnement, paramétrer les modèles et exécuter des benchmarks complets.
Configuration de l'environnement de test
Pour commencer, vous devez cloner le dépôt et préparer l'environnement Python. Il est recommandé d'utiliser Python 3.8 ou une version ultérieure.
# Initialisation du projet
git clone https://github.com/suzgunmirac/chain-of-thought-hub.git
cd chain-of-thought-hub
python3 -m pip install -r requirements.txt
L'architecture du projet sépare les scripts d'évaluation par famille de modèles et par benchmark, notamment dans le répertoire BBH/ pour le benchmark "Big-Bench Hard".
Gestion des accès API
L'outil interagit avec les modèles via leurs API respectives. Vous devez définir vos clés d'accès dans votre environnement système ou via un fichier de configuration. Voici comment procéder pour les principaux fournisseurs :
# Configuration des accès via variables d'environnement
export OPENAI_API_KEY="votre_cle_openai"
export ANTHROPIC_API_KEY="votre_cle_anthropic"
Les modèles configurés utilisent des templates spécifiques situés dans BBH/lib_prompt/. Ces fichiers définissent comment les exemples "few-shot" sont présentés au modèle pour induire un raisonnement étape par étape.
Exécution d'un benchmark BBH
Le benchmark Big-Bench Hard (BBH) regroupe 27 tâches complexes où le raisonnement logique est indispensable. Pour lancer une évaluation sur l'ensemble des tâches avec un modèle spécifique, utilisez le script dédié :
# Lancement de l'évaluation pour GPT-4 Turbo
python3 BBH/run_bbh_gpt_4_turbo.py \
--task all \
--shots 3 \
--output_dir ./resultats_evaluation/gpt4_turbo
Détails des options :
--task: Définit la tâche cible (ex:logical_deduction) ouallpour l'intégralité du benchmark.--shots: Nombre d'exemples de démonstration inclus dans le prompt (généralement entre 3 et 8).--output_dir: Répertoire de destination pour les journaux et les scores finaux.
Analyse et interprétation des métriques
Une fois l'exécution terminée, les données sont stockées au format JSON. Les indicateurs clés à surveiller sont :
- Exactitude (Accuracy) : Le pourcentage de réponses finales correctes par rapport aux labels de référence.
- Cohérence de la chaîne de pensée : Analyse qualitative de la structure logique générée avant la réponse finale.
- Temps de réponse : Latence moyenne par requête pour évaluer l'efficacité opérationnelle.
Pour visualiser ces performances, le projet inclut des notebooks Jupyter permettant de générer des graphiques comparatifs entre différents modèles.
Extension du framework à de nouvelles tâches
Il est possible d'intégrer vos propres jeux de données pour tester des domaines spécifiques :
- Ajoutez vos données JSON dans
BBH/data/. - Créez un template de prompt adapté dans
BBH/lib_prompt/. - Enregistrez la nouvelle tâche dans le script de pilotage principal pour permettre son exécution automatique.
L'optimisation des prompts joue un rôle crucial. Expérimenter avec des variantes de la consigne "Let's think step by step" ou modifier la structure des exemples peut influencer significativement la précision du raisonnement produit par le LLM.