Visibilidad IA

Arquitectura BART: qué es, cómo funciona, Denoising Autoencoding, Text Infilling y ejemplos con Python

La Arquitectura BART (Bidirectional and Auto-Regressive Transformers) es una arquitectura de aprendizaje profundo basada en Transformers Encoder–Decoder, desarrollada para aprender representaciones lingüísticas mediante reconstrucción de texto corrupto.

BART combina un Encoder bidireccional, capaz de procesar las posiciones anteriores y posteriores de la entrada, con un Decoder autorregresivo, que genera una secuencia de salida condicionada tanto por la entrada como por los tokens que ya ha producido.

Su característica principal es el preentrenamiento mediante Denoising Autoencoding, una estrategia de aprendizaje autosupervisado que consiste en modificar artificialmente un texto y entrenar el modelo para reconstruir su versión original.

BART fue presentado por Mike Lewis y colaboradores en BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension.

La investigación apareció como prepublicación en octubre de 2019 y se publicó en la conferencia ACL de julio de 2020.

El modelo surgió en una etapa de intensa evolución de los Transformers, después de desarrollos importantes como BERT, GPT y RoBERTa.

BERT había demostrado la utilidad de las representaciones bidireccionales para comprensión del lenguaje.

Los modelos GPT habían mostrado el potencial de la predicción autorregresiva de texto.

BART combinó esos dos principios dentro de una arquitectura Encoder–Decoder que puede adaptarse especialmente bien a tareas de generación condicionada.

Entre sus aplicaciones más conocidas se encuentran:

  • Resumen automático de documentos.
  • Generación abstractiva de resúmenes.
  • Preguntas y respuestas.
  • Generación de respuestas.
  • Clasificación de textos.
  • Traducción mediante adaptaciones apropiadas.
  • Reconstrucción y transformación de documentos.
  • Procesamiento de contenido empresarial.

En esta entrada estudiaremos su arquitectura interna, funciones de pérdida, técnicas de corrupción de texto, diferencias con BERT, GPT y T5, aplicaciones y ejemplos prácticos utilizando Python, NumPy, PyTorch y Hugging Face Transformers.


1. ¿Qué significa BART?

BART significa:

Bidirectional and Auto-Regressive Transformers.

En español puede entenderse como:

Transformers Bidireccionales y Autorregresivos.

Su nombre representa los dos componentes principales de la arquitectura.

Bidirectional: el Encoder procesa la secuencia utilizando información disponible a ambos lados de cada token.

Auto-Regressive: el Decoder genera tokens de manera secuencial, condicionado por los tokens anteriores.

¿BART es un Transformer?

Sí.

¿Es Encoder-Only?

No.

¿Es Decoder-Only?

No.

¿Qué arquitectura utiliza?

Encoder–Decoder.


2. ¿Por qué se desarrolló BART?

Los modelos preentrenados anteriores habían demostrado resultados importantes en diferentes tipos de tareas.

Sin embargo, no todos los objetivos de preentrenamiento eran igualmente apropiados para generación de secuencias completas.

BART propuso entrenar un modelo mediante la reconstrucción del texto original después de aplicar diferentes perturbaciones.

¿Qué aporta este enfoque?

El modelo aprende a utilizar información contextual para recuperar contenido, corregir alteraciones y generar secuencias coherentes.

¿Garantiza comprensión semántica perfecta?

No.

El modelo aprende representaciones estadísticas mediante optimización.

¿Por qué resulta interesante?

Porque el mismo modelo puede adaptarse a generación y a diversas tareas de comprensión.


3. ¿Qué es Denoising Autoencoding?

Denoising Autoencoding es un procedimiento mediante el cual una red aprende a reconstruir datos originales a partir de versiones alteradas.

Para texto:

  1. Seleccionamos una secuencia original.
  2. Aplicamos una función de corrupción.
  3. Introducimos el texto modificado en el Encoder.
  4. El Decoder produce una reconstrucción.
  5. Calculamos una pérdida comparando la reconstrucción con el original.
  6. Actualizamos los parámetros.

Ejemplo

Original:

«La empresa desarrolla soluciones de inteligencia artificial».

Corrupto:

«La empresa desarrolla <mask> artificial».

Objetivo:

«La empresa desarrolla soluciones de inteligencia artificial».

¿Qué debe aprender el modelo?

A reconstruir el contenido completo, no únicamente a clasificar la posición enmascarada.


4. ¿Qué es una función de corrupción?

Una Noising Function es una transformación que modifica artificialmente los datos.

En BART puede:

  • Sustituir tokens.
  • Eliminar tokens.
  • Ocultar spans.
  • Cambiar el orden de las oraciones.
  • Rotar la secuencia de un documento.

¿Por qué utilizar varias transformaciones?

Porque enseñan al modelo a recuperar diferentes tipos de información.

¿Todas se usan obligatoriamente en un mismo paso?

No.

Depende de la receta de preentrenamiento.


5. Los cinco mecanismos de corrupción estudiados en BART

La investigación original comparó cinco transformaciones principales.

TransformaciónOperación
Token MaskingSustituir tokens seleccionados por un marcador
Token DeletionEliminar tokens sin dejar un marcador
Text InfillingReemplazar fragmentos de longitud variable por un marcador
Sentence PermutationAlterar aleatoriamente el orden de las oraciones
Document RotationElegir un punto de inicio diferente mediante rotación

Estas transformaciones no producen necesariamente entradas con la misma longitud que el texto original.


6. ¿Qué es Token Masking?

Token Masking sustituye determinados tokens por un marcador especial.

Ejemplo

Original:

«El cliente solicita una factura».

Corrupto:

«El cliente solicita <mask> factura».

¿Qué información conserva?

Las posiciones de los tokens sustituidos.

¿Qué debe reconstruirse?

La secuencia original completa.

¿Es idéntico a BERT MLM?

No.

En BERT, el objetivo MLM predice principalmente los tokens seleccionados mediante una cabeza de predicción.

En BART, el Decoder reconstruye una secuencia de texto.


7. ¿Qué es Token Deletion?

Token Deletion elimina determinados tokens completamente, sin sustituirlos por un marcador.

Ejemplo

Original:

«El sistema automatiza las tareas repetitivas».

Corrupto:

«El sistema las tareas repetitivas».

¿Cuál es la dificultad?

El modelo debe inferir tanto el contenido faltante como la ubicación aproximada de la información eliminada.

¿Por qué es diferente de Token Masking?

