3 puntos por GN⁺ 2025-10-21 | 1 comentarios | Compartir por WhatsApp
  • Modelos de lenguaje enmascarado como BERT y RoBERTa también pueden interpretarse como un concepto de modelo de difusión de texto.
  • A diferencia de los autoregresivos (por ejemplo, GPT), se demuestra la viabilidad de aplicar generación por bloques y una estrategia de restauración gradual.
  • Al entrenar ajustando la tasa de máscara etapa por etapa, se confirma experimentalmente que RoBERTa también puede generar texto natural.
  • Incluso sin cambiar la arquitectura existente, es posible lograr capacidad generativa solo modificando el objetivo de entrenamiento.
  • Al comparar con GPT-2, el modelo de difusión basado en RoBERTa también produce resultados de generación de texto coherente en un nivel determinado.

Resumen

Google DeepMind presentó Gemini Diffusion, que es un modelo de lenguaje basado en difusión que genera texto en bloques de una vez, a diferencia de la familia GPT. Este enfoque genera texto mediante la purificación gradual de ruido aleatorio. Al revisar el paper (Large Language Diffusion Models), se confirmó que la difusión de lenguaje discreto es una generalización del modelado de lenguaje enmascarado (MLM). Es decir, se exploró experimentalmente si esta idea también permitía generar texto con modelos de la familia BERT.

Nota: posteriormente, el paper DiffusionBERT valida estas ideas con más rigurosidad.

Breve historia de Transformer

El Transformer, propuesto inicialmente en 2017, tenía una arquitectura encoder-decoder. En 2018, se separaron encoder (BERT: bidireccional, centrado en restauración enmascarada) y decoder (GPT: autoregresivo, centrado en predicción secuencial), apareciendo familias de modelos especializadas.

  • Solo encoder (familia BERT)
    • Recibe el contexto completo y enmascara una parte con <MASK> para restaurarla con el resto
    • Tiene ventajas en tareas de representación de frase, clasificación, etc.
  • Solo decoder (familia GPT)
    • Predice el siguiente token según la secuencia dada
    • Destaca en generación, resumen, traducción, etc.

BERT se usó directamente en tareas de clasificación, pero luego la familia GPT amplió su alcance de uso gracias a la mejora de capacidades generativas.

Modelos de difusión de lenguaje discreto

Los modelos de difusión se popularizaron originalmente en generación de imágenes.
En imágenes:

  • Proceso directo (forward): se agrega ruido gaussiano progresivamente a una imagen limpia hasta alcanzar un estado de ruido puro.
  • Proceso inverso (backward): se repite el desruido con un modelo de deep learning para reconstruir el dato original.

Al aplicarlo al texto, el método más simple es el proceso de ruido basado en enmascarado.

  • Proceso directo (enmascarado)
    • En t=0 hay texto original; conforme avanzan los pasos, algunos tokens se reemplazan aleatoriamente con <MASK>
    • En el paso final, todo queda convertido en <MASK>
  • Proceso inverso (desruido)
    • El encoder Transformer aprende a reconstruir los tokens originales con una configuración de máscara dada
    • Con una tasa de máscara baja es más fácil y con tasa alta es más difícil reconstruir
    • Repitiendo de tasas altas a tasas bajas, puede generarse la secuencia completa

En este marco de difusión, el modelo aprende sumando la pérdida de desruido etapa por etapa de distintas tasas de máscara. El objetivo de reconstrucción enmascarada de BERT es, en esencia, parte del texto de difusión. Al combinar un schedule de tasa de máscara y desruido repetitivo, el objetivo de BERT puede extenderse a un procedimiento de generación de lenguaje natural.

Experimento RoBERTa Diffusion

RoBERTa, presentado en 2019, se caracteriza por expansión de hiperparámetros y datos respecto de BERT y un objetivo de entrenamiento más simple (solo MLM).
En el experimento se utilizaron los pesos base de RoBERTa, tokenizer y Trainer de las librerías HuggingFace transformers y datasets.
Con el dataset WikiText se realizó fine-tuning mediante el siguiente proceso:

  • Se muestrea por batch uno de 10 pasos del schedule de difusión (mask_probs: 1.0~0.1) para aplicar el enmascarado.
  • Con un diffusion_collator personalizado, se selecciona luego la probabilidad de máscara y se aplica <MASK> a cada token de forma probabilística.
  • Para mantener el contexto del prompt, siempre se conservan los primeros 16 tokens.

Enmascaramiento de datos (collator personalizado):

  • Se hace padding de cada lote de tokens por ejemplo y luego se elige de forma aleatoria la probabilidad de enmascarado
  • Se aplica <MASK> de forma probabilística al resto de tokens, excluyendo los primeros 16
  • Se devuelven el lote enmascarado y el set de etiquetas correctas

