¿Es factible usar RAG para consultar grandes bases de datos?
· Toni Martir, arquitecto de software
Para contestar preguntas sobre una base de datos, la IA tiene que conocer sus tablas: con ellas escribe la sentencia SQL (la orden técnica que saca los datos). Pero cada modelo tiene un contexto, el máximo de texto que lee de una vez, y las bases de empresa son grandes: las de Spider 2.0, una de las pruebas públicas de estos sistemas, pasan a menudo de mil columnas. El esquema entero no cabe.
Una salida es RAG (generación aumentada por recuperación): antes de cada pregunta, un buscador elige las tablas que más se parecen a lo preguntado, y sólo esas llegan al modelo. Funciona muchas veces. La cuestión es qué pasa cuando elige mal, y si hay algo mejor.
Tres formas de darle el esquema a la IA
Si la base es pequeña, el esquema entero cabe y no hace falta elegir.
Por qué el buscador no encuentra el ROE
Alguien de dirección pregunta: «¿cuál es nuestro ROE este año?». El ROE es la rentabilidad de los fondos propios: el Banco Central Europeo lo define como el resultado del ejercicio dividido entre el patrimonio neto. En la base de datos, ninguna tabla ni ningún campo se llama nada parecido: el resultado y el patrimonio salen de los apuntes contables y del plan de cuentas, que hablan de asientos, cuentas, debe y haber.
El buscador compara la pregunta con los nombres y descripciones de las tablas, y «ROE» no se parece a ninguno. Elegirá las que más se acerquen, que no son las que hacen falta, y el modelo escribirá la sentencia con lo que le llegue. Los investigadores llaman a esa selección de tablas schema linking, y advierten que, si es imperfecta, «a menudo deja fuera columnas necesarias». Y el modelo no sabe que le faltan.
El subesquema del dominio
La alternativa es no buscar. Se prepara un subesquema por dominio (ventas, compras, finanzas), cada uno con sus tablas, todos sus campos descritos y las relaciones entre ellas. Quien pregunta conoce el dominio de su pregunta y sabe sobre qué puede preguntar.
Con el dominio de finanzas, el ROE deja de ser un problema: el plan de cuentas y los apuntes ya están ahí, descritos, y el modelo sabe qué es un ROE. Tiene el esquema que necesita sin buscarlo.
Los fabricantes recomiendan lo mismo. Databricks pide «cinco tablas o menos» y que cada asistente conteste preguntas «de un tema y un público concretos, no preguntas generales de varios dominios». Snowflake aconseja empezar con «5–10 tablas, un dominio de negocio» y llama a las descripciones «el elemento más importante para la precisión». Y los autores del estudio sobre schema linking no seleccionan tablas cuando el esquema cabe.
¿Cuánto dominio cabe?
Depende del modelo. Snowflake recomienda no pasar de unos 100.000 tokens (los trozos de texto con los que cuentan los modelos) y admite esquemas mayores con modelos de contexto grande. Con un modelo potente cabe un dominio amplio; con uno instalado en una máquina propia, el límite suele estar en el contexto. Es la frontera que encontré al pedir un informe entero a modelos locales: cuánto se les pide de una vez.
Entonces, ¿es factible?
Sí: RAG puede funcionar en muchas preguntas. Pero falla mucho más que un subesquema del dominio del que trata la pregunta, porque cuando el buscador no encuentra la tabla, el modelo no se entera. Con el dominio delimitado, el modelo tiene todas las tablas y sólo le queda entender la pregunta.
En Reportman AI trabajamos con esquemas predefinidos por dominio (ventas, compras, finanzas), porque la base de datos entera no cabe en el contexto: cada uno trae sus tablas con todos los campos descritos y sus relaciones, y la IA recibe completo el que elijas, sin buscador de por medio. Con un modelo potente puede usarse un dominio más amplio. Con un modelo local, que puede funcionar en tu propia máquina sin cuota (la máquina la pones tú), Reportman AI permite definir el tamaño del contexto.
Fuentes
- Fangyu Lei y otros, Spider 2.0: Evaluating Language Models on Real-World Enterprise Text-to-SQL Workflows (arXiv, versión de marzo de 2025): «The databases in Spider 2.0 are sourced from real data applications, often containing over 1,000 columns».
- Banco Central Europeo, ECB publishes consolidated banking data for end-June 2021, nota del gráfico 3: «Return on equity is defined as the ratio of total profit (loss) for the year to total equity.»
- Karime Maamari y otros, The Death of Schema Linking? Text-to-SQL in the Age of Well-Reasoned Language Models (arXiv, agosto de 2024): «imperfect schema linking can often exclude required columns needed for accurate query generation»; y su método «entirely forgoes schema linking in cases where the schema fits within the model's context window».
- Databricks, Curate an effective Genie Agent: «Aim for five or fewer tables.»; «An agent should answer questions for a particular topic and audience, not general questions across various domains.»
- Snowflake, Best practices for modeling semantic views: «Start with 5–10 tables, one business domain, and a specific use case.»; «Descriptions are the single most important element for accuracy.»; «Keep the semantic view under about 100,000 tokens.»; y prefiere una vista mayor cuando «you’re using large context window models where pruning enables larger semantic views».
- Reportman AI: página de inicio e IA local.
Toni Martir, arquitecto de software · · fuentes comprobadas el