Porque no existe una marca explícita en la posición del token borrado.


8. ¿Qué es Text Infilling?

Text Infilling selecciona fragmentos contiguos de longitud variable y sustituye cada fragmento por un único token de máscara.

Ejemplo

Original:

«La compañía utiliza sistemas de inteligencia artificial para automatizar documentos».

Corrupto:

«La compañía utiliza <mask> para automatizar documentos».

El fragmento eliminado es:

«sistemas de inteligencia artificial».

¿Qué debe aprender el modelo?

A reconstruir el contenido y la longitud del fragmento.

¿Qué diferencia existe frente a enmascarar cada token?

Un solo marcador puede representar un número variable de tokens eliminados.


9. ¿Cómo se determina la longitud de los spans?

En los experimentos originales de Text Infilling, las longitudes se muestrean utilizando una distribución de Poisson con:

λ = 3

¿Significa que cada Span contiene tres tokens?

No.

Tres es el valor esperado de la distribución.

¿Pueden existir spans de longitud cero?

Sí.

La investigación incluyó esa posibilidad, equivalente a insertar un marcador de máscara sin eliminar contenido.

¿Por qué puede ser útil?

Porque también enseña al modelo a gestionar inserciones espurias.


10. Ejemplo 1 — Simular longitudes de spans con NumPy

import numpy as np
rng = np.random.default_rng(42)
span_lengths = rng.poisson(
lam=3,
size=10000
)
print(
"Longitud media:",
span_lengths.mean()
)
print(
"Spans de longitud cero:",
(span_lengths == 0).sum()
)

¿Qué demuestra?

Las longitudes cambian aleatoriamente alrededor de un valor esperado.

¿Implementa este código el preprocesamiento completo de BART?

No.

Solamente muestra la distribución de longitudes.


11. ¿Qué es Sentence Permutation?

Sentence Permutation altera el orden de las oraciones de un documento.

Ejemplo

Original:

«La empresa lanzó un producto. El producto obtuvo nuevos clientes. Las ventas aumentaron».

Corrupto:

«Las ventas aumentaron. La empresa lanzó un producto. El producto obtuvo nuevos clientes».

¿Qué debe aprender BART?

A reconstruir el orden original.

¿Qué relaciones puede necesitar?

Coherencia narrativa, continuidad temática y relaciones temporales.

¿La tarea garantiza que siempre pueda recuperarse el orden?

No.

Algunos textos pueden admitir varios órdenes plausibles.


12. Ejemplo 2 — Permutar oraciones

import numpy as np
sentences = [
"La empresa lanzó un producto.",
"El producto obtuvo nuevos clientes.",
"Las ventas aumentaron."
]
rng = np.random.default_rng(7)
indices = rng.permutation(
len(sentences)
)
shuffled = [
sentences[i]
for i in indices
]
print("Original:")
print(" ".join(sentences))
print("Corrupto:")
print(" ".join(shuffled))

¿Qué demuestra?

Podemos reorganizar las oraciones para producir un ejemplo de texto corrupto.

¿Qué debemos conservar durante entrenamiento?

La secuencia original como objetivo.


13. ¿Qué es Document Rotation?

Document Rotation selecciona una posición del documento y rota la secuencia para comenzar en ese punto.

Ejemplo

Original:

A B C D E

Rotado:

C D E A B

¿Cuál es el objetivo?

Aprender a recuperar la estructura original del documento.

¿Es lo mismo que Sentence Permutation?

No.

Sentence Permutation reordena oraciones.

Document Rotation desplaza cíclicamente el punto inicial de la secuencia.


14. Ejemplo 3 — Rotación de tokens

tokens = [
"A", "B", "C", "D", "E"
]
offset = 2
rotated = (
tokens[offset:]
+ tokens[:offset]
)
print(rotated)

Resultado:

['C', 'D', 'E', 'A', 'B']

15. ¿Qué combinación de corrupción obtuvo mejores resultados?

Los experimentos del artículo original encontraron especialmente efectiva la combinación de:

Text Infilling + Sentence Permutation.

¿Por qué puede ser útil?

Text Infilling obliga a reconstruir fragmentos de contenido.

Sentence Permutation introduce un problema de organización del documento.

¿Significa que las demás transformaciones son inútiles?

No.

Su utilidad puede depender de la tarea y de la receta de entrenamiento.


16. ¿Cómo se entrena BART?

El entrenamiento utiliza pares:

Entrada: texto corrupto.

Destino: texto original.

El Encoder procesa la versión corrupta.

El Decoder genera la reconstrucción utilizando Teacher Forcing durante entrenamiento.

La pérdida se calcula comparando las predicciones con los tokens originales.

¿Es aprendizaje supervisado convencional?

El procedimiento de preentrenamiento es autosupervisado porque los objetivos se obtienen del propio corpus.

¿Necesitamos anotadores para generar cada ejemplo?

No.

La función de corrupción crea los pares de entrenamiento.


17. Fórmula de Denoising Sequence-to-Sequence

Sea:

x = secuencia original

x̃ = C(x) = versión corrupta

La pérdida de reconstrucción puede escribirse como:

L = −Σₜ log Pθ(xₜ | x<t, x̃)

Donde:

  • C es la función de corrupción.
  • θ son los parámetros del modelo.
  • x<t son los tokens originales previos del destino.
  • x̃ es la información procesada por el Encoder.

¿Qué aprende el modelo?

A asignar mayor probabilidad al texto original condicionado por su versión corrupta.


18. ¿Qué diferencia existe entre reconstruir tokens y reconstruir texto completo?

En una tarea de predicción de posiciones enmascaradas, la pérdida puede concentrarse en las posiciones seleccionadas.

En el preentrenamiento Seq2Seq de BART, el Decoder aprende a reconstruir la secuencia original.

¿Por qué importa?

Porque el objetivo entrena explícitamente la generación condicional.

¿Es el mismo objetivo de T5?

No exactamente.

T5 suele generar principalmente los fragmentos eliminados, organizados mediante Sentinel Tokens.

BART reconstruye el texto original completo.


19. ¿Qué es el Encoder bidireccional?

El Encoder de BART utiliza Transformer Self-Attention que puede consultar diferentes posiciones de la entrada.

Ejemplo

Entrada:

«La empresa necesita <mask> documentos».

El Encoder puede incorporar información anterior y posterior al marcador.

¿Es exactamente una instancia de BERT?

No.

Comparte el principio de atención bidireccional, pero sus parámetros, entrenamiento y arquitectura específica no son idénticos.


