BIRD-INTERACT 1.0

⚠️ Annuncio
Si prega di notare che prima del processo di valutazione, quando Docker carica i database, occasionalmente possono verificarsi errori a causa di incoerenze nell'ambiente (questi non interromperanno il processo ma appariranno nei log di Docker). Di conseguenza, alcuni database potrebbero non caricarsi correttamente, risultando in database vuoti. Questo causerà risultati di valutazione anormalmente bassi. 👉 Pertanto, raccomandiamo vivamente di controllare i log di Docker per eventuali errori prima di eseguire la valutazione e verificare che tutti i database siano stati caricati correttamente.👉 Abbiamo aggiornato le Linee guida per l'invio, ora sono supportati gli scaffolding agent personalizzati. Sentitevi liberi di consultare le nostre linee guida dettagliate per l'invio qui.
📰 Novità
- [2025-11-06] 🐛 Correzione Bug & 🐳 Aggiornamento Docker: Aggiornata la versione di sqlglot alla 26.16.4 per risolvere il bug che impediva al parser sql di analizzare correttamente le SQL per il simulatore utente. Puoi risolvere questo reinstallando il pacchetto con
pip install sqlglot==26.16.4nell'ambientebird_interact_eval. L'immaginebird_interact_evalè stata aggiornata, quindi puoi anche scaricarla e ricreare il containerbird_interact_eval. - [2025-10-21] 🐳 Aggiornamento Docker: Abbiamo aggiunto il docker per Full DB Env. E abbiamo caricato 3 immagini docker (Base/Full DB Env e l'ambiente di valutazione sia per
a-Interactche perc-Interact) su Docker Hub per facilitare la configurazione dell'ambiente. Non serve scaricare manualmente i dump dei DB e costruire le immagini! - [2025-10-08] 📝 Il nostro articolo Bird-Interact è ora disponibile pubblicamente!
- [2025-08-26] 🚀 Siamo entusiasti di annunciare il rilascio del set BIRD-Interact-Full (600)!
c-interact e a-interact.
👉 Per maggiori dettagli, visita il nostro sito del progetto.- [2025-08-26] 📬 Invieremo questa settimana la Ground Truth & Test cases alla nostra mailing list.
- [2025-08-26] 💾 Inoltre, abbiamo rilasciato una versione SQLite di LiveSQLBench-Lite per facilitare la ricerca locale.
- [2025-08-22] Correzione Bug: Nel codice Bird-Interact-Agent, abbiamo risolto un bug che, durante la valutazione della fase-2 SQL, impediva l'esecuzione corretta della SQL della fase-1 memorizzata, portando a un tasso di successo inferiore nella Fase-2. Questo bug riguarda solo quei compiti in cui la sql della fase1 esegue alcune operazioni sul database, ad esempio CREATE table, ecc.
🧸 Panoramica
BIRD-INTERACT, un benchmark interattivo text-to-SQL, re-immagina la valutazione Text-to-SQL attraverso la lente delle interazioni dinamiche. L'ambiente combina una base di conoscenza gerarchica, documentazione del database e un simulatore utente basato su funzioni per ricreare ambienti aziendali autentici su tutte le operazioni CRUD. Offre due rigorose modalità di test: (1) Interazione Conversazionale passiva e (2) Interazione Agentica attiva, coprendo 600 compiti annotati tra cui Business Intelligence (BI), operazioni CRUD, ecc., ciascuno protetto da casi di test eseguibili. Le valutazioni tipiche generano da 1.968 a 5.496 turni di interazione tra modello e simulatore utente, mentre i modelli di ragionamento all'avanguardia risolvono attualmente solo ≈24% e ≈18% dei compiti, evidenziando la sfida del benchmark.
✅ Due Modalità di Valutazione
BIRD-INTERACT supporta due modalità di valutazione come sopra menzionato:
- c-Interact: Interazione Conversazionale che è una modalità passiva con flusso di lavoro fisso. Il codice e le informazioni dettagliate sono disponibili in
bird_interact_conv. - a-Interact: Interazione Agentica che è una modalità attiva incarnata dove il flusso di lavoro è dinamico e guidato dai modelli. Il codice e le informazioni dettagliate sono disponibili in
bird_interact_agent.
🐣 Versione Lite
Stiamo rilasciando una versione lite di BIRD-INTERACT, bird-interact-lite-exp, che include 270 compiti reali di alta qualità specificamente per PostgreSQL. È un buon punto di partenza per rapidi esperimenti.
🦜 Versione Completa
La versione completa di BIRD-INTERACT, bird-interact-full, è un benchmark completo che include 600 compiti per PostgreSQL. Copre un'ampia gamma di operazioni SQL e richieste utente. La versione completa arriverà presto.
Risultati delle Prestazioni dei Modelli su BIRD-INTERACT-FULL
#### 1. Prestazioni c-Interact Text-to-SQL | Rank | Nome Modello | Ricompensa Normalizzata | Costo Medio (USD)/Compito | Livello | |:----:|:-------------------|:----------------------:|:-------------------------:|:-------------------:| | 1 | Gemini-2.5-Pro | 20.92 | $0.04 | 🏆 Chat Eccellente | | 2 | O3-Mini | 20,27 | $0,07 | 🏆 Chat Eccellente | | 3 | Claude-Sonnet-4 | 18,35 | $0,29 | 💎 Chat Buona | | 4 | Qwen-3-Coder-480B | 17,75 | $0,11 | 💎 Chat Buona | | 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 | ⚪ Base |
#### 2. a-Interact Text-to-SQL Prestazioni | Pos. | Nome Modello | Ricompensa Norm. | Costo Medio (USD)/Task | Livello | |:----:|:-------------------|:-----------------:|:----------------------:|:--------------------------:| | 1 | GPT-5 | 25,52 | $0,24 | 🏆 Interazione Eccellente | | 2 | Claude-Sonnet-4 | 23,28 | $0,51 | 🏆 Interazione Eccellente | | 3 | Claude-Sonnet-3.7 | 17,45 | $0,60 | 💎 Interazione Buona | | 4 | Gemini-2.5-Pro | 17,33 | $0,22 | 💎 Interazione Buona | | 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 | ⚪ Base |
\ Parametri di Budget: Budget Iniziale/Budget di Pazienza Utente, misurati tramite la nostra valuta virtuale bird-coin*s. Consulta bird_interact_agent/README.md per maggiori dettagli.
Interaction-Time Scaling (ITS)
Interaction-Time Scaling (ITS) si riferisce alla capacità di un modello di aumentare continuamente la propria performance finale tramite interazioni multi-turno. Quando questa performance interattiva supera la performance idealizzata single-turn su un task completamente specificato e non ambiguo, si dice che soddisfa la legge ITS. All’aumentare della pazienza dell’utente e del numero di turni d’interazione, le prestazioni continuano a migliorare, dimostrando che il modello può mantenere una comunicazione efficace in un dialogo esteso. Attualmente, solo claude-3-7-sonnet risulta soddisfare la legge ITS.
Setup dell’Ambiente
- Esegui i container Docker per il database bird-interact-lite, il database bird-interact-full e l’ambiente di valutazione:
bird-interact-lite, puoi commentare il servizio postgresql_full in docker-compose.yml per velocizzare il setup dell’ambiente.
Avvia l’ambiente eseguendo:
cd env
docker compose pull
docker compose up -d
``
Attendere alcuni minuti per l'inizializzazione del database.
Puoi monitorare l'avanzamento della costruzione tramite:
`bash
docker compose logs -f --tail=100 bird_interact_postgresql_full # or bird_interact_postgresql for bird-interact-lite
`
Se completato, dovresti vedere i log senza errori come:
`bash
bird_interact_postgresql_full | 2025-10-28 17:58:30.413 HKT [1] LOG: database system is ready to accept connection
`
Se hai già creato dei container e desideri ricrearli, puoi eseguire il seguente comando:
`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.
`
Questo avvia 3 container utilizzando immagini predefinite da Docker Hub:
bird_interact_postgresql: Database PostgreSQL per bird-interact-lite
bird_interact_postgresql_full: Database PostgreSQL per bird-interact-full
bird_interact_eval: Ambiente di valutazione per entrambi a-Interact e c-Interact. Ora puoi avviare l'ambiente di valutazione eseguendo il seguente comando:
`bash
docker compose exec bird_interact_eval bash
`- (Opzionale) Costruisci l'ambiente manualmente (se vuoi creare le immagini da zero):
- Scarica i dump del database
- bird-interact-lite. Decomprimi e rinominalo come
env/postgre_table_dumps.
bird-interact-full. Decomprimi e rinominalo come env/postgre_table_dumps_full.
Costruisci l'ambiente manualmente eseguendo docker-compose.build.yml.
`bash
cd env/
docker compose -f docker-compose.build.yml build
docker compose -f docker-compose.build.yml up -d
`- (Consigliato) Verificare che i container del database siano stati creati e siano in esecuzione correttamente.
- Stampare i log di costruzione dei container per assicurarsi che i database siano stati creati correttamente senza errori:
`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
`
Se si verificano errori, "Si sono verificati errori durante l'importazione:" verrà stampato nei file di log.- Verificare che i container del database siano in buone condizioni.
Utilizzare il nostro script Python fornito per verificare i metadati del database:
`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
`
Risultati attesi:
- bird-interact-lite:
- 📈 Database Totali: 18
- 📋 Tabelle Totali: 175
- 🔢 Colonne Totali: 2286
- 📈 Media Righe per Tabella: 1.038,48
- 💾 Dimensione Totale: 207,15 MB (circa)
- bird-interact-full:
- 📈 Database Totali: 22
- 📋 Tabelle Totali: 244
- 🔢 Colonne Totali: 2011
- 📈 Media Righe per Tabella: 1.121,19
- 💾 Dimensione Totale: 272,00 MB (circa)
📦 Dettagli del Dataset
Descrizione del Dataset
- Database: Il database PostgreSQL completo può essere scaricato da bird-interact-lite e bird-interact-full.
- data: Ogni istanza di dati contiene le seguenti parti principali:
selected_database: Il nome del database.
query: La query dell’utente non ambigua.
amb_user_query: La query dell’utente con ambiguità iniettate.
user_query_ambiguity: Le ambiguità iniettate nella query dell’utente.
non_critical_ambiguity: Le ambiguità non critiche come order, limit, ecc.
knowledge_ambiguity: Le ambiguità create mascherando conoscenze esterne.
sol_sql: La soluzione SQL di riferimento.
preprocess_sql: Query SQL da eseguire prima della soluzione o della previsione.
clean_up_sql: Query SQL da eseguire dopo i test per annullare eventuali modifiche al database.
test_cases: Un insieme di casi di test per validare la SQL corretta prevista.
follow_up: Le domande di follow up etichettate.
external_knowledge: Le conoscenze esterne relative al compito specifico.evaluation: Il codice di valutazione è disponibile nella directory ./evaluation.
Curato da: BIRD Team & Google Cloud
Licenza: cc-by-sa-4.0
HuggingFace Dataset Card: bird-interact-lite
e bird-interact-full
Utilizzo del Dataset
Per evitare il data leakage tramite auto-crawling, non includiamo le soluzioni GT sql e i casi di test insieme ai dati.
si prega di inviare una email a bird.bench25@gmail.com con il tag
[bird-interact-lite GT&Test Cases] oppure [bird-interact-full GT&Test Cases] nell’oggetto per ottenere le soluzioni ground truth e i casi di test per i dataset bird-interact-lite o bird-interact-full, che saranno inviati automaticamente.Unire i dati pubblici con ground truth e casi di test
Utilizzare quindi il seguente script per unire i dati pubblici con ground truth e casi di test:
Prendiamo la versione completa come esempio:
(1) Esegui:
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.jsonlQuesto creerà un nuovo file in/path/to/bird_interact_data.jsonlcon i dati combinati.(2) Quindi sostituisci i dati pubblici originali con i dati combinati:
Lo stesso vale per le altre versioni: bird-interact-lite, versione mini, ecc. Basta impostare i percorsi corretti per i dati pubblici, la ground truth e i casi di test, e poi sostituire i dati pubblici con i dati combinati.
. Consulta