¿1 tabla = 1000 palabras? Modelos fundacionales para datos tabulares
Los datos tabulares desempeñan un papel fundamental en industrias como las finanzas, la atención médica y la investigación científica, proporcionando información estructurada que respalda la toma de decisiones. A diferencia de los datos no estructurados, que los modelos de IA han podido procesar con mayor flexibilidad, los datos estructurados siguen siendo un desafío. El análisis tradicional se basa en consultas estructuradas y modelos predefinidos, lo que dificulta trabajar con tablas que varían en formato, contienen valores faltantes o requieren análisis más allá de búsquedas simples. Estas restricciones limitan la capacidad de extraer información valiosa de manera eficiente, especialmente a medida que los conjuntos de datos crecen en tamaño y complejidad.
En un reciente webinar de Zilliz, Stefan Webb, developer advocate en Zilliz, examinó si los modelos de IA entrenados con tablas diversas podrían ofrecer un enfoque más adaptable. Los modelos fundacionales, entrenados con conjuntos de datos grandes y variados para aprender patrones generales que se aplican en diferentes casos de uso, han demostrado la capacidad de generalizar en distintos conjuntos de datos sin necesidad de ajuste fino específico para cada tarea, lo que los hace muy adecuados para el análisis de tablas. A diferencia de los modelos convencionales de aprendizaje automático que requieren un entrenamiento extenso para cada conjunto de datos, TableGPT2, un modelo fundacional para el análisis de tablas, aplica su comprensión de las estructuras tabulares para responder consultas, resumir datos y extraer información valiosa, reduciendo la necesidad de intervención manual.
Para que estos modelos sean eficaces, necesitan formas eficientes de almacenar y recuperar datos estructurados. Aquí es donde entran en juego las bases de datos vectoriales como Milvus, bases de datos especializadas diseñadas para almacenar y buscar representaciones numéricas de alta dimensionalidad de los datos. Almacenar embeddings de tablas permite a los modelos de IA buscar registros similares, recuperar información relevante y mejorar el análisis de datos estructurados. Veamos qué cubrió Stefan.
Mira el resumen de la charla de Stefan en YouTube
Por qué los datos tabulares necesitan un nuevo enfoque
Los enfoques tradicionales para analizar datos tabulares dependen en gran medida de consultas estructuradas y esquemas predefinidos. Métodos como las consultas SQL son eficaces cuando los conjuntos de datos se mantienen consistentes, pero incluso pequeñas variaciones entre tablas pueden interrumpir los flujos de trabajo, requiriendo ajustes manuales significativos. Por ejemplo, las bases de datos utilizadas por los bancos suelen tener esquemas definidos rígidamente, lo que hace que el análisis sea sencillo hasta que deben integrarse nuevos datos de fuentes externas con estructuras diferentes. Esta rigidez obstaculiza la capacidad de reutilizar modelos analíticos de manera eficiente y limita el procesamiento automatizado.
Este desafío se debe principalmente a la variabilidad de los esquemas, las diferencias naturales en las estructuras de las tablas entre diversas fuentes. Un conjunto de datos de atención médica podría tener columnas que representan el historial del paciente y diagnósticos médicos, mientras que los datos financieros pueden registrar transacciones, precios o fechas, cada uno siguiendo reglas y formatos distintos.
Figura 1: Datos estructurados frente a datos no estructurados
Dado que incluso pequeñas diferencias de esquema pueden interrumpir las herramientas analíticas tradicionales, se vuelven necesarios ajustes manuales para adaptarse a estas variaciones. Esto conduce a un mayor esfuerzo, análisis más lentos y una escalabilidad limitada.
Los métodos actuales de aprendizaje automático, como los árboles de decisión potenciados por gradiente, también dependen significativamente de características diseñadas manualmente y adaptadas a cada conjunto de datos. Cada nueva tabla o ligero cambio en el esquema suele requerir ajustes manuales en estas características, lo que limita la eficiencia y la escalabilidad. A medida que los datos se vuelven más complejos y voluminosos, los métodos analíticos tradicionales se vuelven cada vez menos prácticos. Esto ha llevado a los investigadores a recurrir a modelos fundacionales, que aprenden patrones generalizables a partir de grandes conjuntos de datos.
Modelos fundacionales para datos tabulares: un nuevo paradigma
Los modelos fundacionales son modelos de inteligencia artificial entrenados con conjuntos de datos grandes y diversos para aprender patrones generales. En lugar de requerir entrenamiento específico para cada nueva tarea, estos modelos reutilizan el conocimiento aprendido previamente en múltiples escenarios. Este enfoque es especialmente eficaz para analizar datos tabulares, donde las estructuras de las tablas pueden diferir significativamente.
Un buen ejemplo de un modelo fundacional diseñado específicamente para el análisis de datos estructurados es TableGPT2, desarrollado por investigadores de la Universidad de Zhejiang. TableGPT2 procesa tablas mediante varios pasos cuidadosamente diseñados. Primero, los datos tabulares se introducen en un componente llamado Table Encoder. Este codificador identifica relaciones clave dentro de los datos analizando cada celda, fila y columna individual. Utiliza una técnica conocida como atención bidimensional, que examina relaciones en dos dimensiones simultáneamente, a través de filas (horizontalmente) y columnas (verticalmente), lo que permite al modelo comprender mejor cómo se relacionan entre sí las distintas piezas de datos dentro de una tabla. Además, el Table Encoder emplea incrustación de celdas, convirtiendo el contenido de cada celda de la tabla en incrustaciones. Estas incrustaciones capturan tanto el contenido como la estructura de la tabla, haciendo que los datos sean comprensibles para las tareas posteriores.
Figura 2: Diagrama de arquitectura de TableGPT2 que muestra el Table Encoder convirtiendo datos tabulares en incrustaciones estructuradas y un Adapter (Q-Former) preparando las incrustaciones para el modelo de lenguaje.
Después de que el Table Encoder crea estas incrustaciones estructuradas, aún necesitan una transformación adicional porque los modelos de lenguaje típicos como GPT comprenden mejor las entradas basadas en texto que las incrustaciones numéricas. Para este propósito, TableGPT2 introduce un Adapter, a veces llamado Q-Former, que traduce incrustaciones numéricas en representaciones textuales. El Adapter reformatea eficazmente la incrustación numérica en prompts similares al lenguaje natural. Estos prompts textuales integran tanto la información de las tablas como las preguntas del usuario, creando entradas claras y comprensibles que los modelos de lenguaje pueden interpretar fácilmente.
Figura 3: Paradigma de modelado que ilustra cómo TableGPT2 transforma incrustaciones de tablas en prompts textuales
Una vez combinados en un prompt textual unificado, los datos y la pregunta del usuario pueden ser procesados por un modelo de lenguaje. Este enfoque permite a TableGPT2 responder consultas en lenguaje natural, resumir el contenido de tablas y proporcionar información basada en datos sin depender de reglas predefinidas o consultas manuales adaptadas a esquemas específicos. Debido a que el modelo aprende estructuras generales durante el entrenamiento, puede manejar esquemas de tablas variables con significativamente menos esfuerzo manual que los métodos tradicionales.
Para generar resultados analíticos estructurados y reproducibles, TableGPT2 también utiliza una instrucción predefinida conocida como System Prompt. A diferencia de los prompts típicos, este system prompt instruye explícitamente al modelo sobre cómo realizar tareas analíticas generando código Python ejecutable. Por ejemplo, cuando se le da una pregunta como, ¿Qué productos tuvieron las mayores ventas en el último trimestre? TableGPT2 interpreta estas directrices proporcionadas por el sistema y produce el código Python correspondiente para analizar las columnas relevantes. El código resultante se ejecuta en un entorno controlado (por ejemplo, un sandbox de IPython), lo que garantiza el aislamiento del modelo central y protege contra riesgos. Luego, el modelo interpreta estos resultados para proporcionar respuestas precisas, transparentes y reproducibles. Este enfoque estructurado garantiza que los resultados puedan verificarse fácilmente, aumentando la confianza en las capacidades analíticas del modelo. El system prompt a continuación es el exacto que TableGPT2 utiliza en su código.
Figura 4: System Prompt de TableGPT2 que muestra las instrucciones que guían al modelo para generar código Python para el análisis de datos estructurados.
Para comprender mejor cómo los modelos fundacionales como TableGPT2 logran esta flexibilidad, exploremos los métodos de entrenamiento específicos y los conjuntos de datos utilizados para construir estos modelos.
Entrenamiento del modelo: el papel de los datos
La efectividad de los modelos fundacionales como TableGPT2 depende en gran medida de su proceso de entrenamiento, que está cuidadosamente diseñado para ayudar al modelo a comprender y analizar diversas estructuras de tablas. Para lograrlo, TableGPT2 pasa por un enfoque de entrenamiento especializado que consta de múltiples fases interconectadas, cada una con un papel distinto para permitir que el modelo maneje datos tabulares de forma flexible y precisa.
Figura 5: Proceso de entrenamiento de TableGPT2
Inicialmente, TableGPT2 aprovecha un large language model (LLM) general, Qwen 2.5, que se entrena con conjuntos de datos de texto masivos. Esta fase inicial, llamada preentrenamiento continuo, ayuda al modelo a adquirir amplias habilidades de comprensión del lenguaje. Luego pasa por un proceso llamado ajuste fino supervisado, donde aprende a desempeñar mejor tareas específicas como responder preguntas o resumir información, utilizando más de dos millones de ejemplos cuidadosamente etiquetados. Este paso construye una base sólida, lo que permite al modelo manejar eficazmente consultas complejas en lenguaje natural.
Con el componente lingüístico preparado, el entrenamiento se desplaza específicamente hacia la comprensión de tablas. Aquí, el aprendizaje contrastivo por columnas desempeña un papel central. En este proceso, TableGPT2 aprende a diferenciar columnas en función de sus relaciones y contenido comparando muchas tablas y columnas lado a lado, aprendiendo a reconocer similitudes y diferencias en aproximadamente 86.000 tablas diversas. Luego, el modelo pasa a la alineación de características multitarea, donde aprende simultáneamente múltiples tareas, como clasificar columnas de tablas y extraer resúmenes significativos de las tablas. Al entrenarse con cientos de miles de muestras de tablas diversas, TableGPT2 se vuelve hábil para identificar patrones estructurales comunes en muchas tablas diferentes.
Por último, los componentes de lenguaje y comprensión de tablas pasan por un proceso final de ajuste conocido como ajuste conjunto de instrucciones. Este paso implica integrar cuidadosamente estas capacidades separadas, lo que permite que el modelo interprete claramente las estructuras de las tablas y responda con precisión a las instrucciones del usuario. Después de este entrenamiento integral, TableGPT2 es capaz de interpretar y analizar tablas de diversos dominios sin una personalización extensa, lo que mejora significativamente la flexibilidad en tareas analíticas prácticas.
Este proceso de entrenamiento estructurado garantiza que TableGPT2 no solo comprenda e interactúe eficazmente con datos estructurados, sino que también reduzca la dependencia de consultas y esquemas diseñados manualmente, abordando las limitaciones que destacamos anteriormente.
Ejemplo práctico: uso de TableGPT2 para consultar datos tabulares
Para comprender cómo funciona TableGPT2 en la práctica, considere un escenario en el que un usuario tiene datos estructurados almacenados en un archivo CSV simple. Imagine querer identificar rápidamente filas específicas que coincidan con ciertos criterios, como encontrar partidos de un conjunto de datos donde el registro sea exactamente 40 victorias y 40 derrotas. En lugar de filtrar manualmente las tablas, TableGPT2 puede generar automáticamente el código Python necesario para esta tarea basándose únicamente en una consulta del usuario en lenguaje natural.
Veamos paso a paso cómo funciona esto. Para comenzar, debe configurar su entorno para interactuar con TableGPT2. El primer paso consiste en instalar la biblioteca Hugging Face Transformers, un kit de herramientas de Python que proporciona acceso fácil a modelos como TableGPT2:
!pip install transformers
Una vez instalada, cargue el modelo y prepare sus datos:
from transformers import AutoModelForCausalLM, AutoTokenizer
import pandas as pd
from io import StringIO
# Sample structured data in CSV format
csv_content = """
"Loss","Date","Score","Opponent","Record","Attendance"
"Hampton (14-12)","September 25","8-7","Padres","67-84","31,193"
"Speier (5-3)","September 26","3-2","Giants","40-40","29,004"
"Perez (2-2)","September 27","5-4","Reds","40-40","27,500"
"Hampton (13-11)","September 6","9-5","Dodgers","61-78","31,407"
"""
import pandas as pd
from io import StringIO
# Load the CSV data into a DataFrame
csv_file = StringIO(EXAMPLE_CSV_CONTENT)
df = pd.read_csv(csv_file)
Los datos CSV anteriores representan partidos deportivos, incluidas columnas para el oponente, la fecha del partido, la puntuación, los registros del equipo (victorias-derrotas) y las cifras de asistencia. Para analizar estos datos usando TableGPT2, primero cargue el modelo preentrenado y el tokenizador:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "tablegpt/TableGPT2-7B"
model = AutoModelForCausalLM.from_pretrained(
model_name, torch_dtype="auto", device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
A continuación, use TableGPT2 para responder una pregunta sobre sus datos. Aquí usaremos un ejemplo específico: identificar partidos con exactamente un registro de victorias-derrotas de 40-40. Para lograr esto, proporcione al modelo un prompt cuidadosamente formateado, guiándolo para generar código Python que responda a la consulta:
example_prompt_template = """Given access to several pandas dataframes, write the Python code to answer the user's question
/*
"df.head(5).to_string(index=False)" as follows:
{df_info}
*/
Question: {user_question}
Este prompt indica claramente a TableGPT2 qué hacer, especificando la estructura de la tabla (nombres de columnas y una muestra de datos) junto con su pregunta.
La siguiente función enviará este prompt a TableGPT2 y recuperará código Python como respuesta:
def ask_table_question(question: str):
prompt = example_prompt_template.format(
var_name="df",
df_info=df.head(5).to_string(index=False),
user_question=question
)
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(**model_inputs, max_new_tokens=512)
response = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
return response
Ahora hagámosle una pregunta al modelo y veamos cómo responde:
question = "Which games have a record of 40 wins and 40 losses?"
generated_code = ask_table_question(question)
print(generated_code)
Aquí está el código Python devuelto por TableGPT2
Figura 6: Salida generada por TableGPT2
Como puedes ver, este código filtra los datos con precisión. Así es como funciona este código generado:
El código primero divide los valores de la columna
"Record"en dos números separados, que representan victorias y derrotas, usando.str.split("-").Luego convierte estos valores de cadenas a enteros, lo que hace posibles las comparaciones numéricas.
Finalmente, el código identifica solo aquellas filas donde tanto las victorias como las derrotas son iguales a 40, creando un conjunto de datos filtrado.
Esta demostración muestra cómo TableGPT2 puede simplificar el análisis de datos. Los usuarios pueden interactuar con datos estructurados de forma natural, recibiendo resultados transparentes y verificables sin codificar manualmente consultas complejas. Este método hace que los conocimientos derivados de los datos sean accesibles incluso para principiantes o partes interesadas no técnicas. Ten en cuenta que, además de código, puedes indicar a TableGPT que te dé la salida directamente mediante el prompt.
Cómo Milvus mejora la búsqueda tabular impulsada por IA
Los modelos fundacionales como TableGPT2 proporcionan flexibilidad al analizar datos estructurados, pero encontrar eficientemente información relevante dentro de bases de datos a gran escala es un desafío. Milvus, una base de datos vectorial de código abierto, complementa a los modelos fundacionales almacenando y buscando rápidamente embeddings.
Milvus funciona convirtiendo datos, como texto o tablas, en embeddings. Un embedding es esencialmente una representación numérica que posiciona puntos de datos en un espacio de alta dimensionalidad, lo que permite al modelo encontrar rápidamente entradas similares o relacionadas. Por ejemplo, al generar embeddings de transacciones financieras, las transacciones similares, como compras de productos relacionados, quedarían cerca unas de otras dentro de este espacio numérico. Echemos un vistazo al flujo de trabajo de Milvus.
Figura 7: Flujo de trabajo que ilustra cómo Milvus procesa datos textuales, los convierte en embeddings y recupera resultados relevantes
El proceso comienza cuando un usuario introduce una consulta en lenguaje natural. Milvus primero analiza este texto de consulta, lo descompone y lo convierte en un embedding. Luego, los embeddings de la consulta se comparan con una colección de embeddings almacenados previamente. Para identificar las coincidencias más relevantes, Milvus utiliza métodos de puntuación como BM25, una técnica que evalúa tanto la frecuencia como la importancia de las palabras clave en los documentos. Al combinar el significado semántico (capturado por los embeddings) y la relevancia de las palabras clave, Milvus recupera rápidamente resultados de búsqueda precisos, ayudando a los modelos fundacionales a proporcionar respuestas mejor informadas.
Milvus se puede usar en diversos escenarios y admite múltiples métodos de implementación, según la escala y la complejidad requeridas:
Figura 8: Opciones de implementación para Milvus
Milvus Lite es ideal para pruebas rápidas y proyectos a pequeña escala, y se usa comúnmente directamente dentro de entornos como Jupyter notebooks. Permite realizar experimentos rápidos sin configuraciones complejas ni infraestructura adicional. Milvus Standalone es adecuado para cargas de trabajo de tamaño moderado. Normalmente alojado en un único servidor usando tecnologías como Docker, ofrece un mantenimiento simplificado para aplicaciones que necesitan almacenamiento fiable pero de capacidad moderada. Milvus Cluster admite escenarios a gran escala, escalando eficientemente a miles de millones de vectores en múltiples servidores. Distribuye la carga de trabajo entre múltiples nodos, mejorando significativamente la velocidad y permitiendo el manejo de conjuntos de datos extremadamente grandes.
Los beneficios de rendimiento de Milvus son importantes para aplicaciones que necesitan tiempos de respuesta rápidos, como sistemas de recomendación en tiempo real o consultas interactivas. Los benchmarks demuestran que Milvus supera significativamente a otras bases de datos vectoriales en términos de velocidad, gestionando millones de búsquedas vectoriales con mayor eficiencia:
Figura 9: Benchmarks que comparan la velocidad de búsqueda (consultas por segundo) de Milvus frente a otras bases de datos vectoriales
Además, Milvus admite flujos de trabajo que combinan modelos de IA con procesos de recuperación, garantizando que las respuestas generadas sigan siendo precisas al fundamentarlas directamente en datos factuales. Este proceso se denomina Generación Aumentada por Recuperación (RAG) y permite que modelos fundacionales como TableGPT2 produzcan resultados fundamentados en datos reales almacenados en Milvus. En la práctica, esto significa que TableGPT2 no depende únicamente de patrones aprendidos durante el entrenamiento, sino que también recupera datos actuales y relevantes directamente de la base de datos cada vez que responde a consultas de usuarios.
Figura 10: Flujo de trabajo agéntico
Específicamente, un agente de IA primero normaliza y prepara los datos de entrada, y luego recupera información contextual relacionada desde Milvus. Una vez recuperada esta información adicional, el agente envía tanto la consulta del usuario como el contexto a TableGPT2. TableGPT2 luego utiliza sus capacidades aprendidas junto con datos recientes de Milvus para generar respuestas claras, precisas y oportunas a las preguntas de los usuarios. Esto garantiza que la información proporcionada por el modelo sea tanto precisa como actualizada, mejorando la fiabilidad y utilidad para los usuarios finales.
Al comprender claramente el flujo de trabajo, las opciones de despliegue y las ventajas de rendimiento de Milvus, resulta evidente cómo la combinación de modelos fundacionales con bases de datos vectoriales optimizadas mejora en gran medida la eficiencia y la precisión en tareas de análisis de datos estructurados.
Desafíos y limitaciones de los modelos fundacionales para datos tabulares
A pesar de su flexibilidad y mejor rendimiento frente a los métodos tradicionales, los modelos fundacionales como TableGPT2 aún se enfrentan a varios desafíos prácticos cuando se aplican al análisis de datos estructurados. Estos incluyen:
Variabilidad de esquemas: Las tablas de diferentes industrias rara vez siguen estructuras uniformes. Aunque los modelos fundacionales generalizan mejor que los métodos tradicionales, las diferencias significativas en las estructuras de las tablas aún pueden afectar la precisión. Por ejemplo, analizar registros financieros con un modelo entrenado extensamente en datos sanitarios podría dar lugar a perspectivas menos precisas debido a diferencias fundamentales en los tipos y la estructura de los datos.
Escalabilidad: Procesar tablas grandes o complejas a menudo requiere recursos computacionales sustanciales, lo que hace que implementar modelos fundacionales a escala sea costoso y desafiante. Cuando los conjuntos de datos crecen hasta millones o miles de millones de registros, los recursos necesarios para un análisis efectivo aumentan significativamente, lo que puede ralentizar los flujos de trabajo o incrementar los costes operativos.
Interpretabilidad: Los modelos fundacionales, normalmente basados en redes neuronales, ofrecen explicaciones limitadas sobre cómo llegan a respuestas o decisiones específicas. Los métodos analíticos tradicionales, como los árboles de decisión, muestran claramente la lógica detrás de las predicciones, mientras que los modelos fundacionales basados en redes neuronales funcionan como cajas negras. Esta limitación puede restringir su uso en industrias donde la transparencia y el cumplimiento normativo son críticos, como la atención médica, las finanzas o los ámbitos legales.
Sesgos de los datos de entrenamiento: Los modelos fundacionales corren el riesgo de heredar sesgos de sus conjuntos de datos de entrenamiento. Si los datos de entrenamiento contienen sesgos, esos sesgos pueden reflejarse en las predicciones o conocimientos del modelo. Esto puede dar lugar a resultados injustos o inexactos, especialmente en áreas sensibles como las decisiones de contratación, el diagnóstico médico o la calificación crediticia. Detectar y corregir estos sesgos puede ser difícil debido a la naturaleza opaca de los modelos neuronales.
Falta de benchmarks estandarizados: Evaluar modelos fundacionales para el análisis de datos estructurados sigue siendo difícil debido a la falta de estándares de evaluación universales. A diferencia de las tareas de lenguaje natural, donde existen benchmarks bien establecidos, el análisis de datos estructurados actualmente carece de medidas de rendimiento ampliamente aceptadas. Esto complica los esfuerzos para comparar o validar objetivamente diferentes modelos.
Reconocer estos desafíos es importante para implementar y mejorar eficazmente los modelos fundacionales. Al usar estos modelos, necesitas estrategias claras para gestionar estas limitaciones, asegurando que los beneficios superen los riesgos.
Conclusión
Los modelos fundacionales como TableGPT2 representan un cambio significativo en el análisis de datos tabulares, ofreciendo mayor adaptabilidad en comparación con los métodos tradicionales. Cuando se integran con bases de datos vectoriales como Milvus, estos modelos acceden eficientemente a datos relevantes, mejorando significativamente su precisión y utilidad práctica. Sin embargo, usar eficazmente los modelos fundacionales requiere abordar desafíos como la variabilidad de esquemas, la escalabilidad, la interpretabilidad, los posibles sesgos y la falta de métodos de evaluación estandarizados. A medida que estos modelos continúan evolucionando, abordar estas limitaciones permitirá a las organizaciones utilizar datos estructurados con mayor confianza y eficacia para una toma de decisiones informada.
Sigue leyendo

Milvus 2.6.x Now Generally Available on Zilliz Cloud, Making Vector Search Faster, Smarter, and More Cost-Efficient for Production AI
Milvus 2.6.x is now GA on Zilliz Cloud, delivering faster vector search, smarter hybrid queries, and lower costs for production RAG and AI applications.

Zilliz Cloud Update: Tiered Storage, Business Critical Plan, Cross-Region Backup, and Pricing Changes
This release offers a rebuilt tiered storage with lower costs, a new Business Critical plan for enhanced security, and pricing updates, among other features.

Introducing DeepSearcher: A Local Open Source Deep Research
In contrast to OpenAI’s Deep Research, this example ran locally, using only open-source models and tools like Milvus and LangChain.