20. ¿Qué es el Decoder autorregresivo?

El Decoder produce la secuencia de destino de izquierda a derecha.

¿Qué información utiliza?

  • Tokens anteriores del destino.
  • Representaciones del Encoder.

¿Qué impide consultar posiciones futuras?

Una máscara causal.

¿Por qué es importante?

Porque durante generación real todavía no existen los tokens futuros.


21. ¿Qué es Cross-Attention en BART?

Cross-Attention conecta las representaciones del Decoder con la salida del Encoder.

Query

Proviene del Decoder.

Key y Value

Provienen del Encoder.

¿Qué aporta?

Permite que el texto generado esté condicionado por la entrada.


22. Ejemplo 4 — Cross-Attention con PyTorch

import torch
from torch import nn
attention = nn.MultiheadAttention(
embed_dim=128,
num_heads=4,
batch_first=True
)
decoder_states = torch.randn(
2, 8, 128
)
encoder_states = torch.randn(
2, 16, 128
)
output, weights = attention(
decoder_states,
encoder_states,
encoder_states,
need_weights=True,
average_attn_weights=False
)
print("Output:", output.shape)
print("Weights:", weights.shape)

Resultado esperado:

Output: torch.Size([2, 8, 128])
Weights: torch.Size([2, 4, 8, 16])

¿Qué demuestra?

Las consultas del Decoder pueden acceder a una secuencia fuente más larga.

Este código es una demostración genérica de Cross-Attention.


23. ¿Cómo representa BART la posición?

Los checkpoints BART clásicos utilizan embeddings posicionales aprendidos.

¿Qué significa?

Las posiciones se representan mediante vectores cuyos parámetros se aprenden durante entrenamiento.

¿Es lo mismo que RoPE?

No.

RoPE introduce información posicional mediante rotaciones de Query y Key.

¿Todos los modelos basados en BART comparten el mismo límite?

No necesariamente.

Debe revisarse la configuración del checkpoint.


24. ¿Qué tokenizador utiliza BART?

Los checkpoints BART originales utilizan tokenización basada en Byte-Level BPE, relacionada con la utilizada en RoBERTa.

¿Qué ventaja aporta?

Permite representar texto mediante unidades de un vocabulario subpalabra.

¿BART utiliza SentencePiece como T5 original?

No en los checkpoints BART clásicos.

¿BART multilingüe puede utilizar otras configuraciones?

Sí, dependiendo de la variante.


25. ¿Cuáles son los tokens especiales de BART?

En implementaciones clásicas aparecen tokens como:

  • <s>: comienzo.
  • </s>: final o separación.
  • <pad>: relleno.
  • <unk>: desconocido.
  • <mask>: marcador de máscara.

¿Utiliza Sentinel Tokens como <extra_id_0>?

No en el esquema original de BART.

¿Por qué importa?

Porque no debemos transferir directamente el formato de Span Corruption de T5 a BART.


26. Ejemplo 5 — Inspeccionar el tokenizador BART

from transformers import AutoTokenizer
checkpoint = "facebook/bart-base"
tokenizer = AutoTokenizer.from_pretrained(
checkpoint
)
text = (
"Artificial intelligence can "
"summarize documents."
)
tokens = tokenizer.tokenize(text)
print("Tokens:", tokens)
print("Mask:", tokenizer.mask_token)
print("EOS:", tokenizer.eos_token)
print("PAD:", tokenizer.pad_token)

¿Qué demuestra?

Podemos inspeccionar la tokenización y los marcadores especiales.


27. ¿Qué tamaños existen de BART?

Dos configuraciones originales conocidas son:

CaracterísticaBART-BaseBART-Large
Capas Encoder612
Capas Decoder612
Dimensión oculta7681.024
Cabezas por capa1216
Parámetros aproximados140 M400 M

Las cifras son aproximadas y pueden diferir ligeramente según cómo se contabilicen los parámetros.

¿Es siempre mejor BART-Large?

No en todas las aplicaciones.

BART-Large necesita más recursos y su ventaja real depende de la tarea.


28. ¿Qué es BART-Base?

Es una configuración más pequeña que BART-Large.

¿Para qué es útil?

  • Experimentos.
  • Fine-Tuning.
  • Estudio de arquitectura.
  • Procesamiento de textos con menos recursos.

¿Produce automáticamente buenos resúmenes?

No necesariamente.

Un checkpoint base de preentrenamiento no equivale a uno ajustado específicamente para resumen.


29. ¿Qué es BART-Large-CNN?

facebook/bart-large-cnn es un checkpoint BART-Large ajustado para resumen automático sobre CNN/DailyMail.

¿Por qué es importante?

Porque puede utilizarse directamente para experimentos de resumen en inglés.

¿Está entrenado principalmente para español?

No.

¿Es adecuado para todas las clases de documentos?

No.

Debe evaluarse especialmente en contratos, documentos técnicos y textos empresariales.


30. ¿Cómo cargar BART con Hugging Face?

Podemos utilizar:

  • AutoTokenizer.
  • AutoModelForSeq2SeqLM.

Estas interfaces permiten cargar un tokenizer compatible y un modelo de generación Encoder–Decoder.

¿Por qué utilizar AutoModelForSeq2SeqLM?

Porque BART es un modelo de generación condicional.

¿Debemos utilizar AutoModelForCausalLM?

No para la forma Encoder–Decoder habitual de BART.


31. Ejemplo 6 — Cargar BART preentrenado

import torch
from transformers import (
AutoTokenizer,
AutoModelForSeq2SeqLM
)
checkpoint = "facebook/bart-base"
tokenizer = AutoTokenizer.from_pretrained(
checkpoint
)
model = AutoModelForSeq2SeqLM.from_pretrained(
checkpoint
)
model.eval()
parameters = sum(
p.numel()
for p in model.parameters()
)
print(
f"Parámetros: {parameters/1e6:.1f} millones"
)

¿Qué demuestra?

Podemos cargar un modelo BART Encoder–Decoder.

¿Requiere conexión a Internet?

La primera ejecución normalmente descarga los archivos del checkpoint.


32. Ejemplo 7 — Inspeccionar su configuración

print(
"Encoder layers:",
model.config.encoder_layers
)
print(
"Decoder layers:",
model.config.decoder_layers
)
print(
"Hidden size:",
model.config.d_model
)
print(
"Encoder heads:",
model.config.encoder_attention_heads
)
print(
"Decoder heads:",
model.config.decoder_attention_heads
)

