BIRD-INTERACT 1.0

⚠️ Annonce
Veuillez noter qu'avant le processus d'évaluation, lors du chargement des bases de données par Docker, des erreurs peuvent parfois survenir en raison d'une incohérence de l'environnement (celles-ci ne mettront pas fin au processus mais apparaîtront dans les logs Docker). Par conséquent, certaines bases de données peuvent ne pas se charger correctement, ce qui entraîne des bases de données vides. Cela peut provoquer des résultats d'évaluation anormalement bas. 👉 Nous recommandons donc fortement de vérifier les logs Docker pour toute erreur avant de lancer l'évaluation et de vous assurer que toutes les bases de données ont bien été chargées avec succès.👉 Nous avons mis à jour les Directives de soumission, où les structures d'agents personnalisés sont désormais prises en charge. N'hésitez pas à consulter nos directives de soumission détaillées ici.
📰 Actualités
- [2025-11-06] 🐛 Correction de bug & 🐳 Mise à jour Docker : Mise à jour de la version de sqlglot vers 26.16.4 pour corriger le bug où l'analyseur SQL ne parvient pas à analyser correctement le SQL pour le simulateur utilisateur. Vous pouvez corriger cela en le réinstallant via
pip install sqlglot==26.16.4dans l'environnementbird_interact_eval. L'imagebird_interact_evalest également mise à jour, vous pouvez donc la récupérer et recréer le conteneurbird_interact_eval. - [2025-10-21] 🐳 Mise à jour Docker : Nous avons ajouté le docker pour l'environnement Full DB. Nous avons également publié 3 images docker (Base/Full DB Env et l'environnement d'évaluation pour
a-Interactetc-Interact) sur Docker Hub afin de faciliter la configuration de l'environnement. Plus besoin de télécharger les dumps DB et de créer les images manuellement ! - [2025-10-08] 📝 Notre article Bird-Interact est désormais disponible publiquement !
- [2025-08-26] 🚀 Nous sommes heureux d'annoncer la sortie du BIRD-Interact-Full (600) !
c-interact et a-interact.
👉 Pour plus de détails, veuillez consulter notre site projet.- [2025-08-26] 📬 Nous enverrons les Ground Truth & cas de test à notre liste de diffusion cette semaine.
- [2025-08-26] 💾 Par ailleurs, nous avons également publié une version SQLite de LiveSQLBench-Lite pour faciliter la recherche locale.
- [2025-08-22] Correction de bug : Dans le code Bird-Interact-Agent, nous avons corrigé un bug où, lors de l'évaluation de la phase 2 SQL, le SQL de la phase 1 stocké ne pouvait pas être exécuté avec succès, conduisant à un taux de réussite plus faible en Phase 2. Ce bug n'affecte que les tâches où le SQL de la phase 1 effectue des opérations sur la base de données, par exemple CREATE table, etc.
🧸 Aperçu
BIRD-INTERACT, un benchmark interactif text-to-SQL, réinvente l'évaluation Text-to-SQL à travers le prisme des interactions dynamiques. L'environnement combine une base de connaissances hiérarchique, la documentation de base de données et un simulateur d'utilisateur piloté par fonctions pour recréer des environnements d'entreprise authentiques couvrant l'ensemble des opérations CRUD. Il propose deux modes de test rigoureux : (1) Interaction Conversationnelle passive et (2) Interaction Agentique active, couvrant 600 tâches annotées incluant Business Intelligence (BI), opérations CRUD, etc., chacune protégée par des cas de test exécutables. Les évaluations typiques déclenchent de 1 968 à 5 496 tours d'interaction entre le modèle et le simulateur utilisateur, tandis que les modèles de raisonnement de pointe ne résolvent actuellement que ≈24% et ≈18% des tâches, soulignant le défi du benchmark.
✅ Deux modes d'évaluation
BIRD-INTERACT prend en charge deux modes d'évaluation comme mentionné ci-dessus :
- c-Interact : Interaction Conversationnelle, qui est un mode passif avec un flux de travail fixé. Le code et les informations détaillées sont disponibles dans
bird_interact_conv. - a-Interact : Interaction Agentique, qui est un mode actif incarné où le flux de travail est dynamique et guidé par les modèles. Le code et les informations détaillées sont disponibles dans
bird_interact_agent.
🐣 Version Lite
Nous publions une version allégée de BIRD-INTERACT, bird-interact-lite-exp, qui comprend 270 tâches réelles de haute qualité, spécifiquement pour PostgreSQL. C'est un bon point de départ pour des expérimentations rapides.
🦜 Version Complète
La version complète de BIRD-INTERACT, bird-interact-full, est un benchmark exhaustif incluant 600 tâches pour PostgreSQL. Elle couvre une large gamme d'opérations SQL et de requêtes utilisateurs. La version complète arrive bientôt.
Résultats de performance des modèles sur BIRD-INTERACT-FULL
#### 1. Performance c-Interact Text-to-SQL | Rang | Nom du modèle | Récompense normalisée | Coût moyen (USD)/Tâche | Niveau | |:----:|:------------------:|:--------------------:|:----------------------:|:-------------------:| | 1 | Gemini-2.5-Pro | 20.92 | $0.04 | 🏆 Chat excellent | | 2 | O3-Mini | 20,27 | 0,07 $ | 🏆 Excellente conversation | | 3 | Claude-Sonnet-4 | 18,35 | 0,29 $ | 💎 Bonne conversation | | 4 | Qwen-3-Coder-480B | 17,75 | 0,11 $ | 💎 Bonne conversation | | 5 | Deepseek-Chat-V3.1 | 15,15 | 0,12 $ | ✨ Standard | | 6 | Claude-Sonnet-3.7 | 13,87 | 0,29 $ | ✨ Standard | | 7 | GPT-5 | 12,58 | 0,08 $ | ⚪ Basique |
#### 2. a-Interact Text-to-SQL Performance | Rang | Nom du modèle | Récompense normalisée | Coût moyen (USD)/Tâche | Niveau | |:----:|:-------------------|:----------------------:|:-----------------------:|:-------------------------:| | 1 | GPT-5 | 25,52 | 0,24 $ | 🏆 Excellente interaction | | 2 | Claude-Sonnet-4 | 23,28 | 0,51 $ | 🏆 Excellente interaction | | 3 | Claude-Sonnet-3.7 | 17,45 | 0,60 $ | 💎 Bonne interaction | | 4 | Gemini-2.5-Pro | 17,33 | 0,22 $ | 💎 Bonne interaction | | 5 | O3-Mini | 16,43 | 0,06 $ | ✨ Standard | | 6 | Deepseek-Chat-V3.1 | 13,47 | 0,06 $ | ✨ Standard | | 7 | Qwen-3-Coder-480B | 10,58 | 0,07 $ | ⚪ Basique |
\ Paramètres de budget : Budget initial/Budget de patience utilisateur, mesuré par notre monnaie virtuelle bird-coin*s. Voir bird_interact_agent/README.md pour plus de détails.
Mise à l’échelle du temps d’interaction (ITS)
La mise à l’échelle du temps d’interaction (ITS) fait référence à la capacité d’un modèle à augmenter continuellement sa performance finale grâce à des interactions multi-tours. Lorsque cette performance interactive dépasse la performance idéalisée du modèle en un seul tour sur une tâche pleinement spécifiée et non ambiguë, on dit qu’il satisfait la loi ITS. À mesure que la patience de l’utilisateur augmente et que les tours d’interaction s’accumulent, la performance continue de s’améliorer, démontrant que le modèle peut maintenir une communication efficace sur un dialogue prolongé. Actuellement, seul claude-3-7-sonnet satisfait la loi ITS.
Configuration de l’environnement
- Lancez les conteneurs Docker pour la base de données bird-interact-lite, la base de données bird-interact-full et l’environnement d’évaluation :
bird-interact-lite, vous pouvez commenter le service postgresql_full dans docker-compose.yml pour accélérer la configuration de l’environnement.
Démarrez l’environnement en exécutant :
cd env
docker compose pull
docker compose up -d
``
Attendez quelques minutes pour l'initialisation de la base de données.
Vous pouvez suivre l'avancement de la construction en :
`bash
docker compose logs -f --tail=100 bird_interact_postgresql_full # or bird_interact_postgresql for bird-interact-lite
`
Si vous avez terminé, vous devriez voir les journaux sans erreurs comme :
`bash
bird_interact_postgresql_full | 2025-10-28 17:58:30.413 HKT [1] LOG: database system is ready to accept connection
`
Si vous avez déjà créé des conteneurs et souhaitez les recréer, vous pouvez exécuter la commande suivante :
`bash
docker compose down -v # this cmd removes the containers and the volumes
docker compose pull # pull the latest images from Docker Hub
docker compose up -d --force-recreate # build and start the containers again. --force-recreate means force the recreation of the containers.
# Or docker compose up -d --force-recreate bird_interact_eval to only recreate the bird_interact_eval container about evalution code environment.
`
Cela lance 3 conteneurs utilisant des images pré-construites depuis Docker Hub :
bird_interact_postgresql : Base de données PostgreSQL pour bird-interact-lite
bird_interact_postgresql_full : Base de données PostgreSQL pour bird-interact-full
bird_interact_eval : Environnement d'évaluation pour a-Interact et c-Interact. Vous pouvez maintenant démarrer l'environnement d'évaluation en exécutant la commande suivante :
`bash
docker compose exec bird_interact_eval bash
`
- (Optionnel) Construisez l'environnement manuellement (si vous souhaitez créer les images à partir de zéro) :
- Téléchargez les dumps de base de données
- bird-interact-lite. Décompressez et renommez-le en
env/postgre_table_dumps.
bird-interact-full. Décompressez et renommez-le en env/postgre_table_dumps_full.
Construisez l'environnement manuellement en lançant docker-compose.build.yml.
`bash
cd env/
docker compose -f docker-compose.build.yml build
docker compose -f docker-compose.build.yml up -d
`- (Recommandé) Vérifiez que les conteneurs de base de données sont construits et fonctionnent correctement.
- Affichez les journaux de construction des conteneurs pour vous assurer que les bases de données sont créées avec succès sans erreurs :
`bash
docker logs bird_interact_postgresql > build_bird_interact_postgresql.log 2>&1
docker logs bird_interact_postgresql_full > build_bird_interact_postgresql_full.log 2>&1
`
Si des erreurs surviennent, "Des erreurs sont survenues lors de l'importation :" sera affiché dans les fichiers journaux.- Vérifiez si les conteneurs de la base de données sont en bon état.
Utilisez notre script Python fourni pour vérifier les métadonnées de la base de données :
`bash
docker compose exec bird_interact_eval bash
cd /app/env
python check_db_metadata.py --host bird_interact_postgresql
python check_db_metadata.py --host bird_interact_postgresql_full
`
Résultats attendus :
- bird-interact-lite :
- 📈 Bases de données totales : 18
- 📋 Tables totales : 175
- 🔢 Colonnes totales : 2286
- 📈 Moyenne de lignes par table : 1 038,48
- 💾 Taille totale : 207,15 Mo (environ)
- bird-interact-full :
- 📈 Bases de données totales : 22
- 📋 Tables totales : 244
- 🔢 Colonnes totales : 2011
- 📈 Moyenne de lignes par table : 1 121,19
- 💾 Taille totale : 272,00 Mo (environ)
📦 Détails du jeu de données
Description du jeu de données
- Base de données : La base de données PostgreSQL complète peut être téléchargée depuis bird-interact-lite et bird-interact-full.
- data : Chaque instance de données contient les éléments principaux suivants :
selected_database : Le nom de la base de données.
query : La requête utilisateur non ambiguë.
amb_user_query : La requête utilisateur avec des ambiguïtés injectées.
user_query_ambiguity : Les ambiguïtés injectées dans la requête utilisateur.
non_critical_ambiguity : Les ambiguïtés non critiques comme l’ordre, la limite, etc.
knowledge_ambiguity : Les ambiguïtés créées par des connaissances externes masquées.
sol_sql : La solution SQL de référence.
preprocess_sql : Les requêtes SQL à exécuter avant d’exécuter la solution ou la prédiction.
clean_up_sql : Les requêtes SQL à exécuter après les cas de test pour annuler les modifications apportées à la base de données.
test_cases : Un ensemble de cas de test pour valider le SQL corrigé prédit.
follow_up : Les questions de suivi annotées.
external_knowledge : Les connaissances externes liées à la tâche spécifique.evaluation : Le code d’évaluation est disponible dans le répertoire ./evaluation.
Préparé par : Équipe BIRD & Google Cloud
Licence : cc-by-sa-4.0
Fiche de jeu de données HuggingFace : bird-interact-lite
et bird-interact-full
Utilisations du jeu de données
Pour éviter toute fuite de données par auto-crawling, nous n'incluons pas les solutions SQL GT ni les cas de test avec les données.
Veuillez envoyer un e-mail à bird.bench25@gmail.com avec le tag
[bird-interact-lite GT&Test Cases] ou [bird-interact-full GT&Test Cases] dans le titre pour obtenir la vérité terrain et les cas de test du jeu de données bird-interact-lite ou bird-interact-full, qui vous seront envoyés automatiquement.Combiner les données publiques avec la vérité terrain et les cas de test
Utilisez ensuite le script suivant pour combiner les données publiques avec la vérité terrain et les cas de test :
Prenons la version complète comme exemple :
(1) Exécutez :
bash
python combine_public_with_gt.py /path/to/bird-interact-full/bird_interact_data.jsonl /path/to/bird_interact_full_gt_kg_testcases_08022.jsonl /path/to/bird_interact_data.jsonl # bird_interact_full_gt_kg_testcases_08022.jsonl is the data of ground-truth fields, which is obtained by emailing us.
bash cp /path/to/bird_interact_data.jsonl /path/to/bird-interact-full/bird_interact_data.jsonlCela créera un nouveau fichier à l'emplacement/path/to/bird_interact_data.jsonlcontenant les données combinées.(2) Remplacez ensuite les données publiques originales par les données combinées :
Idem pour les autres versions : bird-interact-lite, version mini, etc. Il suffit de définir les bons chemins pour les données publiques, la vérité terrain et les cas de test, puis de remplacer les données publiques par les données combinées.
. Voir