Entrenamiento eficiente de tablas sin datos reales Una introducción a TAPEX

'Entrenamiento eficiente de tablas sin datos reales' - Introducción a TAPEX.

En los últimos años, el preentrenamiento de modelos de lenguaje ha logrado un gran éxito al aprovechar datos textuales a gran escala. Al emplear tareas de preentrenamiento como el modelado de lenguaje enmascarado, estos modelos han demostrado un rendimiento sorprendente en varias tareas secundarias. Sin embargo, la brecha dramática entre la tarea de preentrenamiento (por ejemplo, modelado de lenguaje) y la tarea secundaria (por ejemplo, respuesta de preguntas de tablas) hace que el preentrenamiento existente no sea lo suficientemente eficiente. En la práctica, a menudo necesitamos una cantidad extremadamente grande de datos de preentrenamiento para obtener una mejora prometedora, incluso para el preentrenamiento adaptativo al dominio. ¿Cómo podríamos diseñar una tarea de preentrenamiento para cerrar la brecha y, por lo tanto, acelerar el preentrenamiento?

Resumen

En “TAPEX: Preentrenamiento de tablas mediante el aprendizaje de un ejecutor de SQL neuronal”, exploramos el uso de datos sintéticos como un sustituto de datos reales durante el preentrenamiento y demostramos su poder con TAPEX (Preentrenamiento de tablas mediante ejecución) como ejemplo. En TAPEX, mostramos que se puede lograr el preentrenamiento de tablas mediante el aprendizaje de un ejecutor de SQL neuronal sobre un corpus sintético.

Nota: [Tabla] es un marcador de posición para la tabla proporcionada por el usuario en la entrada.

Como se muestra en la figura anterior, al muestrear sistemáticamente consultas SQL ejecutables y sus resultados de ejecución en tablas, TAPEX primero sintetiza un corpus de preentrenamiento sintético y no natural. Luego, continúa el preentrenamiento de un modelo de lenguaje (por ejemplo, BART) para generar los resultados de ejecución de las consultas SQL, lo que imita el proceso de un ejecutor de SQL neuronal.

Preentrenamiento

La siguiente figura ilustra el proceso de preentrenamiento. En cada paso, primero tomamos una tabla de la web. La tabla de ejemplo trata sobre los Juegos Olímpicos. Luego, podemos muestrear una consulta SQL ejecutable SELECT City WHERE Country = France ORDER BY Year ASC LIMIT 1. A través de un ejecutor de SQL listo para usar (por ejemplo, MySQL), podemos obtener el resultado de ejecución de la consulta Paris. De manera similar, al alimentar la concatenación de la consulta SQL y la tabla aplanada al modelo (por ejemplo, codificador BART) como entrada, el resultado de ejecución sirve como supervisión para el modelo (por ejemplo, decodificador BART) como salida.

¿Por qué utilizar programas como consultas SQL en lugar de oraciones en lenguaje natural como fuente de preentrenamiento? La mayor ventaja es que la diversidad y escala de los programas se pueden garantizar sistemáticamente en comparación con las oraciones en lenguaje natural incontrolables. Por lo tanto, podemos sintetizar fácilmente un corpus de preentrenamiento diverso, a gran escala y de alta calidad al muestrear consultas SQL.

Puedes probar el ejecutor de SQL neuronal entrenado en 🤗 Transformers de la siguiente manera:

from transformers import TapexTokenizer, BartForConditionalGeneration
import pandas as pd

tokenizer = TapexTokenizer.from_pretrained("microsoft/tapex-large-sql-execution")
model = BartForConditionalGeneration.from_pretrained("microsoft/tapex-large-sql-execution")

data = {
    "year": [1896, 1900, 1904, 2004, 2008, 2012],
    "city": ["athens", "paris", "st. louis", "athens", "beijing", "london"]
}
table = pd.DataFrame.from_dict(data)

# tapex accepts uncased input since it is pre-trained on the uncased corpus
query = "select year where city = beijing"
encoding = tokenizer(table=table, query=query, return_tensors="pt")

outputs = model.generate(**encoding)

print(tokenizer.batch_decode(outputs, skip_special_tokens=True))
# ['2008']

Ajuste fino

Durante el ajuste fino, alimentamos la concatenación de la pregunta en lenguaje natural y la tabla aplanada al modelo como entrada, y la respuesta etiquetada por los anotadores sirve como supervisión para el modelo como salida. ¿Quieres ajustar fino TAPEX tú mismo? Puedes ver el script de ajuste fino aquí, que se ha integrado oficialmente en 🤗 Transformers 4.19.0!

¡Y hasta ahora, todos los modelos de TAPEX disponibles tienen widgets interactivos oficialmente admitidos por Huggingface! Puedes intentar responder algunas preguntas de la siguiente manera.

Experimentos

Evaluamos TAPEX en cuatro conjuntos de datos de referencia, que incluyen WikiSQL (Debil), WikiTableQuestions, SQA y TabFact. Los tres primeros conjuntos de datos se tratan sobre respuesta de preguntas de tablas, mientras que el último se trata sobre verificación de datos de tablas, ambos requieren razonamiento conjunto sobre tablas y lenguaje natural. A continuación se muestran algunos ejemplos del conjunto de datos más desafiante, WikiTableQuestions:

Los resultados experimentales demuestran que TAPEX supera ampliamente en rendimiento a enfoques previos de pre-entrenamiento de tablas y ⭐logra nuevos resultados de vanguardia en todos ellos⭐. Esto incluye mejoras en la precisión de denotación débilmente supervisada de WikiSQL a 89.6% (+2.3% sobre SOTA, +3.8% sobre BART), la precisión de TabFact a 84.2% (+3.2% sobre SOTA, +3.0% sobre BART), la precisión de denotación de SQA a 74.5% (+3.5% sobre SOTA, +15.9% sobre BART) y la precisión de denotación de preguntas de WikiTable a 57.5% (+4.8% sobre SOTA, +19.5% sobre BART). Hasta donde sabemos, este es el primer trabajo que aprovecha el pre-entrenamiento a través de programas ejecutables sintéticos y logra nuevos resultados de vanguardia en varias tareas secundarias.

Comparación con el Pre-entrenamiento de Tablas Previo

El primer trabajo sobre pre-entrenamiento de tablas, TAPAS de Google Research – también disponible en 🤗 Transformers – y TaBERT de Meta AI, han revelado que recolectar más datos adaptados al dominio puede mejorar el rendimiento secundario. Sin embargo, estos trabajos anteriores principalmente emplean tareas de pre-entrenamiento de propósito general, como el modelado de lenguaje y sus variantes. TAPEX explora un camino diferente sacrificando la naturalidad de la fuente pre-entrenada para obtener una tarea pre-entrenada adaptada al dominio, es decir, la ejecución de SQL. A continuación se muestra una comparación gráfica entre BERT, TAPAS/TaBERT y nuestro TAPEX.

Creemos que la tarea de ejecución de SQL está más cerca de la tarea secundaria de respuesta a preguntas de tablas, especialmente desde la perspectiva de las capacidades de razonamiento estructural. Imagina que te enfrentas a una consulta de SQL SELECT City ORDER BY Year y una pregunta natural Ordena todas las ciudades por año. Los caminos de razonamiento requeridos por la consulta de SQL y la pregunta son similares, excepto que SQL es un poco más rígido que el lenguaje natural. Si un modelo de lenguaje puede ser pre-entrenado para “ejecutar” fielmente consultas de SQL y producir resultados correctos, debería tener una comprensión profunda del lenguaje natural con intenciones similares.

¿Y qué hay de la eficiencia? ¿Qué tan eficiente es este método de pre-entrenamiento en comparación con el pre-entrenamiento previo? La respuesta se encuentra en la figura anterior: en comparación con el método de pre-entrenamiento de tablas previo TaBERT, TAPEX podría lograr una mejora del 2% con solo utilizar el 2% del corpus de pre-entrenamiento, ¡logrando un aumento de velocidad de casi 50 veces! Con un corpus de pre-entrenamiento más grande (por ejemplo, 5 millones de pares <SQL, Tabla, Resultado de Ejecución>), el rendimiento en los conjuntos de datos secundarios sería mejor.

Conclusión

En este blog, presentamos TAPEX, un enfoque de pre-entrenamiento de tablas cuyo corpus se sintetiza automáticamente mediante el muestreo de consultas de SQL y sus resultados de ejecución. TAPEX aborda el desafío de la escasez de datos en el pre-entrenamiento de tablas mediante el aprendizaje de un ejecutor de SQL neuronal en un corpus sintético diverso, a gran escala y de alta calidad. Los resultados experimentales en cuatro conjuntos de datos secundarios demuestran que TAPEX supera ampliamente en rendimiento a enfoques previos de pre-entrenamiento de tablas, con una mayor eficiencia de pre-entrenamiento.

Conclusiones

¿Qué podemos aprender del éxito de TAPEX? Sugerimos que, especialmente si deseas realizar un pre-entrenamiento continuo eficiente, puedes probar estas opciones:

  1. Sintetizar un corpus preciso y pequeño, en lugar de extraer un corpus grande pero ruidoso de Internet.
  2. Simular habilidades adaptadas al dominio mediante programas, en lugar de modelado de lenguaje de propósito general mediante oraciones en lenguaje natural.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Uso de Computadoras Analógicas en Inteligencia Artificial (IA)

Las Computadoras Analógicas son una clase de dispositivos en los cuales las cantidades físicas como el voltaje eléctr...

Inteligencia Artificial

Esta investigación de IA presenta PERF la transformación Panorámica NeRF que convierte imágenes individuales en escenas 3D explorables.

NeRF significa Neural Radiance Fields, una técnica de aprendizaje profundo para la reconstrucción de escenas en 3D y ...

Ciencia de Datos

El Desafío de Ver la Imagen Completa de la Inteligencia Artificial

Cada vez es más difícil tener conversaciones reflexivas sobre el cambiante (y rápidamente creciente) impacto de la IA...

Inteligencia Artificial

Conoce T2I-Adapter-SDXL Modelos de Control Pequeños y Eficientes.

Los T2I-Adapters son herramientas plug-and-play que mejoran los modelos de texto a imagen sin requerir un nuevo entre...

Inteligencia Artificial

Conoce a Vchitect un sistema de creación de video de gran escala y generalista de código abierto para aplicaciones de texto a video (T2V) e imagen a video (I2V).

El aumento exponencial en la popularidad de la Inteligencia Artificial (IA) en los últimos tiempos ha llevado a grand...