¿Qué demuestra?

Podemos verificar la estructura de un checkpoint antes de utilizarlo.


33. ¿Cómo ejecutar una reconstrucción de texto?

BART puede utilizarse para estudiar la generación condicionada a una entrada que contiene <mask>.

¿Qué debemos tener presente?

Los resultados dependen del checkpoint y del procedimiento de generación.

¿Equivale a ejecutar todo el preentrenamiento original?

No.

Es un experimento de inferencia.


34. Ejemplo 8 — Reconstrucción con BART

import torch
text = (
"The company developed <mask> "
"for document processing."
)
inputs = tokenizer(
text,
return_tensors="pt"
)
with torch.inference_mode():
generated = model.generate(
**inputs,
max_new_tokens=45,
num_beams=4,
do_sample=False
)
print(
tokenizer.decode(
generated[0],
skip_special_tokens=True
)
)

¿Qué demuestra?

Podemos probar la reconstrucción de una entrada con un fragmento enmascarado.

¿Existe una única reconstrucción correcta?

No necesariamente.

El modelo puede producir varias continuaciones plausibles.


35. ¿Cómo calcular la pérdida de reconstrucción?

En Hugging Face podemos proporcionar la secuencia objetivo mediante labels.

¿Qué hará el modelo?

Calcular logits del destino y una pérdida de Cross-Entropy.

¿Cómo se gestionan los Decoder Input IDs?

La implementación puede prepararlos a partir de las etiquetas mediante el desplazamiento correspondiente.

¿Debemos desplazarlos manualmente y volver a pasar labels?

No sin entender la interfaz, porque podría producirse un desplazamiento duplicado.


36. Ejemplo 9 — Reconstrucción supervisada con pérdida

source = (
"The <mask> approved the request."
)
target = (
"The manager approved the request."
)
inputs = tokenizer(
source,
return_tensors="pt"
)
labels = tokenizer(
text_target=target,
return_tensors="pt"
)["input_ids"]
outputs = model(
**inputs,
labels=labels
)
print(
"Loss:",
outputs.loss.item()
)
print(
"Logits:",
outputs.logits.shape
)

¿Qué demuestra?

Podemos calcular el objetivo de reconstrucción en un modelo Seq2Seq.

¿Los ejemplos anteriores entrenan BART?

No.

El cálculo de una pérdida no modifica los parámetros hasta ejecutar Backpropagation y un paso del optimizador.


37. ¿Qué es Fine-Tuning de BART?

Fine-Tuning es adaptar un checkpoint preentrenado a una nueva tarea.

Ejemplo

Queremos resumir informes de empresas.

Necesitamos pares:

  • Documento.
  • Resumen de referencia.

¿Qué aprende BART?

A generar un resumen condicionado por el documento de entrada.

¿Por qué resulta útil el preentrenamiento?

Porque no es necesario aprender todas las representaciones lingüísticas desde cero.


38. ¿Qué es el resumen abstractivo?

El Resumen Abstractivo (Abstractive Summarization) es una técnica que puede generar nuevas formulaciones del contenido original.

¿En qué se diferencia del resumen extractivo?

El resumen extractivo selecciona fragmentos existentes.

El abstractivo puede redactar frases nuevas.

¿Qué ventaja aporta?

Puede producir textos más compactos y naturales.

¿Qué riesgo introduce?

Puede alterar números, relaciones o hechos presentes en el documento.


39. Ejemplo 10 — Resumir con BART-Large-CNN

import torch
from transformers import (
AutoTokenizer,
AutoModelForSeq2SeqLM
)
checkpoint = "facebook/bart-large-cnn"
summary_tokenizer = AutoTokenizer.from_pretrained(
checkpoint
)
summary_model = AutoModelForSeq2SeqLM.from_pretrained(
checkpoint
)
summary_model.eval()
article = (
"A software company introduced a new "
"document automation platform. "
"The platform classifies incoming invoices, "
"extracts important information, and "
"routes documents to the correct teams. "
"The company says this reduces repetitive "
"administrative work. "
"The system will first be deployed "
"in a pilot program with selected customers."
)
inputs = summary_tokenizer(
article,
return_tensors="pt",
truncation=True,
max_length=1024
)
with torch.inference_mode():
generated = summary_model.generate(
**inputs,
max_new_tokens=70,
num_beams=4,
do_sample=False
)
summary = summary_tokenizer.decode(
generated[0],
skip_special_tokens=True
)
print(summary)

¿Qué demuestra?

Podemos generar un resumen con un checkpoint ajustado específicamente para esa tarea.

¿El resumen es necesariamente fiel?

No.

Debemos contrastar los hechos, cantidades y nombres con el texto original.


40. ¿Qué diferencia existe entre BART-Base y BART-Large-CNN?

BART-Base es un checkpoint general de preentrenamiento.

BART-Large-CNN está adaptado específicamente para resumen.

¿Por qué importa?

Porque una tarea concreta puede requerir Fine-Tuning.

¿El tamaño explica toda la diferencia?

No.

También cambia el entrenamiento.


41. ¿Cómo preparar un dataset de resumen?

Un dataset puede contener:

documentsummary
Texto de un informe comercialResumen de referencia
Texto de una noticiaSíntesis de la noticia
Documento de soporteResumen de incidencia

¿Qué criterios debemos aplicar?

  • Separación Train/Validation/Test.
  • Referencias correctas.
  • Ausencia de duplicados perjudiciales.
  • Calidad de las etiquetas.
  • Cobertura del dominio.
  • Control de longitud.

42. ¿Qué es Teacher Forcing?

Teacher Forcing consiste en proporcionar los tokens correctos previos de la secuencia destino durante entrenamiento.

¿Qué ventaja tiene?

Permite calcular las pérdidas de múltiples posiciones del destino en una pasada.

¿Qué ocurre en inferencia?

El Decoder utiliza los tokens que se han generado previamente.

¿Existe una diferencia entre entrenamiento e inferencia?

Sí.


43. ¿Cómo preparar los objetivos en Hugging Face?

Podemos tokenizar los textos de destino mediante:

text_target=...

¿Cómo se maneja el padding?

Las posiciones PAD de labels que no deben contribuir a la pérdida pueden sustituirse por -100.

¿Por qué?

Porque PyTorch puede ignorar esas posiciones al calcular Cross-Entropy.


44. Ejemplo 11 — Preparar un lote para Fine-Tuning

