BIRD-INTERACT 1.0

⚠️ Aviso
Por favor, note que antes do processo de avaliação, quando o Docker carrega os bancos de dados, erros podem ocasionalmente ocorrer devido à inconsistência do ambiente (estes não encerram o processo, mas aparecerão nos logs do Docker). Como resultado, alguns bancos podem não carregar corretamente, levando a bancos vazios. Isso causará resultados anormalmente baixos na avaliação. 👉 Portanto, recomendamos fortemente que verifique os logs do Docker para eventuais erros antes de rodar a avaliação e confirme que todos os bancos de dados foram carregados com sucesso.👉 Atualizamos as Diretrizes de Submissão, onde agora são suportados scaffolds de agentes personalizados. Sinta-se à vontade para conferir nossas diretrizes detalhadas de submissão aqui.
📰 Novidades
- [2025-11-06] 🐛 Correção de Bug & 🐳 Atualização Docker: Atualize a versão do sqlglot para 26.16.4 para corrigir o bug em que o analisador SQL não conseguia interpretar corretamente o SQL para o simulador de usuário. Você pode corrigir isso reinstalando com
pip install sqlglot==26.16.4no ambientebird_interact_eval. A imagembird_interact_evaltambém foi atualizada, então você pode puxá-la e recriar o containerbird_interact_eval. - [2025-10-21] 🐳 Atualização Docker: Adicionamos o docker para o Ambiente Full DB. E publicamos 3 imagens docker (Base/Full DB Env e o ambiente de avaliação para ambos
a-Interactec-Interact) no Docker Hub para facilitar a configuração do ambiente. Não é necessário baixar os dumps do BD e construir as imagens manualmente! - [2025-10-08] 📝 Nosso artigo Bird-Interact já está disponível publicamente!
- [2025-08-26] 🚀 Estamos empolgados em anunciar o lançamento do BIRD-Interact-Full (600)!
c-interact e a-interact.
👉 Para mais detalhes, visite nosso site do projeto.- [2025-08-26] 📬 Enviaremos os Casos de Teste & Gabaritos para nossa lista de e-mails nesta semana.
- [2025-08-26] 💾 Em outra nota, também lançamos uma versão SQLite do LiveSQLBench-Lite para facilitar pesquisas locais.
- [2025-08-22] Correção de Bug: No código do Bird-Interact-Agent, corrigimos um bug que, ao avaliar SQL da fase 2, o SQL armazenado na fase 1 não podia ser executado com sucesso, levando a uma taxa de sucesso menor na Fase 2. Este bug afeta apenas tarefas onde o SQL da fase 1 realiza operações no banco de dados, por exemplo, CREATE table, etc.
🧸 Visão Geral
BIRD-INTERACT, um benchmark interativo de text-to-SQL, reimagina a avaliação Text-to-SQL através da lente de interações dinâmicas. O ambiente combina uma base de conhecimento hierárquica, documentação do banco de dados e um simulador de usuário baseado em funções para recriar ambientes empresariais autênticos em todas as operações CRUD. Oferece dois modos rigorosos de teste: (1) Interação Conversacional passiva e (2) Interação Agente ativa, abrangendo 600 tarefas anotadas, incluindo Business Intelligence (BI), operações CRUD, etc., cada uma protegida por casos de teste executáveis. Avaliações típicas disparam entre 1.968 e 5.496 rodadas de interação entre o modelo e o simulador de usuário, enquanto os modelos de raciocínio mais avançados atualmente resolvem apenas ≈24% e ≈18% das tarefas, destacando o desafio do benchmark.
✅ Dois Modos de Avaliação
O BIRD-INTERACT suporta dois modos de avaliação conforme mencionado acima:
- c-Interact: Interação Conversacional, que é um modo passivo e o fluxo de trabalho é fixo. O código e informações detalhadas podem ser encontrados em
bird_interact_conv. - a-Interact: Interação Agente, que é um modo ativo incorporado onde o fluxo de trabalho é dinâmico e liderado pelos modelos. O código e informações detalhadas podem ser encontrados em
bird_interact_agent.
🐣 Versão Lite
Estamos lançando uma versão lite do BIRD-INTERACT, bird-interact-lite-exp, que inclui 270 tarefas do mundo real de alta qualidade, especificamente para PostgreSQL. É um bom ponto de partida para experimentação rápida.
🦜 Versão Completa
A versão completa do BIRD-INTERACT, bird-interact-full, é um benchmark abrangente que inclui 600 tarefas para PostgreSQL. Ela cobre uma ampla variedade de operações SQL e consultas de usuários. A versão completa estará disponível em breve.
Resultados de Performance de Modelos no BIRD-INTERACT-FULL
#### 1. c-Interact Text-to-SQL Performance | Rank | Nome do Modelo | Recompensa Normalizada | Custo Médio (USD)/Tarefa | Nível | |:----:|:-------------------|:---------------------:|:------------------------:|:------------------:| | 1 | Gemini-2.5-Pro | 20.92 | $0.04 | 🏆 Excelente Chat |
| 2 | O3-Mini | 20,27 | $0,07 | 🏆 Chat Excelente | | 3 | Claude-Sonnet-4 | 18,35 | $0,29 | 💎 Chat Bom | | 4 | Qwen-3-Coder-480B | 17,75 | $0,11 | 💎 Chat Bom | | 5 | Deepseek-Chat-V3.1 | 15,15 | $0,12 | ✨ Padrão | | 6 | Claude-Sonnet-3.7 | 13,87 | $0,29 | ✨ Padrão | | 7 | GPT-5 | 12,58 | $0,08 | ⚪ Básico |
#### 2. a-Interact Text-to-SQL Desempenho | Rank | Nome do Modelo | Recompensa Normalizada | Custo Médio (USD)/Tarefa | Nível | |:----:|:-------------------|:---------------------:|:------------------------:|:--------------------------:| | 1 | GPT-5 | 25,52 | $0,24 | 🏆 Interação Excelente | | 2 | Claude-Sonnet-4 | 23,28 | $0,51 | 🏆 Interação Excelente | | 3 | Claude-Sonnet-3.7 | 17,45 | $0,60 | 💎 Interação Boa | | 4 | Gemini-2.5-Pro | 17,33 | $0,22 | 💎 Interação Boa | | 5 | O3-Mini | 16,43 | $0,06 | ✨ Padrão | | 6 | Deepseek-Chat-V3.1 | 13,47 | $0,06 | ✨ Padrão | | 7 | Qwen-3-Coder-480B | 10,58 | $0,07 | ⚪ Básico |
\ Parâmetros de Orçamento: Orçamento Inicial/Orçamento de Paciência do Usuário, medido por nossa moeda virtual bird-coin*s. Consulte bird_interact_agent/README.md para mais detalhes.
Escalonamento do Tempo de Interação (ITS)
Escalonamento do Tempo de Interação (ITS) refere-se à capacidade de um modelo de aumentar continuamente seu desempenho final por meio de interações de múltiplas rodadas. Quando esse desempenho interativo supera o desempenho idealizado de rodada única do modelo em uma tarefa totalmente especificada e não ambígua, dizemos que ele satisfaz a lei ITS. À medida que a paciência do usuário cresce e as rodadas de interação se acumulam, o desempenho continua melhorando, demonstrando que o modelo pode sustentar comunicação eficaz durante um diálogo prolongado. Atualmente, apenas encontramos que o claude-3-7-sonnet satisfaz a lei ITS.
Configuração do Ambiente
- Execute os containers Docker para o banco de dados bird-interact-lite, banco de dados bird-interact-full e ambiente de avaliação:
bird-interact-lite, pode comentar o serviço postgresql_full em docker-compose.yml para acelerar a configuração do ambiente.
Inicie o ambiente executando:
cd env
docker compose pull
docker compose up -d
``
Aguarde alguns minutos para a inicialização do banco de dados.
Você pode acompanhar o progresso da construção por:
`bash
docker compose logs -f --tail=100 bird_interact_postgresql_full # or bird_interact_postgresql for bird-interact-lite
`
Se concluído, você deverá ver os logs sem erros, como:
`bash
bird_interact_postgresql_full | 2025-10-28 17:58:30.413 HKT [1] LOG: database system is ready to accept connection
`
Se você já criou contêineres antes e deseja recriá-los, pode executar o seguinte 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.
`
Isso executa 3 containers usando imagens pré-construídas do Docker Hub:
bird_interact_postgresql: Banco de dados PostgreSQL para bird-interact-lite
bird_interact_postgresql_full: Banco de dados PostgreSQL para bird-interact-full
bird_interact_eval: Ambiente de avaliação para ambos a-Interact e c-Interact. Agora, você pode iniciar o ambiente de avaliação executando o seguinte comando:
`bash
docker compose exec bird_interact_eval bash
`- (Opcional) Construa o ambiente manualmente (se quiser criar as imagens do zero):
- Baixe os dumps do banco de dados
- bird-interact-lite. Extraia e renomeie como
env/postgre_table_dumps.
bird-interact-full. Extraia e renomeie como env/postgre_table_dumps_full.
Construa o ambiente manualmente executando docker-compose.build.yml.
`bash
cd env/
docker compose -f docker-compose.build.yml build
docker compose -f docker-compose.build.yml up -d
`- (Recomendado) Verifique se os containers de banco de dados foram construídos e estão em execução com sucesso.
- Imprima os logs de construção dos containers para garantir que os bancos de dados foram construídos com sucesso, sem erros:
`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 ocorrerem erros, "Ocorreram erros durante a importação:" será impresso nos arquivos de log.- Verifique se os containers de banco de dados estão em bom estado.
Use nosso script Python fornecido para verificar os metadados do banco de dados:
`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
`
Resultados esperados:
- bird-interact-lite:
- 📈 Total de Bancos de Dados: 18
- 📋 Total de Tabelas: 175
- 🔢 Total de Colunas: 2286
- 📈 Média de Linhas por Tabela: 1.038,48
- 💾 Tamanho Total: 207,15 MB (aproximadamente)
- bird-interact-full:
- 📈 Total de Bancos de Dados: 22
- 📋 Total de Tabelas: 244
- 🔢 Total de Colunas: 2011
- 📈 Média de Linhas por Tabela: 1.121,19
- 💾 Tamanho Total: 272,00 MB (aproximadamente)
📦 Detalhes do Conjunto de Dados
Descrição do Conjunto de Dados
- Banco de Dados: O banco de dados PostgreSQL completo pode ser baixado em bird-interact-lite e bird-interact-full.
- dados: Cada instância de dados contém as seguintes partes principais:
selected_database: O nome do banco de dados.
query: A consulta do usuário sem ambiguidades.
amb_user_query: A consulta do usuário com ambiguidades injetadas.
user_query_ambiguity: As ambiguidades injetadas na consulta do usuário.
non_critical_ambiguity: Ambiguidades não críticas como ordem, limite, etc.
knowledge_ambiguity: Ambiguidades criadas pelo mascaramento de conhecimentos externos.
sol_sql: A solução SQL verídica.
preprocess_sql: Consultas SQL para executar antes da solução ou predição.
clean_up_sql: Consultas SQL para executar após os testes e reverter alterações no banco.
test_cases: Um conjunto de casos de teste para validar o SQL corrigido previsto.
follow_up: As perguntas de acompanhamento rotuladas.
external_knowledge: O conhecimento externo relacionado à tarefa específica.avaliação: O código de avaliação está disponível no diretório ./evaluation.
Curadoria: Equipe BIRD & Google Cloud
Licença: cc-by-sa-4.0
Cartão do Conjunto de Dados na HuggingFace: bird-interact-lite
e bird-interact-full
Usos do Conjunto de Dados
Para evitar vazamento de dados por auto-crawling, não incluímos SQLs de solução GT e casos de teste juntamente com os dados.
por favor envie um e-mail para bird.bench25@gmail.com com a tag
[bird-interact-lite GT&Test Cases] ou [bird-interact-full GT&Test Cases] no título para obter a verdade de base e casos de teste para o conjunto de dados bird-interact-lite ou bird-interact-full, que serão enviados automaticamente.Combine os dados públicos com a verdade de base e casos de teste
Em seguida, use o seguinte script para combinar os dados públicos com a verdade de base e casos de teste:
Pegue a versão completa como exemplo:
(1) Execute:
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.jsonlIsso criará um novo arquivo em/path/to/bird_interact_data.jsonlcom os dados combinados.(2) Em seguida, substitua os dados públicos originais pelos dados combinados:
O mesmo vale para as outras versões: bird-interact-lite, versão mini, etc. Basta definir os caminhos corretos para os dados públicos, os dados de verdade e os casos de teste, e então substituir os dados públicos pelos dados combinados.
. Consulte