BERT (Bidirectional Encoder Representations from Transformers)
BERT es el codificador Transformer bidireccional de Google, preentrenado para predecir palabras enmascaradas teniendo en cuenta ambos lados. Incluye cómo funciona, el ajuste fino y sus variantes.
BERT (representaciones de codificador bidireccional de Transformers) es un codificador Transformer que lee una oración completa de una vez y construye la representación de cada palabra a partir de las palabras que tiene a ambos lados. Jacob Devlin, Ming-Wei Chang, Kenton Lee y Kristina Toutanova, de Google AI Language, lo presentaron en octubre de 2018 en BERT: preentrenamiento de Transformers bidireccionales profundos para la comprensión del lenguaje, obra que ganó el premio al mejor artículo largo de NAACL 2019. Un único BERT preentrenado, ajustado con una capa de salida adicional, estableció nuevos resultados de vanguardia en once tareas de procesamiento del lenguaje natural (NLP), elevó la puntuación de la prueba GLUE a 80,5 % —una mejora absoluta de 7,7 puntos— y alcanzó un F1 de 93,2 en el conjunto de prueba de respuesta a preguntas de SQuAD v1.1.
Cómo se preentrena BERT#
BERT-Base apila 12 capas de codificador con estados ocultos de 768 dimensiones y 12 cabezas de atención, unos 110 millones de parámetros; BERT-Large tiene 24 capas, 1.024 dimensiones, 16 cabezas y 340 millones de parámetros. El texto de entrada se divide mediante la tokenización WordPiece en un vocabulario de 30.000 tokens; un token especial [CLS] abre cada secuencia y [SEP] separa los dos segmentos de un par de oraciones. Google preentrenó ambos tamaños con BooksCorpus (800 millones de palabras) y la Wikipedia en inglés (2.500 millones de palabras), usando dos objetivos autosupervisados.
El modelado de lenguaje enmascarado (MLM) selecciona el 15 % de las posiciones de los tokens, sustituye el 80 % de ellas por [MASK], el 10 % por un token aleatorio y deja el 10 % sin cambios; el modelo predice los tokens originales. La autoatención de BERT no tiene máscara causal, por lo que cada predicción se basa en el contexto de ambos lados, algo que un modelo de lenguaje de izquierda a derecha no puede hacer. La predicción de la oración siguiente (NSP) empareja cada segmento con su sucesor real la mitad de las veces y con una oración aleatoria el resto; un clasificador sobre la salida [CLS] aprende a distinguirlos.
Un punto de control preentrenado conserva su cabezal de predicción de palabras enmascaradas, por lo que el modelo original puede completar directamente un espacio en blanco:
from transformers import pipeline
# BERT predice una palabra enmascarada a partir de las palabras que la rodean
fill = pipeline("fill-mask", model="bert-base-uncased")
for text in ["She went to the [MASK] to buy bread.", "She went to the [MASK] to see a doctor."]:
predictions = fill(text, top_k=3)
print(text, [(p["token_str"], round(p["score"], 2)) for p in predictions])Las dos oraciones solo se diferencian después del espacio en blanco, y la predicción principal de BERT cambia de «market» (0,82) a «hospital» (0,78). Un modelo que lee de izquierda a derecha ve «She went to the» en ambas oraciones y no tiene nada que permita distinguirlas.
Ajuste fino y aplicaciones#
El ajuste fino añade una pequeña capa para la tarea y entrena todos los pesos con ejemplos etiquetados, un enfoque que convirtió el aprendizaje por transferencia en la opción predeterminada en NLP. El vector [CLS] alimenta clasificadores a nivel de oración, como el análisis de sentimientos; cada vector de token alimenta tareas de etiquetado, como el reconocimiento de entidades con nombre (NER); y las puntuaciones de inicio y fin sobre los tokens extraen fragmentos de respuesta.
En octubre de 2019, Google empezó a usar BERT en una de cada diez búsquedas en inglés en EE. UU. y citó la consulta «2019 brazil traveler to usa need a visa», en la que BERT reconoció que «to» indica que una persona brasileña viaja a EE. UU. Para octubre de 2020, BERT ya procesaba casi todas las consultas en inglés. Los codificadores de la familia BERT también generan las representaciones vectoriales que sustentan la búsqueda semántica: Sentence-BERT realiza un ajuste fino de BERT para asignar a cada oración un único vector para la búsqueda vectorial, ColBERT mantiene un vector por token y los modelos de reranking basados en un codificador cruzado puntúan pares de consulta y pasaje en canalizaciones de generación aumentada por recuperación (RAG).
En la detección de visión y lenguaje, Grounding DINO codifica las indicaciones de texto con un codificador BERT-base antes de emparejarlas con regiones de imagen. Ultralytics Platform aloja Grounding DINO para la anotación inteligente guiada por clases, que convierte los nombres de clase de un conjunto de datos en cajas editables para entrenar un detector YOLO26. La predicción de partes enmascaradas también llegó a las imágenes: el Vision Transformer (ViT) tomó prestado el token [CLS] de BERT para la clasificación, y los autocodificadores enmascarados (MAE) preentrenan codificadores de imágenes ocultando el 75 % de los fragmentos y reconstruyéndolos.
BERT frente a GPT y los codificadores posteriores#
Los modelos GPT se basan en el decodificador Transformer con una máscara causal, por lo que predicen cada token siguiente a partir de los tokens anteriores y son adecuados para la generación de texto. BERT genera un vector para cada token de entrada, lo que lo hace adecuado para la clasificación, la extracción y la recuperación, y no incluye una forma de escribir texto de izquierda a derecha. Un modelo de lenguaje grande (LLM) con miles de millones de parámetros realiza muchas de las mismas tareas de comprensión mediante prompts, con un coste por consulta muchas veces superior al de un codificador de 110 millones de parámetros.
Los codificadores posteriores perfeccionaron la receta. RoBERTa, de Meta, eliminó NSP y se entrenó durante más tiempo, con lotes más grandes y unos 160 GB de texto, lo que demostró que BERT estaba considerablemente infraentrenado; DistilBERT, de Hugging Face, usó la destilación de conocimiento para reducir el número de parámetros un 40 % y ejecutarse un 60 % más rápido, manteniendo el 97 % del rendimiento de BERT en comprensión del lenguaje. ModernBERT, publicado en diciembre de 2024 por Answer.AI y LightOn, se entrenó con 2 billones de tokens y una longitud de contexto nativa de 8.192 tokens, 16 veces el límite de 512 tokens de BERT.