from transformers import (
AutoTokenizer,
DataCollatorForSeq2Seq
)
tokenizer = AutoTokenizer.from_pretrained(
"facebook/bart-base"
)
sources = [
"The company launched a new platform.",
"The service processed customer invoices."
]
targets = [
"A platform was launched.",
"Invoices were processed."
]
examples = []
for source, target in zip(sources, targets):
encoded = tokenizer(
source,
truncation=True,
max_length=128
)
encoded["labels"] = tokenizer(
text_target=target,
truncation=True,
max_length=64
)["input_ids"]
examples.append(encoded)
collator = DataCollatorForSeq2Seq(
tokenizer=tokenizer,
label_pad_token_id=-100
)
batch = collator(examples)
print(batch["input_ids"].shape)
print(batch["labels"].shape)

¿Qué demuestra?

La preparación de lotes Seq2Seq con diferentes longitudes de fuente y destino.


45. Ejemplo 12 — Un paso de Fine-Tuning

import torch
from transformers import (
AutoModelForSeq2SeqLM
)
model = AutoModelForSeq2SeqLM.from_pretrained(
"facebook/bart-base"
)
optimizer = torch.optim.AdamW(
model.parameters(),
lr=3e-5
)
model.train()
optimizer.zero_grad()
outputs = model(
input_ids=batch["input_ids"],
attention_mask=batch["attention_mask"],
labels=batch["labels"]
)
loss = outputs.loss
loss.backward()
torch.nn.utils.clip_grad_norm_(
model.parameters(),
max_norm=1.0
)
optimizer.step()
print(
"Loss:",
float(loss.detach())
)

¿Qué demuestra?

Podemos adaptar BART a una tarea de generación condicionada.

¿Es suficiente un solo paso?

No.

Es necesario un entrenamiento completo y una evaluación independiente.


46. ¿Cómo realizar inferencia después de Fine-Tuning?

Después de entrenar, podemos utilizar model.generate.

Procedimiento

  1. Preparar el texto de entrada.
  2. Tokenizar.
  3. Ejecutar el Encoder.
  4. Generar tokens mediante el Decoder.
  5. Decodificar.
  6. Validar la respuesta.

¿Qué parámetros pueden controlarse?

  • max_new_tokens.
  • num_beams.
  • do_sample.
  • temperature, cuando se usa muestreo.
  • Otros controles de generación compatibles.

47. ¿Qué es Greedy Decoding?

Es seleccionar el token de mayor probabilidad en cada paso.

¿Ventaja?

Simplicidad.

¿Limitación?

Puede generar secuencias repetitivas o subóptimas.


48. ¿Qué es Beam Search?

Beam Search mantiene múltiples continuaciones candidatas.

¿Por qué puede ser útil en resumen?

Permite explorar diferentes secuencias.

¿Es siempre mejor?

No.

Debe evaluarse con métricas y ejemplos reales.


49. ¿Qué es Length Penalty?

Length Penalty modifica cómo se comparan secuencias candidatas de diferentes longitudes durante determinadas estrategias de decodificación.

¿Por qué importa?

La generación puede favorecer salidas demasiado cortas o largas bajo ciertas condiciones.

¿Debemos utilizar siempre el mismo valor?

No.

Debe ajustarse al objetivo y al modelo.


50. ¿Qué es KV Cache en BART?

Durante generación, el Decoder puede reutilizar Keys y Values previamente calculadas.

¿Qué aporta?

Menos trabajo redundante en determinadas operaciones de atención.

¿Sustituye al Encoder?

No.

¿Qué otra información puede reutilizarse?

Representaciones relacionadas con la entrada del Encoder, según la implementación.


51. ¿Cómo evaluar el resumen con BART?

Métricas habituales:

  • ROUGE-1.
  • ROUGE-2.
  • ROUGE-L.
  • BERTScore.
  • Evaluación de fidelidad factual.
  • Revisión humana.

¿Qué es ROUGE?

Una familia de métricas basada en coincidencias con referencias.

¿ROUGE garantiza que los hechos sean correctos?

No.

Un resumen puede obtener un buen ROUGE y contener errores importantes.


52. ¿Qué es factual consistency?

La Consistencia Factual evalúa si las afirmaciones generadas están respaldadas por el documento fuente.

Ejemplo

Fuente:

«La compañía registró ventas de 4 millones de euros».

Resumen incorrecto:

«La compañía registró ventas de 40 millones».

¿Qué problema existe?

El resumen modifica un dato crítico.

¿Qué debemos hacer?

Comparar sistemáticamente nombres, fechas, importes y afirmaciones con las fuentes.


53. ¿Cómo evaluar generación de respuestas?

Si BART se utiliza para responder preguntas, debemos evaluar:

  • Corrección.
  • Relevancia.
  • Fidelidad al contexto.
  • Completitud.
  • Ausencia de información inventada.

¿Una respuesta fluida es necesariamente correcta?

No.


54. ¿BART puede realizar clasificación?

Sí.

Existen implementaciones con cabezas específicas como BartForSequenceClassification.

¿Cómo funciona?

El modelo produce representaciones de las que una cabeza calcula logits de categorías.

¿Es obligatorio representar la categoría como texto generado?

No.

A diferencia de enfoques Text-to-Text puros, una implementación de BART puede utilizar una cabeza de clasificación tradicional.


55. ¿BART puede utilizarse para preguntas y respuestas?

Sí, con configuraciones y entrenamiento apropiados.

Puede utilizarse para generación de respuestas o tareas extractivas según la cabeza y adaptación.

¿El BART original es un sistema de preguntas y respuestas completo?

No.

Necesita el entrenamiento y los datos correspondientes.


56. ¿BART sirve para traducción?

La arquitectura Encoder–Decoder puede utilizarse en traducción.

La investigación original también exploró procedimientos de transferencia hacia traducción.

¿BART-Large-CNN traduce automáticamente español a inglés?

No está diseñado específicamente para ese cometido.

¿Qué alternativa conviene evaluar?

mBART o modelos de traducción entrenados para los idiomas correspondientes.


57. ¿Qué es mBART?

mBART (Multilingual BART) es una familia de modelos Encoder–Decoder con preentrenamiento multilingüe basado en reconstrucción de texto corrupto.

¿Por qué es importante?

Permite trabajar con secuencias en múltiples idiomas y transferir conocimientos a tareas de traducción.

¿Es idéntico a BART inglés?

No.

Tiene diferencias de vocabulario, datos y configuración.


