Uma nova ferramenta facilita para usuários de banco de dados realizar análises estatísticas complicadas de dados tabulares sem a necessidade de saber o que está acontecendo nos bastidores.
O GenSQL, um sistema de IA generativa para bancos de dados, pode ajudar os usuários a fazer previsões, detectar anomalias, adivinhar valores ausentes, corrigir erros ou gerar dados sintéticos com apenas alguns toques de tecla.
Por exemplo, se o sistema fosse usado para analisar dados médicos de um paciente que sempre teve pressão alta, ele poderia capturar uma leitura de pressão arterial baixa para aquele paciente em particular, mas que, de outra forma, estaria na faixa normal.
O GenSQL integra automaticamente um conjunto de dados tabulares e um modelo de IA probabilístico generativo, que pode levar em conta a incerteza e ajustar a tomada de decisões com base em novos dados.
Além disso, o GenSQL pode ser usado para produzir e analisar dados sintéticos que imitam os dados reais em um banco de dados. Isso pode ser especialmente útil em situações em que dados sensíveis não podem ser compartilhados, como registros de saúde de pacientes, ou quando dados reais são esparsos.
Esta nova ferramenta é construída sobre SQL, uma linguagem de programação para criação e manipulação de banco de dados que foi introduzida no final da década de 1970 e é usada por milhões de desenvolvedores no mundo todo.
“Historicamente, o SQL ensinou ao mundo dos negócios o que um computador poderia fazer. Eles não precisavam escrever programas personalizados, eles só tinham que fazer perguntas a um banco de dados em linguagem de alto nível. Achamos que, quando passamos de apenas consultar dados para fazer perguntas a modelos e dados, vamos precisar de uma linguagem análoga que ensine às pessoas as perguntas coerentes que você pode fazer a um computador que tenha um modelo probabilístico dos dados”, diz Vikash Mansinghka ’05, MEng ’09, PhD ’09, autor sênior de um artigo apresentando o GenSQL e um cientista pesquisador principal e líder do Projeto de Computação Probabilística no Departamento de Ciências Cognitivas e do Cérebro do MIT.
Quando os pesquisadores compararam o GenSQL a abordagens populares baseadas em IA para análise de dados, eles descobriram que ele não era apenas mais rápido, mas também produzia resultados mais precisos. Mais importante, os modelos probabilísticos usados pelo GenSQL são explicáveis, então os usuários podem lê-los e editá-los.
“Olhar para os dados e tentar encontrar alguns padrões significativos usando apenas algumas regras estatísticas simples pode deixar passar interações importantes. Você realmente quer capturar as correlações e as dependências das variáveis, que podem ser bem complicadas, em um modelo. Com o GenSQL, queremos permitir que um grande conjunto de usuários consulte seus dados e seu modelo sem precisar saber todos os detalhes”, acrescenta o autor principal Mathieu Huot, um cientista pesquisador do Departamento de Ciências Cognitivas e do Cérebro e membro do Projeto de Computação Probabilística.
Eles são acompanhados no artigo por Matin Ghavami e Alexander Lew, estudantes de pós-graduação do MIT; Cameron Freer, um cientista pesquisador; Ulrich Schaechtle e Zane Shelby da Digital Garage; Martin Rinard, um professor do MIT no Departamento de Engenharia Elétrica e Ciência da Computação e membro do Laboratório de Ciência da Computação e Inteligência Artificial (CSAIL); e Feras Saad ’15, MEng ’16, PhD ’22, um professor assistente na Carnegie Mellon University. A pesquisa foi apresentada recentemente na Conferência ACM sobre Design e Implementação de Linguagem de Programação.
Combinando modelos e bancos de dados
SQL, que significa linguagem de consulta estruturada, é uma linguagem de programação para armazenar e manipular informações em um banco de dados. Em SQL, as pessoas podem fazer perguntas sobre dados usando palavras-chave, como somando, filtrando ou agrupando registros de banco de dados.
No entanto, consultar um modelo pode fornecer insights mais profundos, já que os modelos podem capturar o que os dados implicam para um indivíduo. Por exemplo, uma desenvolvedora que se pergunta se está mal paga provavelmente está mais interessada no que os dados salariais significam para ela individualmente do que em tendências de registros de banco de dados.
Os pesquisadores notaram que o SQL não fornecia uma maneira eficaz de incorporar modelos de IA probabilísticos, mas, ao mesmo tempo, abordagens que usam modelos probabilísticos para fazer inferências não suportavam consultas complexas de banco de dados.
Eles criaram o GenSQL para preencher essa lacuna, permitindo que alguém consultasse um conjunto de dados e um modelo probabilístico usando uma linguagem de programação formal simples, porém poderosa.
Um usuário do GenSQL carrega seus dados e modelo probabilístico, que o sistema integra automaticamente. Então, ele pode executar consultas em dados que também recebem entrada do modelo probabilístico em execução nos bastidores. Isso não só permite consultas mais complexas, mas também pode fornecer respostas mais precisas.
Por exemplo, uma consulta no GenSQL pode ser algo como, “Qual a probabilidade de um desenvolvedor de Seattle conhecer a linguagem de programação Rust?” Apenas olhar para uma correlação entre colunas em um banco de dados pode deixar passar dependências sutis. Incorporar um modelo probabilístico pode capturar interações mais complexas.
Além disso, os modelos probabilísticos que o GenSQL utiliza são auditáveis, então as pessoas podem ver quais dados o modelo usa para tomada de decisão. Além disso, esses modelos fornecem medidas de incerteza calibrada junto com cada resposta.
Por exemplo, com essa incerteza calibrada, se alguém consultar o modelo para resultados previstos de diferentes tratamentos de câncer para um paciente de um grupo minoritário sub-representado no conjunto de dados, o GenSQL informaria ao usuário que o modelo é incerto e quão incerto ele é, em vez de defender com excesso de confiança o tratamento errado.
Resultados mais rápidos e precisos
Para avaliar o GenSQL, os pesquisadores compararam seu sistema a métodos de linha de base populares que usam redes neurais. O GenSQL foi entre 1,7 e 6,8 vezes mais rápido do que essas abordagens, executando a maioria das consultas em alguns milissegundos, ao mesmo tempo em que forneceu resultados mais precisos.
Eles também aplicaram o GenSQL em dois estudos de caso: um no qual o sistema identificou dados de ensaios clínicos rotulados incorretamente e outro no qual gerou dados sintéticos precisos que capturaram relações complexas em genômica.
Em seguida, os pesquisadores querem aplicar o GenSQL de forma mais ampla para conduzir modelagem em larga escala de populações humanas. Com o GenSQL, eles podem gerar dados sintéticos para tirar inferências sobre coisas como saúde e salário, ao mesmo tempo em que controlam quais informações são usadas na análise.
Eles também querem tornar o GenSQL mais fácil de usar e mais poderoso adicionando novas otimizações e automação ao sistema. A longo prazo, os pesquisadores querem permitir que os usuários façam consultas em linguagem natural no GenSQL. O objetivo deles é eventualmente desenvolver um especialista em IA do tipo ChatGPT com quem se possa conversar sobre qualquer banco de dados, que baseie suas respostas usando consultas GenSQL.
Esta pesquisa é financiada, em parte, pela Agência de Projetos de Pesquisa Avançada de Defesa (DARPA), Google e pela Fundação da Família Siegel.