> For the complete documentation index, see [llms.txt](https://weekly-essay.mikey.wang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weekly-essay.mikey.wang/es/2025/w45-thoughts-from-participating-in-a-data-compression-competition.md).

# W45-Reflexiones tras participar en un concurso de compresión de datos

Participé en el concurso de compresión de datos de una pequeña comunidad de grandes modelos y entregué mi solución en poco más de media jornada. Habrá que esperar a las demás entregas para saber a qué nivel está, pero la velocidad que permite programar con IA es realmente alta.

Esta vez usé Codemap de Windsurf y entendí el repositorio muy rápido. La mayoría de los productos de programación con IA se concentra en la salida e ignora que las personas leen más despacio y con más desorden. Cuando la generación se acerca al tiempo real, la demora en incorporar conocimiento se convierte en el nuevo cuello de botella. Herramientas como Codemap y Deepwiki refuerzan el lado de la entrada y ayudan al ingeniero a construir rápidamente un modelo mental.

La base teórica de la compresión de datos es la teoría de la información. La cantidad de información definida por Shannon mide la reducción de incertidumbre: cuanto mayor es la incertidumbre, mayor es la entropía. Solo lo que reduce de verdad la incertidumbre constituye carga informativa. Lo predecible y repetido es redundancia; la compresión busca reducirla y mejorar la eficiencia de la codificación.

Al recibir el problema, pensé en tres enfoques, correspondientes a tres niveles de compresión.

**El primero es la compresión semántica mediante resúmenes estructurados.** Consiste en analizar los datos de forma convencional y eliminar redundancias. Fue el enfoque de mi entrega, con estas estrategias principales:

1. Agregación de listas: agrupar listas largas de consumo, comportamiento, ubicación y otros datos por ventanas temporales o por tipo, conservando solo los indicadores centrales, como cantidad de pedidos, gasto medio por pedido o días de estancia.
2. Resumen semántico: extraer información de datos textuales —conversaciones, búsquedas, etc.— mediante expresiones regulares y patrones para generar pistas de alto valor como top\_issues y top\_keywords.
3. Limpieza unificada: usar herramientas comunes —safe\_json\_list, análisis de fechas y normalización de campos— para comprimir e interpretar datos sucios de distintas fuentes dentro de un mismo marco.

**El segundo es la compresión por codificación, con optimización al nivel de los símbolos.** Consiste en generar, mediante probabilidades estadísticas, correspondencias de vocabulario más eficientes, usando símbolos más cortos para el contenido frecuente, de forma parecida a la codificación de Huffman. El problema es que los datos comprimidos deben ser utilizados por un gran modelo de lenguaje. Si el modelo nunca ha visto ese sistema de símbolos, no lo entenderá. Incluso si se le proporcionan las reglas de codificación, probablemente no se reduzca el consumo de contexto: también se le estaría encargando al modelo el trabajo de traducción. Por eso, llevar a la práctica este enfoque requiere volver a entrenar un modelo específico, con un costo muy elevado.

**El tercero es la compresión desde la ingeniería, en la dirección de la ingeniería de contexto.** En producción, ahorrar espacio de contexto solo mediante compresión de datos es una estrategia; al situarla dentro de la ingeniería de contexto aparecen más estrategias eficaces. Hacer que el modelo escriba consultas, invoque herramientas como RAG y reciba las estadísticas obtenidas como entrada, junto con algoritmos de alta compresión, debería multiplicar el efecto final.