58. ¿Qué es mBART-50?

mBART-50 es una variante multilingüe con cobertura de numerosos idiomas y mecanismos específicos para seleccionar el idioma fuente y destino.

¿Por qué importan los códigos de idioma?

Porque el modelo debe conocer la lengua que debe procesar o generar.

¿Podemos utilizar los códigos arbitrariamente?

No.

Hay que respetar la interfaz del checkpoint.


59. ¿Qué es PEGASUS y cómo se compara con BART?

PEGASUS es otra arquitectura Encoder–Decoder desarrollada para preentrenamiento orientado especialmente a resumen.

Su investigación utilizó una estrategia conocida como Gap Sentence Generation.

¿Qué diferencia principal tiene?

El objetivo de preentrenamiento está especialmente relacionado con la reconstrucción de oraciones seleccionadas.

¿PEGASUS es una variante exacta de BART?

No.

Es una familia diferenciada.


60. Comparación entre BERT, GPT, T5 y BART

ModeloArquitecturaObjetivo característico
BERTEncoder-OnlyMasked Language Modeling
GPT clásicoDecoder-OnlyPredicción del siguiente token
T5Encoder–DecoderSpan Corruption, Text-to-Text
BARTEncoder–DecoderReconstrucción de texto corrupto

¿Cuál debemos elegir?

Depende de la tarea, idioma, recursos y disponibilidad de checkpoints apropiados.


61. ¿Qué diferencia existe entre BART y T5?

Ambos utilizan Encoder y Decoder, pero sus objetivos originales de preentrenamiento son diferentes.

BART

Recibe texto corrupto y reconstruye la secuencia original completa.

T5

En el objetivo característico de Span Corruption, el Decoder genera principalmente los fragmentos eliminados, organizados con Sentinel Tokens.

¿Utilizan los mismos marcadores?

No.

BART clásico utiliza <mask>.

T5 utiliza tokens como <extra_id_0>.

¿Significa que un modelo siempre supera al otro?

No.


62. ¿Qué diferencia existe entre BART y BERT?

BERT produce representaciones bidireccionales mediante Encoder.

BART utiliza un Encoder bidireccional, pero añade un Decoder autorregresivo.

¿Qué aporta el Decoder?

Capacidad de generación condicional de secuencias.

¿BERT no puede utilizarse nunca para generación?

Existen adaptaciones, pero no es su objetivo original principal.


63. ¿Qué diferencia existe entre BART y GPT?

GPT clásico utiliza una pila Decoder-Only para modelar la continuación de una secuencia.

BART añade un Encoder que representa la entrada condicionante.

¿Por qué es útil?

En tareas como resumen, el modelo puede procesar el documento fuente y generar una salida utilizando Cross-Attention.

¿Es GPT incapaz de resumir?

No.

Los modelos GPT generativos también pueden resumir textos, pero mediante otra organización arquitectónica.


64. ¿Qué límites de contexto tiene BART?

Los checkpoints originales más conocidos de BART utilizan longitudes máximas de posiciones del orden de 1024 tokens en el Encoder.

¿Todos los modelos derivados comparten ese límite?

No necesariamente.

¿Qué ocurre con documentos mayores?

Podemos utilizar:

  • Fragmentación.
  • Resúmenes parciales.
  • Consolidación jerárquica.
  • Modelos especializados en contextos largos.

¿Truncar un documento es siempre seguro?

No.

Puede eliminar información esencial.


65. ¿Cómo resumir documentos largos?

Una estrategia posible es:

  1. Dividir el documento en fragmentos.
  2. Resumir cada fragmento.
  3. Combinar los resúmenes intermedios.
  4. Generar una síntesis final.
  5. Comprobar los hechos contra las fuentes originales.

¿Qué riesgo presenta?

La información puede perderse en etapas sucesivas.

¿Cómo mitigarlo?

Conservando referencias a secciones originales y verificando datos relevantes.


66. ¿Cómo medir latencia de BART?

Debemos considerar:

  • Tamaño de modelo.
  • Longitud de entrada.
  • Longitud de salida.
  • Número de beams.
  • Batch Size.
  • CPU o GPU.
  • Precisión numérica.
  • Uso de caché.
  • Versión de bibliotecas.

¿Qué resulta particularmente importante?

El número de tokens generados y la estrategia de decodificación.


67. Ejemplo 13 — Benchmark básico de generación

import time
import torch
device = torch.device(
"cuda" if torch.cuda.is_available()
else "cpu"
)
summary_model = summary_model.to(device).eval()
inputs = {
key: value.to(device)
for key, value in inputs.items()
}
with torch.inference_mode():
for _ in range(2):
summary_model.generate(
**inputs,
max_new_tokens=40,
num_beams=1
)
if device.type == "cuda":
torch.cuda.synchronize()
start = time.perf_counter()
for _ in range(5):
summary_model.generate(
**inputs,
max_new_tokens=40,
num_beams=1
)
if device.type == "cuda":
torch.cuda.synchronize()
elapsed = time.perf_counter() - start
print(
f"Latencia media: {elapsed/5*1000:.1f} ms"
)

Precaución sobre este ejemplo

La variable inputs debe contener las entradas tokenizadas correspondientes a la prueba de resumen, no las de otro ejemplo ejecutado posteriormente.

Es preferible utilizar nombres específicos como summary_inputs en programas de producción.

La medición tampoco incluye necesariamente la tokenización ni los tiempos de transporte de datos.


68. Aplicaciones empresariales de BART

Resumen de informes

Generar síntesis de documentos comerciales y operativos.

Procesamiento de incidencias

Resumir conversaciones de soporte.

Análisis de correspondencia

Transformar correos extensos en resúmenes.

Preparación de documentación

Generar borradores o versiones simplificadas.

Bases de conocimiento

Sintetizar artículos largos para facilitar la consulta.

Análisis de reuniones

Generar resúmenes a partir de transcripciones.

¿Qué requisito común existe?

Verificar la fidelidad de la información generada.


69. BART en sistemas RAG

BART puede actuar como generador dentro de un sistema Retrieval-Augmented Generation.

Flujo

Pregunta → Recuperador → Documentos → BART → Respuesta.

¿Qué aporta?

Generación de texto condicionada por información recuperada.

¿BART incluye una base de datos vectorial?

No.

El sistema de recuperación debe integrarse externamente.


70. BART y AI Visibility

BART permite comprender cómo los modelos Encoder–Decoder pueden sintetizar información a partir de entradas extensas.