Generación (inferencia):

  • Secuencia de entrada de longitud 256: 16 primeros tokens como prompt y el resto en <MASK>
  • En cada etapa, se muestrea un token predicho por el modelo para rellenar y luego se vuelve a enmascarar un cierto porcentaje
  • Se repite reduciendo gradualmente la tasa de máscara, y al final toda la secuencia queda restaurada

Ejemplos de generación:

  • Se observa texto bastante coherente, que incluye un prompt y una continuación natural
  • Algunas rarezas se deben al formato de preprocesamiento de los datos de WikiText (por ejemplo, la separación de guiones @-@)

Comparación con GPT-2

  • Aunque GPT-2 es algo más rápido y consistente, RoBERTa Diffusion también muestra un rendimiento superior al esperado (con alta posibilidad de mejoras incrementales)
  • Con nuevos métodos AR-Diffusion, Skip-Step Diffusion y optimizaciones, se puede mejorar calidad y velocidad

Conclusión

  • Modelos de lenguaje enmascarado diseñados como RoBERTa, si se entrena ajustando la tasa de máscara, también pueden convertirse en un motor de generación de lenguaje natural.
  • Con solo el aprendizaje de deterioro/restauración progresiva de texto usando tokens <MASK>, se confirma la posibilidad de convertirlo en un modelo totalmente generativo.
  • Sin cambiar la arquitectura, se puede obtener capacidad generativa modificando únicamente el objetivo de entrenamiento.
  • En resumen, los modelos de la familia BERT también coinciden esencialmente con un modelo de difusión de texto

