Una nueva herramienta facilita a los usuarios de bases de datos realizar análisis estadísticos complicados de datos tabulares sin necesidad de saber qué está sucediendo detrás de escena.
GenSQL, un sistema de inteligencia artificial generativa para bases de datos, podría ayudar a los usuarios a realizar predicciones, detectar anomalías, adivinar valores faltantes, corregir errores o generar datos sintéticos con solo pulsar unas pocas teclas.
Por ejemplo, si el sistema se utilizara para analizar datos médicos de un paciente que siempre ha tenido presión arterial alta, podría detectar una lectura de presión arterial que sea baja para ese paciente en particular pero que por lo demás estaría dentro del rango normal.
GenSQL integra automáticamente un conjunto de datos tabulares y un modelo de IA probabilístico generativo, que puede tener en cuenta la incertidumbre y ajustar su toma de decisiones en función de nuevos datos.
Además, GenSQL se puede utilizar para producir y analizar datos sintéticos que imitan los datos reales de una base de datos. Esto puede resultar especialmente útil en situaciones en las que no se pueden compartir datos confidenciales, como los historiales médicos de los pacientes, o cuando los datos reales son escasos.
Esta nueva herramienta está construida sobre SQL, un lenguaje de programación para la creación y manipulación de bases de datos que se introdujo a finales de la década de 1970 y es utilizado por millones de desarrolladores en todo el mundo.
“Históricamente, SQL enseñó al mundo empresarial lo que un ordenador podía hacer. No tenían que escribir programas personalizados, sólo tenían que hacer preguntas a una base de datos en un lenguaje de alto nivel. Creemos que, cuando pasemos de simplemente consultar datos a hacer preguntas a modelos y datos, vamos a necesitar un lenguaje análogo que enseñe a la gente las preguntas coherentes que se pueden hacer a un ordenador que tiene un modelo probabilístico de los datos”, afirma Vikash Mansinghka, autor principal de un artículo que presenta GenSQL y científico investigador principal y líder del Proyecto de Computación Probabilística en el Departamento de Ciencias Cognitivas y del Cerebro del MIT.
Cuando los investigadores compararon GenSQL con métodos populares basados en inteligencia artificial para el análisis de datos, descubrieron que no solo era más rápido, sino que también producía resultados más precisos. Es importante destacar que los modelos probabilísticos utilizados por GenSQL son explicables, por lo que los usuarios pueden leerlos y editarlos.
“Si analizamos los datos e intentamos encontrar algunos patrones significativos utilizando simplemente algunas reglas estadísticas simples, es posible que pasemos por alto interacciones importantes. Lo que realmente queremos es capturar las correlaciones y las dependencias de las variables, que pueden ser bastante complicadas, en un modelo. Con GenSQL, queremos permitir que un gran conjunto de usuarios consulte sus datos y su modelo sin tener que conocer todos los detalles”, añade el autor principal Mathieu Huot, científico investigador del Departamento de Ciencias Cognitivas y del Cerebro y miembro del Proyecto de Computación Probabilística.
A ellos se suman en el artículo Matin Ghavami y Alexander Lew, estudiantes de posgrado del MIT; Cameron Freer, científico investigador; Ulrich Schaechtel y Zane Shelby de Digital Garage; Martin Rinard, profesor del Departamento de Ingeniería Eléctrica y Ciencias de la Computación del MIT y miembro del Laboratorio de Ciencias de la Computación e Inteligencia Artificial (CSAIL); y Feras Saad, profesor adjunto de la Universidad Carnegie Mellon. La investigación se presentó recientemente en la Conferencia ACM sobre Diseño e Implementación de Lenguajes de Programación.
Combinando modelos y bases de datos
SQL, que significa lenguaje de consulta estructurado, es un lenguaje de programación para almacenar y manipular información en una base de datos. En SQL, las personas pueden hacer preguntas sobre los datos mediante palabras clave, como por ejemplo sumando, filtrando o agrupando registros de la base de datos.
Sin embargo, consultar un modelo puede brindar información más detallada, ya que los modelos pueden capturar lo que los datos implican para un individuo. Por ejemplo, una desarrolladora que se pregunta si está mal pagada probablemente esté más interesada en lo que significan los datos salariales para ella individualmente que en las tendencias de los registros de la base de datos.
Los investigadores notaron que SQL no proporcionaba una forma efectiva de incorporar modelos de IA probabilísticos, pero al mismo tiempo, los enfoques que utilizan modelos probabilísticos para hacer inferencias no admitían consultas de bases de datos complejas.
Desarrollaron GenSQL para llenar este vacío, permitiendo a alguien consultar tanto un conjunto de datos como un modelo probabilístico utilizando un lenguaje de programación formal sencillo pero poderoso.
Un usuario de GenSQL carga sus datos y su modelo probabilístico, que el sistema integra automáticamente. Luego, puede ejecutar consultas sobre los datos que también reciben información del modelo probabilístico que se ejecuta en segundo plano. Esto no solo permite realizar consultas más complejas, sino que también puede brindar respuestas más precisas.
Por ejemplo, una consulta en GenSQL podría ser algo como: “¿Qué probabilidad hay de que un desarrollador de Seattle conozca el lenguaje de programación Rust?”. Si solo se observa una correlación entre columnas de una base de datos, es posible que se pasen por alto dependencias sutiles. La incorporación de un modelo probabilístico puede capturar interacciones más complejas.
Además, los modelos probabilísticos que utiliza GenSQL son auditables, por lo que las personas pueden ver qué datos utiliza el modelo para la toma de decisiones. Además, estos modelos proporcionan medidas de incertidumbre calibrada junto con cada respuesta.
Por ejemplo, con esta incertidumbre calibrada, si uno consulta el modelo para conocer los resultados previstos de diferentes tratamientos contra el cáncer para un paciente de un grupo minoritario que está subrepresentado en el conjunto de datos, GenSQL le diría al usuario que hay incertidumbre y cuán incierta es, en lugar de defender con demasiada confianza el tratamiento equivocado.
Resultados más rápidos y precisos
Para evaluar GenSQL, los investigadores compararon su sistema con métodos de referencia populares que utilizan redes neuronales. GenSQL fue entre 1,7 y 6,8 veces más rápido que estos enfoques, ejecutando la mayoría de las consultas en unos pocos milisegundos y brindando resultados más precisos.
También aplicaron GenSQL en dos estudios de caso: uno en el que el sistema identificó datos de ensayos clínicos mal etiquetados y el otro en el que generó datos sintéticos precisos que capturaron relaciones complejas en la genómica.
A continuación, los investigadores quieren aplicar GenSQL de forma más amplia para realizar modelos a gran escala de poblaciones humanas. Con GenSQL, pueden generar datos sintéticos para extraer conclusiones sobre cuestiones como la salud y el salario, al tiempo que controlan qué información se utiliza en el análisis.
También quieren que GenSQL sea más fácil de usar y más potente añadiendo nuevas optimizaciones y automatización al sistema. A largo plazo, los investigadores quieren permitir a los usuarios realizar consultas en lenguaje natural en GenSQL. Su objetivo es desarrollar un experto en inteligencia artificial similar a ChatGPT con el que se pueda hablar sobre cualquier base de datos y que base sus respuestas en consultas GenSQL.
Esta investigación está financiada, en parte, por la Agencia de Proyectos de Investigación Avanzada de Defensa (DARPA), Google y la Fundación de la Familia Siegel.