Aplicaciones posibles en análisis de AI Visibility

  • Resumen de respuestas de asistentes.
  • Clasificación y organización de menciones.
  • Síntesis de análisis comparativos.
  • Transformación de reportes.
  • Preparación de resúmenes de auditorías.

¿El uso de BART incrementa automáticamente la visibilidad de una marca?

No.


71. ¿BART mejora Recommendation Rate?

No directamente.

Recommendation Rate mide recomendaciones observadas bajo una metodología.

BART puede utilizarse para analizar esas respuestas, pero no garantiza que un sistema externo recomiende una marca.


72. ¿BART mejora Citation Coverage?

No directamente.

Citation Coverage mide citas o referencias observadas.

Una arquitectura de generación condicional no equivale a un sistema de atribución de fuentes verificadas.

¿Qué debemos comprobar?

Que las referencias generadas correspondan a fuentes existentes y relevantes.


73. Errores frecuentes sobre BART

Error 1. Confundir BART con BERT

BART añade un Decoder autorregresivo.

Error 2. Confundir BART con GPT

BART utiliza Encoder–Decoder.

Error 3. Confundir BART con T5

Sus objetivos originales de corrupción y reconstrucción son diferentes.

Error 4. Suponer que el Encoder genera texto directamente

La generación condicional se realiza mediante el Decoder.

Error 5. Omitir Cross-Attention

Es esencial para condicionar el Decoder por la entrada.

Error 6. Confundir Token Masking con Text Infilling

Un Span de longitud variable puede reemplazarse por un solo marcador.

Error 7. Suponer que todos los spans tienen la misma longitud

Las longitudes son variables.

Error 8. Confundir λ=3 con una longitud fija de tres tokens

Es un parámetro de la distribución.

Error 9. Confundir Token Deletion con Token Masking

La eliminación no conserva un marcador.

Error 10. Confundir Sentence Permutation con Document Rotation

Son transformaciones distintas.

Error 11. Suponer que BART utiliza los Sentinel Tokens de T5

El esquema clásico difiere.

Error 12. Usar un tokenizer incompatible con el checkpoint

Puede alterar las entradas.

Error 13. Considerar BART-Base equivalente a BART-Large-CNN

El segundo está adaptado para resumen.

Error 14. Intentar resumir en español con un checkpoint inglés sin evaluarlo

Puede degradar la calidad.

Error 15. Olvidar las máscaras causales durante entrenamiento

Puede causar filtración de información futura.

Error 16. Confundir padding con contenido válido

Puede distorsionar la pérdida.

Error 17. Aplicar Softmax antes de CrossEntropyLoss

No es necesario.

Error 18. Duplicar el desplazamiento de labels

Puede producir objetivos incorrectos.

Error 19. Evaluar resumen solamente con ROUGE

No garantiza fidelidad.

Error 20. Truncar documentos sin evaluar información omitida

Puede perder hechos esenciales.

Error 21. Suponer que Beam Search siempre mejora la calidad

Depende de la tarea y la configuración.

Error 22. No comprobar licencias del checkpoint

Es importante antes del uso comercial.

Error 23. Confundir resultados de Fine-Tuning con capacidades del modelo base

El entrenamiento adicional modifica el comportamiento.

Error 24. Considerar que BART verifica automáticamente las fuentes

No.

Error 25. Asociar directamente BART con Citation Coverage

No existe una relación automática.


74. Buenas prácticas de implementación

  1. Seleccionar el checkpoint adecuado para la tarea.
  2. Utilizar el tokenizador correspondiente.
  3. Diferenciar preentrenamiento y Fine-Tuning.
  4. Documentar las transformaciones de corrupción.
  5. Mantener las secuencias originales como objetivos.
  6. Respetar las máscaras causales.
  7. Utilizar correctamente Cross-Attention.
  8. Preparar labels compatibles.
  9. Ignorar padding en las pérdidas cuando corresponda.
  10. Evitar desplazamientos duplicados de targets.
  11. Separar Train, Validation y Test.
  12. Eliminar duplicados entre particiones.
  13. Evaluar calidad lingüística.
  14. Comprobar fidelidad factual.
  15. Evaluar números, fechas y entidades.
  16. Medir ROUGE junto con otras métricas.
  17. Ajustar la estrategia de generación.
  18. Controlar longitudes de entrada y salida.
  19. Utilizar fragmentación para documentos extensos.
  20. Considerar mBART para tareas multilingües.
  21. Medir latencia y memoria.
  22. Registrar versiones de bibliotecas.
  23. Revisar licencia y requisitos de uso.
  24. Validar las salidas en procesos empresariales.
  25. Monitorizar resultados y errores después del despliegue.

Preguntas frecuentes sobre Arquitectura BART

¿Qué significa BART?

Bidirectional and Auto-Regressive Transformers.

¿Qué es BART?

Es una arquitectura Transformer Encoder–Decoder preentrenada para reconstruir texto corrupto.

¿Quién desarrolló BART?

Mike Lewis y colaboradores de Facebook AI Research.

¿Cuándo se presentó?

Como prepublicación en 2019 y publicación académica en ACL 2020.

¿BART es un Transformer?

Sí.

¿BART es Encoder-Only?

No.

¿BART es Decoder-Only?

No.

¿Qué tipo de arquitectura utiliza?

Encoder–Decoder.

¿Qué significa bidireccional?

Que el Encoder puede utilizar el contexto anterior y posterior.

¿Qué significa autorregresivo?

Que el Decoder genera tokens condicionándose por los anteriores.

¿Qué es Denoising Autoencoding?

Aprender a reconstruir información original a partir de versiones corruptas.

¿Qué es Token Masking?

Sustituir tokens por marcadores especiales.

¿Qué es Token Deletion?

Eliminar tokens sin conservar un marcador.

¿Qué es Text Infilling?

Sustituir fragmentos de longitud variable por un único marcador.

¿Qué es Sentence Permutation?

Cambiar el orden de las oraciones.

¿Qué es Document Rotation?

Desplazar cíclicamente el comienzo de una secuencia.

¿Qué transformación de ruido destaca en BART?

La combinación de Text Infilling y Sentence Permutation.

¿Qué distribución utiliza Text Infilling en el artículo original?

Una distribución de Poisson con λ=3 para longitudes de spans.

¿Qué es un Span?

Un fragmento contiguo de tokens.

¿BART utiliza <mask>?

Sí, en sus checkpoints clásicos.

¿BART utiliza <extra_id_0> como T5?