1 comentarios

 
GN⁺ 2025-10-21
Comentarios en Hacker News
  • Como referencia de que, cuando BERT apareció por primera vez, todo el mundo intentó usarlo para generar texto pero en general no funcionó muy bien, está este paper. Savinov y otros en DeepMind mostraron que, si durante el entrenamiento se aplican solo dos pasos y se aleatoriza la probabilidad de enmascarado, puede funcionar bastante decentemente

    • La semana pasada intenté varias veces hacer que BERT conversara, y gracias a este post aprendí sobre esto. Todavía tengo más ideas que quiero probar, así que sigo experimentando y divirtiéndome blog relacionado

    • Yo era parte del gran grupo de gente que pensaba que BERT solo podía usarse como un encoder puro, por ejemplo para medir similitud semántica y para clasificación, no para generación de texto

  • Según recuerdo, este vínculo se señaló por primera vez en este paper de 2021 (página 5). En difusión de texto intentaron contaminar palabras con otras palabras semánticamente parecidas, pero resultó más fácil hacer que el modelo encontrara las palabras enmascaradas. La historia de este enfoque se remonta mucho más atrás, hasta este paper, donde ya se había hecho un MLM generativo sin explicarlo con matemáticas de difusión

    • Es incluso más antiguo. En 2014, Li Yao y otros mostraron en este paper la equivalencia entre los modelos autorregresivos (predicción del siguiente token) y las redes estocásticas generativas (autoencoders de denoising, precursores de los modelos de difusión). Argumentaban que el muestreo paralelo aproxima bien al muestreo secuencial, y en mi investigación de 2016, Counterpoint by Convolution, link, también apliqué este método y expliqué que incluso daba mejor rendimiento. Por desgracia, como era un paper aplicado, no recibió muchas citas desde el mundo de difusión. Creo que debe haber raíces todavía más antiguas

    • Yo también recuerdo ese paper como la primera referencia que lo trató formalmente (después de ver BERT, es natural que a investigadores de NLP se les ocurriera la idea de difusión). Aquí hay una recopilación de referencias tempranas sobre difusión de texto que reuní hace 3 años

    • Por cierto, el paper relacionado también puede verse aquí

  • Los enfoques basados en difusión se sienten más parecidos a lo que ocurre en el cerebro animal. Cuando hablo, no siento que vaya produciendo palabras una por una a partir de la palabra anterior; más bien siento que primero aparece una idea general borrosa en mi cabeza y después la organizo en lenguaje

    • En realidad, los LLM autorregresivos tampoco son tan simples como solo predecir la siguiente palabra. Aunque produzcan un token por vez en un solo forward pass, en el espacio latente sí aparecen de forma clara la planificación a largo plazo y el razonamiento. Como nosotros también formamos una imagen general en la cabeza y luego hablamos de manera secuencial, no diría que la difusión se parece más a nosotros por eso

    • Personalmente, me gustó este post de blog que describe la difusión como una especie de "autorregresión espectral". La difusión tiende a predecir primero características de baja frecuencia y después las de alta frecuencia

    • Cada vez que edito un mensaje en Slack unas 5 veces, siento que yo mismo soy un modelo de difusión

    • Cuando hablamos o escribimos, en la práctica sí soltamos las palabras secuencialmente. Pero antes de empezar una oración ya solemos tener más o menos claro el punto general en la cabeza. Es parecido a cómo un LLM primero planifica la dirección general en el espacio latente antes de emitir tokens

    • Los estudios de interpretabilidad muestran que los LLM autorregresivos también planifican internamente de antemano lo que van a decir

  • Personalmente, me parece más natural permitir ediciones estilo Levenshtein con inserciones y eliminaciones que limitarse a enmascarar y rellenar. Por ejemplo, si en la etapa final quieres reemplazar una palabra por un sinónimo más largo, en esta estructura de difusión eso no es fácil porque no puedes desplazar el texto hacia la derecha

    • Ha habido avances en eso. En trabajos como DreamOn están apareciendo intentos de añadir tokens de expand/delete
  • Este tipo de experimentos simples es interesante porque permite captar rápido el principio. Lo frustrante de los modelos difusores de texto es que tienen que tratar los tokens como valores discretos y no continuos. En imágenes, como los píxeles son continuos, se les puede añadir ruido de forma natural; en texto, los tokens no lo son. En general termina manejándose como reemplazo completo, y aunque existen varios enfoques como añadir ruido en el espacio de embeddings o aprender embeddings directamente, todos son más complejos que la difusión en imágenes

  • Personalmente, tengo más expectativas en enfoques como este paper. Combina difusión latente continua con generación de texto basada en transformers autorregresivos. Se pueden entrenar el autoencoder y el transformer al mismo tiempo (o por separado)

  • Cuando me topé por primera vez con modelos de difusión para texto, pensé: “¿esto no es simplemente MLM?”. Lo que me llamó la atención fue MaskGIT. Para que realmente merezca llamarse difusión, supongo que el modelo tendría que entrenarse para reemplazar tokens incorrectos por tokens correctos, porque la fortaleza de la difusión continua es la resistencia al ruido. Pero en la práctica la idea de generar tokens incorrectos no parece tan fácil de implementar, así que da la impresión de que todavía no se ha intentado mucho

    • Yo probé MLM a nivel de bytes UTF8 e intenté hacer un modelo de traducción no autorregresivo. Usé curriculum learning y corrupción aleatoria progresiva. Si lo que buscas es simplemente añadir ruido, basta con reemplazar índices aleatorios por valores aleatorios de bytes. Por ejemplo, se le daba como entrada este patrón

      [Source UTF8 bytes] => [Corrupted Target UTF8 bytes]
      

      Evaluando toda la secuencia objetivo de forma iterativa, se evita que aparezcan cambios discontinuos en el dominio de entrenamiento a medida que sube el nivel de dificultad. Al final dejé de preocuparme por la terminología o la clasificación; me importaba menos si “esto es difusión” y más si “realmente funciona”

  • También me da curiosidad cómo sería la comparación con electra

    • También valdría la pena compararlo con deberta. En cualquier caso, es muy interesante
  • Quería experimentar con afinar un modelo de autocompletado de código inline para ver si se podía lograr un rendimiento parecido al de cursor (aunque en la práctica sería difícil, sonaría divertido). Pero todavía ni siquiera hay un modelo abierto de difusión suficientemente utilizable como base, así que tengo expectativas

  • Lo atractivo de los modelos de difusión de imágenes era que generan imágenes a partir de ruido aleatorio. Entonces me pregunto por qué los modelos de difusión de texto empiezan con tokens vacíos totalmente enmascarados en vez de con tokens aleatorios

    • Depende de la tarea que quieras. Si solo quieres completar texto, le das la oración de entrada sin enmascarar y haces que el modelo rellene los tokens enmascarados que siguen. Si quieres edición de código, por ejemplo, puedes enmascarar solo la parte que quieres editar y hacer que la complete secuencialmente. La fortaleza de los modelos de difusión de texto está en poder realizar ediciones prácticas como la edición de código (los LLM autorregresivos necesitan un sistema aparte que edite a partir de instrucciones). Si entrenas un modelo con un head de edición de código realmente adecuado, podrías mejorar mucho la velocidad y eficiencia de muchas tareas de programación. Creo que en el futuro este tipo de función se integrará de forma natural en cosas como GPT Codex

    • No todo el mundo usa únicamente el método de empezar con tokens vacíos. También hay varios intentos que empiezan con tokens aleatorios, otros con máscaras y otros con vectores de embedding