BIRD-INTERACT 1.0

⚠️ Ogłoszenie
Należy pamiętać, że przed procesem ewaluacji, podczas ładowania baz danych przez Dockera, mogą sporadycznie wystąpić błędy spowodowane niespójnością środowiska (nie przerywają one procesu, ale pojawią się w logach Dockera). W rezultacie niektóre bazy danych mogą nie załadować się poprawnie, co prowadzi do pustych baz. Spowoduje to nienaturalnie niskie wyniki ewaluacji. 👉 Dlatego zdecydowanie zalecamy sprawdzenie logów Dockera pod kątem błędów przed uruchomieniem ewaluacji i upewnienie się, że wszystkie bazy danych załadowały się poprawnie.👉 Zaktualizowaliśmy Wytyczne dotyczące zgłoszeń, gdzie wspierane są własne szkielety agentów. Zachęcamy do zapoznania się ze szczegółowymi wytycznymi zgłoszeniowymi tutaj.
📰 Aktualności
- [2026-03-29] 🔥🔥🔥 BIRD-Interact-ADK: Udostępniamy BIRD-Interact-ADK, implementację opartą na Google ADK z modułową architekturą 3-mikroserwisów (agent, symulator użytkownika i środowisko DB). Możliwość łatwej podmiany własnego agenta, symulatora lub środowiska DB. Obsługuje wykonywanie równoległe oraz dowolnego dostawcę LLM zgodnego z LiteLlm. Polecamy tę implementację do badań.
- [2026-02-08] 🔥🔥🔥 Nasza publikacja Bird-Interact została przyjęta na ICLR 2026 (Oral)! Do zobaczenia w Rio 🇧🇷!
- [2025-11-06] 🐛 Naprawa błędu & 🐳 Aktualizacja Dockera: Aktualizacja sqlglot do wersji 26.16.4 w celu naprawy błędu uniemożliwiającego parserowi SQL poprawną analizę zapytań dla symulatora użytkownika. Można to naprawić przez ponowną instalację poleceniem
pip install sqlglot==26.16.4w środowiskubird_interact_eval. Obrazbird_interact_evaltakże został zaktualizowany, można go pobrać i utworzyć nowy kontenerbird_interact_eval. - [2025-10-21] 🐳 Aktualizacja Dockera: Dodaliśmy dockera dla pełnego środowiska DB. Wypchnęliśmy 3 obrazy dockerowe (Base/Full DB Env oraz środowisko ewaluacji dla
a-Interactic-Interact) na Docker Hub dla łatwiejszej konfiguracji środowiska. Nie trzeba pobierać dumpów DB i budować obrazów ręcznie! - [2025-10-08] 📝 Nasza publikacja Bird-Interact jest już publicznie dostępna!
- [2025-08-26] 🚀 Z przyjemnością ogłaszamy wydanie zestawu BIRD-Interact-Full (600)!
c-interact i a-interact.
👉 Po więcej szczegółów odwiedź naszą stronę projektu.- [2025-08-26] 📬 W tym tygodniu wyślemy Ground Truth & Test cases na naszą listę mailingową.
- [2025-08-26] 💾 Poza tym udostępniliśmy także wersję SQLite LiveSQLBench-Lite dla łatwiejszych badań lokalnych.
- [2025-08-22] Poprawka błędu: W kodzie Bird-Interact-Agent naprawiliśmy błąd, przez który podczas oceny SQL fazy 2, zapisany SQL fazy 1 nie mógł zostać poprawnie wykonany, co skutkowało niższym wskaźnikiem sukcesu fazy 2. Błąd dotyczył tylko tych zadań, w których SQL fazy 1 wykonuje operacje na bazie danych, np. CREATE table itd.
🧸 Przegląd
BIRD-INTERACT, interaktywny benchmark text-to-SQL, na nowo definiuje ocenę Text-to-SQL przez pryzmat dynamicznych interakcji. Środowisko łączy hierarchiczną bazę wiedzy, dokumentację bazy danych oraz symulator użytkownika oparty na funkcjach, aby odtworzyć autentyczne środowiska korporacyjne obejmujące pełne operacje CRUD. Oferuje dwa rygorystyczne tryby testowe: (1) pasywny Conversational Interaction oraz (2) aktywny Agentic Interaction, obejmując 600 anotowanych zadań, w tym Business Intelligence (BI), operacje CRUD itd., każde chronione przez wykonywalne przypadki testowe. Typowe ewaluacje wywołują 1 968–5 496 zwrotów interakcji pomiędzy modelem a symulatorem użytkownika, podczas gdy najnowocześniejsze modele rozumowania rozwiązują obecnie tylko ≈24% i ≈18% zadań, co podkreśla wyzwanie benchmarku.
✅ Dwa tryby ewaluacji
BIRD-INTERACT obsługuje dwa tryby ewaluacji opisane powyżej:
- c-Interact: Conversational Interaction, czyli tryb pasywny z ustalonym przebiegiem. Kod oraz szczegółowe informacje można znaleźć w
bird_interact_conv. - a-Interact: Agentic Interaction, czyli aktywny tryb ucieleśniony, w którym przebieg jest dynamiczny i prowadzony przez modele. Kod oraz szczegółowe informacje znajdują się w
bird_interact_agent.
🐣 Wersja Lite
Udostępniamy wersję light BIRD-INTERACT, bird-interact-lite-exp, która zawiera 270 wysokiej jakości rzeczywistych zadań specjalnie dla PostgreSQL. To dobry punkt wyjścia do szybkich eksperymentów.
🦜 Wersja pełna
Pełna wersja BIRD-INTERACT, bird-interact-full, to kompleksowy benchmark obejmujący 600 zadań dla PostgreSQL. Zawiera szeroki zakres operacji SQL oraz zapytań użytkownika. Pełna wersja pojawi się wkrótce.
Wyniki wydajności modeli na BIRD-INTERACT-FULL
#### 1. c-Interact Text-to-SQL Wydajność | Miejsce | Nazwa modelu | Znormalizowana nagroda | Śr. koszt (USD)/zadanie | Poziom | |:-------:|:---------------------|:----------------------:|:----------------------:|:--------------------:| | 1 | Gemini-2.5-Pro | 20.92 | $0.04 | 🏆 Doskonały Chat | | 2 | O3-Mini | 20.27 | $0.07 | 🏆 Doskonały Chat | | 3 | Claude-Sonnet-4 | 18.35 | $0.29 | 💎 Dobry Chat | | 4 | Qwen-3-Coder-480B | 17.75 | $0.11 | 💎 Dobry Chat | | 5 | Deepseek-Chat-V3.1 | 15.15 | $0.12 | ✨ Standardowy | | 6 | Claude-Sonnet-3.7 | 13.87 | $0.29 | ✨ Standardowy | | 7 | GPT-5 | 12.58 | $0.08 | ⚪ Podstawowy |
#### 2. a-Interact Text-to-SQL Wydajność | Miejsce | Nazwa modelu | Znormalizowana nagroda | Śr. koszt (USD)/zadanie | Poziom | |:-------:|:---------------------|:----------------------:|:-----------------------:|:----------------------------:| | 1 | GPT-5 | 25.52 | $0.24 | 🏆 Doskonała Interakcja | | 2 | Claude-Sonnet-4 | 23.28 | $0.51 | 🏆 Doskonała Interakcja | | 3 | Claude-Sonnet-3.7 | 17.45 | $0.60 | 💎 Dobra Interakcja | | 4 | Gemini-2.5-Pro | 17.33 | $0.22 | 💎 Dobra Interakcja | | 5 | O3-Mini | 16.43 | $0.06 | ✨ Standardowa | | 6 | Deepseek-Chat-V3.1 | 13.47 | $0.06 | ✨ Standardowa | | 7 | Qwen-3-Coder-480B | 10.58 | $0.07 | ⚪ Podstawowa |
\ Parametry budżetowe: Początkowy budżet/Budżet cierpliwości użytkownika, mierzony naszą wirtualną walutą bird-coin*. Zobacz bird_interact_agent/README.md po więcej szczegółów.
Skalowanie czasu interakcji (ITS)
Skalowanie czasu interakcji (ITS) odnosi się do zdolności modelu do ciągłego zwiększania końcowej wydajności poprzez wieloetapowe interakcje. Gdy ta wydajność interakcyjna przekracza wyidealizowaną wydajność modelu w pojedynczym kroku na w pełni określonym, jednoznacznym zadaniu, mówimy, że spełnia on prawo ITS. Wraz ze wzrostem cierpliwości użytkownika i liczbą tur dialogowych wydajność stale rośnie, pokazując, że model potrafi utrzymać skuteczną komunikację podczas dłuższej rozmowy. Obecnie tylko claude-3-7-sonnet spełnia prawo ITS.
Konfiguracja środowiska
- Uruchom kontenery Docker dla bazy danych bird-interact-lite, bazy danych bird-interact-full oraz środowiska ewaluacyjnego:
bird-interact-lite, możesz zakomentować usługę postgresql_full w docker-compose.yml, aby przyspieszyć konfigurację środowiska.
Uruchom środowisko poleceniem:
cd env
docker compose pull
docker compose up -d
``
Poczekaj kilka minut na inicjalizację bazy danych.
Możesz śledzić postęp budowy za pomocą:
`bash
docker compose logs -f --tail=100 bird_interact_postgresql_full # or bird_interact_postgresql for bird-interact-lite
`
Jeśli zakończono, powinieneś zobaczyć logi bez błędów, takich jak:
`bash
bird_interact_postgresql_full | 2025-10-28 17:58:30.413 HKT [1] LOG: database system is ready to accept connection
`
Jeśli wcześniej utworzyłeś kontenery i chcesz je odtworzyć, możesz uruchomić następujące polecenie:
`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.
`
To uruchamia 3 kontenery używając gotowych obrazów z Docker Hub:
bird_interact_postgresql: baza danych PostgreSQL dla bird-interact-lite
bird_interact_postgresql_full: baza danych PostgreSQL dla bird-interact-full
bird_interact_eval: środowisko ewaluacyjne dla a-Interact i c-Interact. Teraz możesz uruchomić środowisko ewaluacyjne, wykonując następujące polecenie:
`bash
docker compose exec bird_interact_eval bash
`- (Opcjonalnie) Zbuduj środowisko ręcznie (jeśli chcesz zbudować obrazy od podstaw):
- Pobierz zrzuty bazy danych
- bird-interact-lite. Rozpakuj i zmień nazwę na
env/postgre_table_dumps.
bird-interact-full. Rozpakuj i zmień nazwę na env/postgre_table_dumps_full.
Zbuduj środowisko ręcznie uruchamiając docker-compose.build.yml.
`bash
cd env/
docker compose -f docker-compose.build.yml build
docker compose -f docker-compose.build.yml up -d
`- (Zalecane) Sprawdź, czy kontenery baz danych zostały zbudowane i działają poprawnie.
- Wyświetl logi budowania kontenerów, aby upewnić się, że bazy danych zostały zbudowane pomyślnie i bez błędów:
`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
`
Jeśli wystąpią błędy, w plikach dziennika zostanie wydrukowane "Wystąpiły błędy podczas importu:".- Sprawdź, czy kontenery bazy danych są w dobrym stanie.
Użyj naszego dostarczonego skryptu Python, aby zweryfikować metadane bazy danych:
`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
`
Oczekiwane wyniki:
- bird-interact-lite:
- 📈 Łączna liczba baz danych: 18
- 📋 Łączna liczba tabel: 175
- 🔢 Łączna liczba kolumn: 2286
- 📈 Średnia liczba wierszy na tabelę: 1 038,48
- 💾 Całkowity rozmiar: około 207,15 MB
- bird-interact-full:
- 📈 Łączna liczba baz danych: 22
- 📋 Łączna liczba tabel: 244
- 🔢 Łączna liczba kolumn: 2011
- 📈 Średnia liczba wierszy na tabelę: 1 121,19
- 💾 Całkowity rozmiar: około 272,00 MB
📦 Szczegóły zbioru danych
Opis zbioru danych
- Baza danych: Pełna baza danych PostgreSQL jest dostępna do pobrania z bird-interact-lite i bird-interact-full.
- dane: Każda instancja danych zawiera następujące główne części:
selected_database: Nazwa bazy danych.
query: Jednoznaczne zapytanie użytkownika.
amb_user_query: Zapytanie użytkownika z wstrzykniętymi niejednoznacznościami.
user_query_ambiguity: Niejednoznaczności wstrzyknięte do zapytania użytkownika.
non_critical_ambiguity: Niejednoznaczności niekrytyczne, takie jak sortowanie, limit itd.
knowledge_ambiguity: Niejednoznaczności stworzone przez ukrytą wiedzę zewnętrzną.
sol_sql: Prawidłowe rozwiązanie SQL.
preprocess_sql: Zapytania SQL do uruchomienia przed wykonaniem rozwiązania lub predykcji.
clean_up_sql: Zapytania SQL do uruchomienia po przypadkach testowych w celu cofnięcia zmian w bazie danych.
test_cases: Zestaw przypadków testowych do walidacji przewidywanego poprawionego SQL.
follow_up: Oznaczone pytania dodatkowe.
external_knowledge: Wiedza zewnętrzna związana z konkretnym zadaniem.ocena: Kod oceny dostępny jest w katalogu ./evaluation.
Kuratorzy: Zespół BIRD & Google Cloud
Licencja: cc-by-sa-4.0
Karta zbioru danych HuggingFace: bird-interact-lite
oraz bird-interact-full dla PostgreSQL; oraz mini-interact dla SQLite.
Zastosowania zbioru danych
Aby uniknąć wycieku danych przez automatyczne pobieranie, nie dołączamy rozwiązań GT w SQL ani przypadków testowych wraz z danymi.
prosimy o kontakt mailowy na adres bird.bench25@gmail.com z tagiem
[bird-interact-lite GT&Test Cases] lub [bird-interact-full GT&Test Cases] w tytule, aby otrzymać dane referencyjne oraz przypadki testowe dla zbioru bird-interact-lite lub bird-interact-full, które zostaną wysłane automatycznie.Połączenie danych publicznych z danymi referencyjnymi i przypadkami testowymi
Następnie użyj poniższego skryptu, aby połączyć dane publiczne z danymi referencyjnymi i przypadkami testowymi:
Weźmy wersję pełną jako przykład:
(1) Uruchom:
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.jsonlTo utworzy nowy plik w/path/to/bird_interact_data.jsonlz połączonymi danymi.(2) Następnie zastąp oryginalne dane publiczne połączonymi danymi:
To samo dotyczy innych wersji: bird-interact-lite, wersja mini itp. Wystarczy ustawić poprawne ścieżki do danych publicznych oraz danych referencyjnych i przypadków testowych, a następnie zastąpić dane publiczne danymi połączonymi.
. Zobacz