Em meio ao entusiasmo com a geração de código por LLMs para Python, JavaScript e outras linguagens de uso geral, o SQL pode parecer esquecido.
Beekeeper Studio é um cliente de banco de dados gratuito e open source
A melhor ferramenta de consultas e edição de SQL que já usei. Tem tudo o que preciso para gerenciar meu banco de dados. - ⭐⭐⭐⭐⭐ Mit
O Beekeeper Studio é rápido, intuitivo e fácil de usar. Ele suporta vários bancos de dados e funciona muito bem no Windows, Mac e Linux.
Ainda assim, pode-se dizer que o SQL sustenta a economia global. Então vale perguntar: quão bons são os LLMs em escrever SQL?
Não somos os primeiros a fazer essa pergunta. Tanto acadêmicos quanto empresas já publicaram benchmarks que medem o desempenho de LLMs na geração de SQL.
Neste post, vamos analisar alguns desses benchmarks, ver o que eles revelam e discutir o que torna um benchmark de geração de código SQL realmente significativo.
O que faz um bom benchmark de geração de SQL por LLMs?
A maioria de nós já sentiu aquela mistura de surpresa — e talvez um pouco de admiração — quando um LLM gera um bloco de código funcional logo na primeira tentativa. Mas, com a mesma frequência, ele tropeça: chama uma biblioteca que não existe, esquece uma variável ou ignora um caso extremo descrito no prompt.
Com SQL, a natureza iterativa e rápida do desenvolvimento torna ainda mais difícil para os LLMs acertarem. Normalmente, você escreve uma query, executa, analisa o resultado e depois ajusta com base no que vê. Isso porque os próprios dados fazem parte do processo tanto quanto o SQL.
Isso impõe exigências específicas a qualquer benchmark que queira avaliar a capacidade de um LLM de gerar SQL. Na nossa opinião, um bom benchmark de SQL precisa:
- Abranger vários bancos de dados: Postgres, MySQL, SQL Server, ClickHouse e outros têm suas peculiaridades, então um benchmark justo precisa cobrir mais de um engine.
- Incluir tarefas variadas: as queries vão de simples cláusulas SELECT … WHERE a joins complexos, window functions e desafios que exigem conhecimento do schema. Um benchmark deve refletir esse espectro.
- Verificar resultados, não só a sintaxe: a pergunta real não é se o SQL executa, mas se ele retorna os dados corretos.
- Considerar a iteração: um benchmark útil precisa capturar o vaivém de refinar queries, não apenas a primeira tentativa.
- Ser transparente: sem schemas, datasets e código de avaliação abertos, fica mais difícil confiar nos resultados.
Então, existe algum benchmark de geração de código SQL por IA que atenda a esses critérios?
Benchmarks de SQL
É claro que os benchmarks de SQL são anteriores aos LLMs. Talvez o mais conhecido seja o Spider, lançado em 2018 como dataset para a comunidade de pesquisa em text-to-SQL. Embora tenha sido criado para parsing semântico e não para LLMs, ele se tornou uma espécie de referência básica nas avaliações de LLMs. Desde então, porém, pesquisadores e empresas lançaram outros benchmarks.
Spider
O que é: lançado em 2018, o Spider é um dataset de grande escala com mais de 200 bancos de dados e milhares de tarefas de linguagem natural para SQL, criado originalmente para a comunidade de pesquisa em text-to-SQL.
Pontos fortes: ampla cobertura de schemas; queries razoavelmente complexas e de vários domínios; referência consolidada para avaliações acadêmicas e de LLMs (incluindo Codex, GPT-3.5, GPT-4).
Limitações: baseado em schemas SQLite limpos, muito distantes de bancos de produção bagunçados; foca em avaliação de tentativa única; não reflete o refinamento iterativo de queries.
Veredito: uma referência útil e ainda o benchmark mais citado, mas pode ser acadêmico demais para capturar fluxos de trabalho reais com SQL.
BIRD-SQL
O que é: lançado em 2023 como sucessor do Spider, o BIRD-SQL foi criado especificamente para desafiar grandes modelos com cargas de trabalho mais realistas, no estilo de BI.
Pontos fortes: schemas maiores e mais bagunçados; queries que exigem raciocínio sobre o schema e, em alguns casos, conhecimento externo; mais exigente que o Spider.
Limitações: ainda tem design acadêmico; foca em avaliação de turno único; menos acessível para profissionais fora da pesquisa.
Veredito: um passo mais perto de refletir os desafios reais com dados, mas ainda não é iterativo nem cobre vários engines.
Tinybird SQL Benchmark
O que é: um benchmark da indústria criado pela Tinybird, que avalia 19 LLMs em tarefas de SQL analítico usando a própria plataforma da empresa (baseada em ClickHouse), com comparações com o desempenho humano.
Pontos fortes: apresentação clara; dataset grande (centenas de milhões de linhas); resultados lado a lado de vários modelos.
Limitações: vinculado à infraestrutura da própria Tinybird; limitado à geração de queries em tentativa única; os resultados podem não se aplicar fora desse ambiente.
Veredito: bem-acabado e prático, mas de escopo restrito e pouco representativo de como os LLMs se saem em diferentes bancos de dados ou em fluxos iterativos.
SQL-EVAL
O que é: o SQL-EVAL é um framework de avaliação open source para verificar a correção do SQL gerado por LLMs. Cada tarefa vem com uma query SQL de referência revisada por humanos. O SQL-Eval executa tanto a query do modelo quanto a de referência e depois compara os resultados.
Pontos fortes: totalmente open source e reproduzível; lida com a complexidade do SQL (queries aninhadas, múltiplos joins), variedade semântica e casos em que existe mais de uma query correta.
Limitações: foca em saber se a query retorna os mesmos resultados da referência, não na qualidade ou eficiência da query; suporta apenas geração em tentativa única e não simula refinamento iterativo.
Veredito: um recurso valioso para avaliar se os modelos retornam os resultados certos e excelente em transparência, mas ainda não reflete os fluxos iterativos do uso real de SQL.
Outros benchmarks que valem a pena conhecer
Projetos mais recentes buscam preencher algumas das lacunas deixadas pelo Spider e pelo BIRD-SQL.
- BIRD-CRITIC: um benchmark mais recente construído sobre o BIRD-SQL. Em vez de apenas pedir que o modelo escreva uma query uma vez, ele verifica se o modelo consegue corrigir os próprios erros. Por exemplo: se a primeira tentativa retorna um erro ou um resultado incorreto, o benchmark pede que o modelo corrija e tente de novo. Ele também faz isso em diferentes sistemas de banco de dados (Postgres, MySQL, SQL Server, Oracle).
- BEAVER: um benchmark criado a partir de queries reais extraídas de data warehouses corporativos, e não de datasets acadêmicos feitos sob medida. Ele inclui os schemas grandes e bagunçados que você esperaria encontrar em finanças, varejo ou operações.
Juntando tudo
Cada benchmark destaca uma parte diferente do desafio do SQL. Spider e BIRD-SQL padronizaram a avaliação de text-to-SQL em grande escala, mas com datasets muito mais limpos que sistemas reais de produção. A Tinybird mostra outra abordagem, que pode tornar os benchmarks mais acessíveis e comparativos, enquanto o SQL-Eval traz a dimensão importante da cobertura de vários engines.
Juntos, eles apontam a próxima oportunidade: benchmarks que vão além de queries estáticas de tentativa única para capturar o vaivém bagunçado do desenvolvimento em SQL.
Queries SQL com IA no Beekeeper Studio
Benchmarks são úteis para comparar modelos em ambientes controlados, mas o teste de verdade é o quanto a IA se encaixa no seu fluxo de trabalho do dia a dia.
É aí que entra o Beekeeper Studio: a GUI de SQL que se conecta ao seu LLM favorito para ajudar você a explorar e consultar seus dados por meio de uma interface conversacional e de queries SQL manuais. Ele é rápido, open source e multiplataforma, com suporte a Postgres, MySQL, SQLite, MongoDB e muito mais.