26/7/24

Codificado hojas de cálculo para que sean manejables por los modelos de lenguaje

 


Investigadores de Microsoft, encabezados por Yuzhang Tian, han publicado un artículo técnico en el que desarrollan métodos para poder codificar hojas de cálculo de modo que la información que contienen sea manejable por los grandes modelos de lenguaje (LLM). El método propuesto se denomina SpreadSheetLLM.

Como bien se sabe, una hoja de cálculo se define, sobre todo, por una matriz de dos dimensiones que organiza datos (números, textos, etc) en una rejilla cuadriculada de filas y columnas, con relaciones entre ellas determinadas por fórmulas o asignaciones. Se trata de aplicaciones muy flexibles en las que los datos pueden encontrarse en muchos y diversos formatos, algo que supone un desafío importante para los LLM a la hora de interpretar qué tipo de información es y cómo se relaciona con la otra información.

En concreto, son cuatro los problemas que las redes neuronales de lenguaje encuentran con las hojas de cálculo: primero, la ya citada de los formatos variables que contienen. Segundo, el que la estructura bidimensional de las hojas de cálculo casa mal con la secuenciación lineal de los datos en una red. Tercero, que la información contenida en una hoja de cálculo de tamaño medio sobrepasa la capacidad de tokens de una LLM habitual. Nótese que una hoja de 500 x 500 filas y columnas, nada extraordinario, contiene ya 250.000 casillas que pueden contener frases, ocupando en total muchos millones de tokens. Y, cuarto, que la maraña interna de conexiones entre las celdas de la hoja, que tiene características recursivas, es de difícil implementación en una red neuronal.

SpreadSheetLMM una un sistema de codificación llamado SheetCompressor que consta de tres módulos: uno de compresión de datos basada en anclajes estructurales, otro de traducción inversa de índices y, finalmente, un tercero de  agregación de datos en función del formato. Las pruebas realizadas señalan una mejora de hasta el 25% en el aprendizaje de GPT4 cuando las hojas de cálculo son utilizadas como fuente de entrada de información.

Los investigadores han observado que las grandes  hojas de cálculo contienen numerosas celdas homogéneas cercanas entre ellas, de modo que se tienen, dentro de la hoja, como islas de celdas relacionadas. Dentro de cada "isla", hay muchas relaciones pero cada "isla" tiene poco que ver con otras islas alejadas en la hoja. Por ello, han creado un algoritmo que  identifica las relaciones estructurales -filas y columnas heterogéneas y columnas heterogéneas cercanas - para distinguirlas de otros grupos relacionados más alejados que pueden ser borrados admitiendo que no tendrán que ver con el subconjunto que estábamos tratando. De este modo se logra crear un esqueleto simplificado de la hoja de cálculo.

Asimismo, para reducir el uso de tokens, se desestima la típica creación de un vector lineal con todos los datos de las filas y columnas para sustituirlo por una codificación JSON. Esta codificación crea un diccionario en el que celdas con información igual quedan cifradas por un único dato del diccionario. Esto me recuerda, un poco, a la codificación usada en un gráfico GIF.

Por último, el análisis de la realidad habitual señala que celdas cercanas contienen, en general, datos con formato similar lo que permite una adicional compresión y reducción de las variables necesarias.

Los experimentos realizados muestran que SheetCompressor logra reducir el uso de tokens en un 96%, un avance muy significativo.

Para facilitar la "comprensión" de los datos de la hoja, los investigadores proponen una nueva codificación basada en el sistema Markdown

La explicación completa y parte del desarrollo matemático inherente a este nuevo método pueden verse en el artículo completo, en este enlace.


 

0 comentarios :