No en su esquema original.

¿Cuál es el objetivo de reconstrucción?

Generar el texto original completo.

¿Qué es Cross-Attention?

Atención que conecta el Decoder con las representaciones del Encoder.

¿Qué es Causal Self-Attention?

Atención que bloquea tokens futuros en el Decoder.

¿Qué son los Positional Embeddings?

Representaciones de posiciones de los tokens.

¿Qué es BART-Base?

Una configuración de aproximadamente 140 millones de parámetros.

¿Qué es BART-Large?

Una configuración de aproximadamente 400 millones de parámetros.

¿Qué es BART-Large-CNN?

Una variante ajustada para resumen en CNN/DailyMail.

¿Qué es Abstractive Summarization?

Generar resúmenes que pueden utilizar nuevas formulaciones.

¿Qué es Extractive Summarization?

Seleccionar contenido del documento original.

¿Qué es Fine-Tuning?

Adaptar un modelo preentrenado a nuevos datos u objetivos.

¿Qué es Teacher Forcing?

Utilizar los tokens correctos anteriores del destino durante entrenamiento.

¿Qué es Cross-Entropy?

Una función de pérdida utilizada para predicción de tokens.

¿Qué es Beam Search?

Una estrategia que conserva varias secuencias candidatas.

¿Qué es Greedy Decoding?

Seleccionar el token más probable en cada paso.

¿Qué es KV Cache?

Almacenar Keys y Values para reutilizarlas en generación.

¿Qué es ROUGE?

Una familia de métricas de solapamiento textual utilizadas en resumen.

¿Qué es Factual Consistency?

Que las afirmaciones generadas estén respaldadas por el texto fuente.

¿Qué es mBART?

Una familia multilingüe basada en preentrenamiento de reconstrucción Seq2Seq.

¿Qué es mBART-50?

Una variante multilingüe con soporte para numerosos idiomas.

¿BART sirve para español?

Existen variantes multilingües; los checkpoints ingleses requieren evaluación cuidadosa.

¿BART puede resumir documentos?

Sí, con un checkpoint adecuado.

¿BART puede traducir?

Sí, mediante configuraciones entrenadas para traducción.

¿BART puede clasificar?

Sí, con una cabeza adaptada.

¿BART puede responder preguntas?

Sí, cuando se entrena o adapta para esa tarea.

¿Qué es AutoModelForSeq2SeqLM?

Una interfaz de Hugging Face para modelos Encoder–Decoder de generación condicional.

¿Qué es generate()?

Una interfaz para generar secuencias utilizando estrategias de decodificación.

¿BART puede utilizarse en RAG?

Sí, como generador condicionado.

¿Necesita una GPU?

No necesariamente, aunque modelos grandes pueden necesitar recursos importantes.

¿BART es un agente de IA completo?

No.

¿BART mejora Recommendation Rate?

No directamente.

¿BART aumenta Citation Coverage?

No directamente.

¿Por qué importa para AI Visibility?

Ayuda a comprender y desarrollar herramientas de resumen, clasificación y generación condicionada de texto.


Conceptos relacionados

  • Inteligencia Artificial.
  • Aprendizaje Profundo.
  • Procesamiento del Lenguaje Natural.
  • Generación del Lenguaje Natural.
  • Arquitectura Transformer.
  • Encoder–Decoder.
  • BART.
  • Bidirectional Encoder.
  • Autoregressive Decoder.
  • Denoising Autoencoding.
  • Self-Supervised Learning.
  • Token Masking.
  • Token Deletion.
  • Text Infilling.
  • Sentence Permutation.
  • Document Rotation.
  • Poisson Distribution.
  • Span Corruption.
  • Self-Attention.
  • Cross-Attention.
  • Causal Attention.
  • Multi-Head Attention.
  • Positional Embeddings.
  • Byte-Level BPE.
  • Teacher Forcing.
  • Cross-Entropy.
  • Fine-Tuning.
  • Beam Search.
  • Greedy Decoding.
  • KV Cache.
  • Abstractive Summarization.
  • Extractive Summarization.
  • ROUGE.
  • Factual Consistency.
  • BERT.
  • GPT.
  • T5.
  • mBART.
  • PEGASUS.
  • RAG.
  • Hugging Face Transformers.
  • PyTorch.
  • NumPy.
  • AI Visibility.

Conclusión

La Arquitectura BART (Bidirectional and Auto-Regressive Transformers) representa un avance importante en el preentrenamiento de modelos Transformer destinados a generación condicional de texto.

Su diseño combina un Encoder bidireccional con un Decoder autorregresivo.

Esta organización permite que el Encoder procese la información disponible de la entrada mientras el Decoder construye una secuencia de salida mediante predicción de tokens.

El elemento más distintivo de BART es su objetivo Denoising Autoencoding.

En lugar de limitarse a predecir tokens individuales enmascarados, el modelo aprende a reconstruir textos completos después de aplicar alteraciones.

Las transformaciones estudiadas incluyen Token Masking, Token Deletion, Text Infilling, Sentence Permutation y Document Rotation.

La combinación de Text Infilling y Sentence Permutation obtuvo resultados especialmente favorables en los experimentos originales.

Después del preentrenamiento, BART puede adaptarse a resumen, clasificación, generación de respuestas y otras tareas de lenguaje.

La familia también evolucionó hacia alternativas multilingües como mBART.

Con Python y Hugging Face Transformers podemos cargar checkpoints, reconstruir textos enmascarados, generar resúmenes y realizar Fine-Tuning sobre documentos empresariales.

Sin embargo, la capacidad de producir texto fluido no garantiza exactitud factual.

Los resúmenes deben evaluarse mediante métricas y comprobaciones de fidelidad a la fuente.

Para aplicaciones empresariales, BART es especialmente interesante cuando el objetivo consiste en transformar una entrada textual en una salida más breve, organizada o adaptada.

En AI Visibility puede servir como componente de análisis y síntesis, aunque no genera automáticamente nuevas recomendaciones ni citas de marcas.

La conclusión fundamental es que BART aprende a reconstruir textos corruptos mediante una arquitectura Transformer Encoder–Decoder. Esta combinación de comprensión bidireccional y generación autorregresiva constituye una base importante para los modelos de resumen y generación condicional de lenguaje.

Solicitar Análisis Gratuito
Solicitar Análisis Gratuito

Visibilidad IA

Contact

Menu

(c) 2025-2026  Todos los derechos reservados | Designed by Benelux-IT