BIRD-INTERACT 1.0

⚠️ Mededeling
Let op dat er vóór het evaluatieproces, wanneer Docker de databases laadt, af en toe fouten kunnen optreden door inconsistenties in de omgeving (deze beëindigen het proces niet maar verschijnen wel in de Docker-logs). Hierdoor kunnen sommige databases niet goed worden geladen, wat kan leiden tot lege databases. Dit veroorzaakt abnormaal lage evaluatieresultaten. 👉 Daarom raden we sterk aan om vóór het uitvoeren van de evaluatie de Docker-logs te controleren op fouten en te verifiëren dat alle databases succesvol zijn geladen.👉 We hebben de Indieningsrichtlijnen bijgewerkt, waarbij aangepaste agent-scaffolds worden ondersteund. Bekijk gerust onze gedetailleerde indieningsrichtlijnen hier.
📰 Nieuws
- [2025-11-06] 🐛 Bugfix & 🐳 Docker-update: Update de sqlglot-versie naar 26.16.4 om de bug te verhelpen waarbij de sql-parser de SQL niet correct kan parseren voor de gebruikerssimulator. Je kunt dit oplossen door
pip install sqlglot==26.16.4uit te voeren in debird_interact_eval-omgeving. Hetbird_interact_eval-image is ook bijgewerkt, dus je kunt deze ook pullen en debird_interact_eval-container opnieuw aanmaken. - [2025-10-21] 🐳 Docker-update: We hebben de docker voor de Full DB Env toegevoegd. We hebben 3 docker-images (Base/Full DB Env en de evaluatieomgeving voor zowel
a-Interactalsc-Interact) naar Docker Hub gepusht om het opzetten van de omgeving te vergemakkelijken. Het is niet meer nodig om de DB-dumps te downloaden en de images handmatig te bouwen! - [2025-10-08] 📝 Ons Bird-Interact paper is nu publiek beschikbaar!
- [2025-08-26] 🚀 We zijn verheugd de release van de BIRD-Interact-Full (600) set aan te kondigen!
c-interact en a-interact onderdelen.
👉 Voor meer details, bezoek onze projectwebsite.- [2025-08-26] 📬 We sturen deze week de Ground Truth & Testcases naar onze mailinglijst.
- [2025-08-26] 💾 Even terzijde, we hebben ook een SQLite-versie van LiveSQLBench-Lite uitgebracht voor eenvoudiger lokaal onderzoek.
- [2025-08-22] Bug Fix: In de Bird-Interact-Agent code hebben we een bug opgelost waarbij tijdens het evalueren van fase-2 SQL de opgeslagen fase-1 SQL niet succesvol kon worden uitgevoerd, wat leidde tot een lager slagingspercentage van Fase-2. Deze bug treft alleen taken waarbij fase1 SQL bewerkingen op de database uitvoert, zoals CREATE table, enz.
🧸 Overzicht
BIRD-INTERACT, een interactieve text-to-SQL benchmark, herdefinieert Text-to-SQL-evaluatie vanuit het perspectief van dynamische interacties. De omgeving combineert een hiërarchische kennisbasis, database documentatie en een functiegestuurde gebruikerssimulator om authentieke bedrijfsomgevingen te recreëren met volledige CRUD-operaties. Het biedt twee strenge testmodi: (1) passieve Gespreksinteractie en (2) actieve Agentische Interactie, verdeeld over 600 geannoteerde taken waaronder Business Intelligence (BI), CRUD-operaties enz., elk beveiligd met uitvoerbare testcases. Typische evaluaties veroorzaken 1.968-5.496 interactierondes tussen model en gebruikerssimulator, terwijl state-of-the-art redeneermodellen momenteel slechts ≈24% en ≈18% van de taken oplossen, wat de uitdaging van de benchmark onderstreept.
✅ Twee Evaluatiemodi
BIRD-INTERACT ondersteunt twee evaluatiemodi zoals hierboven genoemd:
- c-Interact: Gespreksinteractie is een passieve modus en de workflow ligt vast. De code en gedetailleerde informatie zijn te vinden in
bird_interact_conv. - a-Interact: Agentische Interactie is een actieve belichaamde modus waarbij de workflow dynamisch en modelgestuurd is. De code en gedetailleerde informatie zijn te vinden in
bird_interact_agent.
🐣 Lite Versie
We brengen een lite-versie van BIRD-INTERACT uit, bird-interact-lite-exp, die 270 hoogwaardige, realistische taken bevat specifiek voor PostgreSQL. Dit is een goed startpunt voor snelle experimenten.
🦜 Volledige Versie
De volledige versie van BIRD-INTERACT, bird-interact-full, is een uitgebreide benchmark met 600 taken voor PostgreSQL. Het bestrijkt een breed scala aan SQL-operaties en gebruikersvragen. De volledige versie komt binnenkort.
Modelprestatie Resultaten op BIRD-INTERACT-FULL
#### 1. c-Interact Text-to-SQL Prestaties | Rang | Modelnaam | Genormaliseerde Beloning | Gem. Kosten (USD)/Taak | Niveau | |:----:|:-------------------|:------------------------:|:----------------------:|:------------------:| | 1 | Gemini-2.5-Pro | 20.92 | $0.04 | 🏆 Uitstekende Chat | | 2 | O3-Mini | 20,27 | $0,07 | 🏆 Uitstekende Chat | | 3 | Claude-Sonnet-4 | 18,35 | $0,29 | 💎 Goede Chat | | 4 | Qwen-3-Coder-480B | 17,75 | $0,11 | 💎 Goede Chat | | 5 | Deepseek-Chat-V3.1 | 15,15 | $0,12 | ✨ Standaard | | 6 | Claude-Sonnet-3.7 | 13,87 | $0,29 | ✨ Standaard | | 7 | GPT-5 | 12,58 | $0,08 | ⚪ Basis |
#### 2. a-Interact Text-to-SQL Prestaties | Rang | Modelnaam | Genormaliseerde Beloning | Gemiddelde Kosten (USD)/Taak | Niveau | |:----:|:-------------------|:-----------------------:|:----------------------------:|:-----------------------:| | 1 | GPT-5 | 25,52 | $0,24 | 🏆 Uitstekende Interactie | | 2 | Claude-Sonnet-4 | 23,28 | $0,51 | 🏆 Uitstekende Interactie | | 3 | Claude-Sonnet-3.7 | 17,45 | $0,60 | 💎 Goede Interactie | | 4 | Gemini-2.5-Pro | 17,33 | $0,22 | 💎 Goede Interactie | | 5 | O3-Mini | 16,43 | $0,06 | ✨ Standaard | | 6 | Deepseek-Chat-V3.1 | 13,47 | $0,06 | ✨ Standaard | | 7 | Qwen-3-Coder-480B | 10,58 | $0,07 | ⚪ Basis |
\ Budgetparameters: Startbudget/Gebruikersgeduld Budget, gemeten in onze virtuele valuta bird-coin*s. Zie bird_interact_agent/README.md voor meer details.
Interaction-Time Scaling (ITS)
Interaction-Time Scaling (ITS) verwijst naar het vermogen van een model om zijn eindprestaties continu te verhogen via meerstaps interacties. Wanneer deze interactieve prestaties de geïdealiseerde één-staps prestaties van het model op een volledig gespecificeerde, ondubbelzinnige taak overtreffen, zeggen we dat het voldoet aan de ITS-wet. Naarmate het gebruikersgeduld toeneemt en het aantal interacties groeit, blijven de prestaties stijgen, wat aantoont dat het model effectieve communicatie over langere dialogen kan volhouden. Momenteel voldoet alleen claude-3-7-sonnet aan de ITS-wet.
Omgevingsinstallatie
- Start Docker-containers voor bird-interact-lite database, bird-interact-full database en evaluatieomgeving:
bird-interact-lite, kun je de postgresql_full service in docker-compose.yml uitcommentariëren om de installatie van de omgeving te versnellen.
Start de omgeving door het volgende uit te voeren:
cd env
docker compose pull
docker compose up -d
``
Wacht enkele minuten tot de database-initialisatie is voltooid.
U kunt de voortgang van het bouwen volgen via:
`bash
docker compose logs -f --tail=100 bird_interact_postgresql_full # or bird_interact_postgresql for bird-interact-lite
`
Als het voltooid is, zou je de logs zonder fouten moeten zien zoals:
`bash
bird_interact_postgresql_full | 2025-10-28 17:58:30.413 HKT [1] LOG: database system is ready to accept connection
`
Als u eerder containers heeft gemaakt en deze opnieuw wilt aanmaken, kunt u het volgende commando uitvoeren:
`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.
`
Dit start 3 containers met vooraf gebouwde images van Docker Hub:
bird_interact_postgresql: PostgreSQL-database voor bird-interact-lite
bird_interact_postgresql_full: PostgreSQL-database voor bird-interact-full
bird_interact_eval: Evaluatie-omgeving voor zowel a-Interact als c-Interact. Nu kun je de evaluatie-omgeving starten door het volgende commando uit te voeren:
`bash
docker compose exec bird_interact_eval bash
`- (Optioneel) Bouw de omgeving handmatig (als je de images vanaf nul wilt bouwen):
- Download de database-dumps
- bird-interact-lite. Pak uit en hernoem als
env/postgre_table_dumps.
bird-interact-full. Pak uit en hernoem als env/postgre_table_dumps_full.
Bouw de omgeving handmatig door docker-compose.build.yml uit te voeren.
`bash
cd env/
docker compose -f docker-compose.build.yml build
docker compose -f docker-compose.build.yml up -d
`- (Aanbevolen) Controleer of de databasecontainers succesvol zijn gebouwd en draaien.
- Print de container build logs om te verzekeren dat de databases zonder fouten succesvol zijn gebouwd:
`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
`
Als er fouten optreden, wordt "Er zijn fouten opgetreden tijdens het importeren:" in de logbestanden afgedrukt.- Controleer of de databasecontainers in goede staat zijn.
Gebruik ons meegeleverde Python-script om de databasemetadata te verifiëren:
`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
`
Verwachte resultaten:
- bird-interact-lite:
- 📈 Totaal aantal databases: 18
- 📋 Totaal aantal tabellen: 175
- 🔢 Totaal aantal kolommen: 2286
- 📈 Gemiddeld aantal rijen per tabel: 1.038,48
- 💾 Totale grootte: 207,15 MB (ongeveer)
- bird-interact-full:
- 📈 Totaal aantal databases: 22
- 📋 Totaal aantal tabellen: 244
- 🔢 Totaal aantal kolommen: 2011
- 📈 Gemiddeld aantal rijen per tabel: 1.121,19
- 💾 Totale grootte: 272,00 MB (ongeveer)
📦 Dataset Details
Beschrijving van de dataset
- Database: De volledige PostgreSQL-database kan worden gedownload van bird-interact-lite en bird-interact-full.
- data: Elke gegevensinstance bevat de volgende hoofdonderdelen:
selected_database: De naam van de database.
query: De eenduidige gebruikersquery.
amb_user_query: De gebruikersquery met geïnjecteerde ambiguïteiten.
user_query_ambiguity: De ambiguïteiten die in de gebruikersquery zijn geïnjecteerd.
non_critical_ambiguity: De niet-kritische ambiguïteiten zoals volgorde, limiet, enz.
knowledge_ambiguity: De ambiguïteiten die ontstaan door gemaskeerde externe kennis.
sol_sql: De SQL-oplossing als grondwaarheid.
preprocess_sql: SQL-queries die uitgevoerd moeten worden vóór de oplossing of voorspelling.
clean_up_sql: SQL-queries die na de testgevallen worden uitgevoerd om wijzigingen in de database terug te draaien.
test_cases: Een reeks testgevallen om de voorspelde gecorrigeerde SQL te valideren.
follow_up: De gelabelde vervolgvragen.
external_knowledge: De externe kennis die bij de specifieke taak hoort.evaluatie: De evaluatiecode is beschikbaar in de ./evaluation directory.
Samengesteld door: BIRD Team & Google Cloud
Licentie: cc-by-sa-4.0
HuggingFace Dataset Card: bird-interact-lite
en bird-interact-full
Gebruik van de dataset
Om datalekken door automatisch crawlen te voorkomen, nemen we geen GT-oplossing-sql’s en testgevallen samen met de data op.
stuur een e-mail naar bird.bench25@gmail.com met het label
[bird-interact-lite GT&Test Cases] of [bird-interact-full GT&Test Cases] in de titel voor de ground truth en testgevallen voor de bird-interact-lite of bird-interact-full dataset, welke automatisch worden verzonden.Combineer de openbare data met de ground truth en testgevallen
Gebruik vervolgens het volgende script om de openbare data te combineren met de ground truth en testgevallen:
Neem de volledige versie als voorbeeld:
(1) Voer uit:
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.jsonlDit zal een nieuw bestand aanmaken op/path/to/bird_interact_data.jsonlmet de gecombineerde gegevens.(2) Vervang vervolgens de oorspronkelijke openbare gegevens door de gecombineerde gegevens:
Hetzelfde geldt voor de andere versies: bird-interact-lite, mini versie, enz. Stel gewoon de juiste paden in voor de publieke data en de ground truth en testcases, en vervang vervolgens de publieke data door de gecombineerde data.
. Zie