Introducción
RoBERTa (abreviatura de “Robustly Optimized BERT Approach”) es una versión avanzada del modelo BERT (Bidirectional Encoder Representations from Transformers), creada por investigadores de Facebook AI. Al igual que BERT, RoBERTa es un modelo de lenguaje basado en transformadores que emplea autoatención para analizar secuencias de entrada y producir representaciones de palabras contextualizadas dentro de una oración.
En este artículo, analizaremos RoBERTa con más detalle.
RoBERTa vs BERT
Una diferencia clave entre RoBERTa y BERT es que RoBERTa se entrenó con un conjunto de datos significativamente más grande y con un procedimiento de entrenamiento más efectivo. Específicamente, RoBERTa se entrenó con 160 GB de texto, más de 10 veces el tamaño del conjunto de datos utilizado para BERT. Además, RoBERTa emplea una técnica de enmascaramiento dinámico durante el entrenamiento, lo que mejora la capacidad del modelo para aprender representaciones de palabras más robustas y generalizables.
RoBERTa ha demostrado un rendimiento superior en comparación con BERT y otros modelos líderes en diversas tareas de procesamiento del lenguaje natural, como la traducción de idiomas, la clasificación de textos y la respuesta a preguntas. También ha servido como modelo fundamental para numerosos modelos exitosos de PLN y ha ganado popularidad tanto en la investigación como en aplicaciones industriales.
En resumen, RoBERTa es un modelo de lenguaje potente y eficaz que ha hecho contribuciones significativas al PLN, impulsando el progreso en una amplia gama de aplicaciones.
Arquitectura del modelo RoBERTa
El modelo RoBERTa comparte la misma arquitectura que el modelo BERT. Es una reimplementación de BERT con modificaciones en hiperparámetros clave y ajustes menores en los embeddings.
Los procedimientos generales de preentrenamiento y ajuste fino para BERT se ilustran en la Figura 1 a continuación. En BERT, se utiliza la misma arquitectura tanto para el preentrenamiento como para el ajuste fino, excepto en las capas de salida. Los parámetros del modelo preentrenado se utilizan para inicializar modelos para diversas tareas posteriores. Durante el ajuste fino, todos los parámetros se ajustan.
Arquitectura del modelo BERT
En contraste, RoBERTa no utiliza el objetivo de preentrenamiento de predicción de la siguiente oración (next-sentence). En su lugar, se entrena con minilotes mucho más grandes y tasas de aprendizaje más altas. RoBERTa emplea un esquema de preentrenamiento diferente y reemplaza el vocabulario BPE a nivel de caracteres con un tokenizador BPE a nivel de bytes (similar a GPT-2). Además, RoBERTa no requiere la definición de qué token pertenece a qué segmento, ya que carece de token_type_ids. Los segmentos se pueden dividir fácilmente utilizando el token de separación tokenizer.sep_token (o ).
Además, a diferencia del conjunto de datos de 16 GB utilizado originalmente para entrenar BERT, RoBERTa se entrena con un conjunto de datos masivo que supera los 160 GB de texto sin comprimir. Este conjunto de datos incluye los 16 GB de Wikipedia en inglés y el Books Corpus utilizados en BERT, junto con datos adicionales del corpus WebText (38 GB), el dataset de noticias CommonCrawl (63 millones de artículos, 76 GB) e Historias de Common Crawl (31 GB). RoBERTa fue preentrenado utilizando este extenso conjunto de datos y 1024 GPU V100 Tesla funcionando durante un día.
Ventajas del modelo RoBERTa
RoBERTa tiene una arquitectura similar a BERT, pero para mejorar el rendimiento, los autores realizaron varios cambios simples en el diseño de la arquitectura y el procedimiento de entrenamiento. Estos cambios incluyen:
- Eliminación del objetivo de predicción de la siguiente oración (NSP): En BERT, el modelo se entrena para predecir si dos segmentos de un documento son del mismo documento o de documentos diferentes utilizando una pérdida auxiliar NSP. Los autores experimentaron con versiones del modelo con y sin la pérdida NSP y descubrieron que eliminar la pérdida NSP igualaba o mejoraba ligeramente el rendimiento en las tareas posteriores.
- Entrenamiento con lotes de mayor tamaño y secuencias más largas: BERT se entrenó originalmente durante 1 millón de pasos con un tamaño de lote de 256 secuencias. RoBERTa se entrenó con 125 pasos de 2000 secuencias y 31 000 pasos con 8000 secuencias por lote. Los lotes más grandes mejoran la perplejidad en el objetivo de modelado de lenguaje enmascarado y la precisión en la tarea final. También son más fáciles de paralelizar utilizando entrenamiento paralelo distribuido.
- Cambio dinámico del patrón de enmascaramiento: En BERT, el enmascaramiento se realiza una vez durante el preprocesamiento de datos, lo que da como resultado una máscara estática única. Para evitar esto, los datos de entrenamiento se duplican y se enmascaran 10 veces con diferentes estrategias durante 40 épocas, lo que da como resultado 4 épocas con la misma máscara. Esta estrategia se comparó con el enmascaramiento dinámico, donde se generan diferentes máscaras cada vez que los datos se introducen en el modelo.
Rendimiento de RoBERTa
El modelo RoBERTa logró un rendimiento de vanguardia en las tareas MNLI, QNLI, RTE, STS-B y RACE en su momento, y demostró mejoras significativas en el benchmark GLUE. Con una puntuación de 88.5, RoBERTa ocupó la primera posición en el ranking de GLUE.
Comparación de BERT y mejoras sucesivas sobre él
Cómo usar RoBERTa
La biblioteca Transformers de Huggingface ofrece una variedad de modelos RoBERTa preentrenados en diferentes tamaños y para diversas tareas. En esta publicación, nos centraremos en cómo cargar un modelo RoBERTa y realizar clasificación de emociones.
Usaremos un modelo RoBERTa ajustado en un conjunto de datos específico de la tarea, específicamente el modelo preentrenado “cardiffnlp/twitter-roberta-base-emotion” del hub de Huggingface.
Primero, necesitamos instalar e importar todos los paquetes necesarios y cargar el modelo usando RobertaForSequenceClassification (que incluye una cabeza de clasificación) y el tokenizador usando RobertaTokenizer.
!pip install -q transformers#Importando los paquetes necesarios
import torch
from transformers import RobertaTokenizer, RobertaForSequenceClassification#Cargando el modelo y el tokenizador
model_name = “cardiffnlp/twitter-roberta-base-emotion”
tokenizer = RobertaTokenizer.from_pretrained(model_name)
model = RobertaForSequenceClassification.from_pretrained(model_name)#Tokenizando la entrada
inputs = tokenizer(“I love my cat”, return_tensors=“pt”)#Recuperando los logits y usándolos para predecir la emoción subyacente
with torch.no_grad():
logits = model(**inputs).logitspredicted_class_id = logits.argmax().item()model.config.id2label[predicted_class_id]
Output: Optimism
La salida es “Optimism”, que es correcta según las etiquetas predefinidas del modelo de clasificación que usamos. Podemos usar otro modelo preentrenado o ajustar un modelo para obtener resultados con etiquetas más apropiadas.
Resultados de evaluación de RoBERTa
Entrenamiento con enmascaramiento dinámico
En la implementación original de BERT, el enmascaramiento ocurre durante el preprocesamiento de datos, lo que lleva a una sola máscara estática. Este método se comparó con el enmascaramiento dinámico, donde se genera un nuevo patrón de enmascaramiento cada vez que se introduce una secuencia en el modelo. El enmascaramiento dinámico demostró un rendimiento comparable o ligeramente superior en comparación con el enmascaramiento estático.
Comparación entre enmascaramiento estático y dinámico para BERT
Según los hallazgos mencionados anteriormente, el enfoque de enmascaramiento dinámico se utiliza para el preentrenamiento de RoBERTa.
ORACIONES COMPLETAS sin pérdida NSP
La comparación entre el entrenamiento sin la pérdida NSP y el entrenamiento con bloques de texto de un solo documento (doc-sentences) reveló que esta configuración supera los resultados publicados originalmente de BERTBASE. Además, eliminar la pérdida NSP iguala o mejora ligeramente el rendimiento en las tareas posteriores.
Tabla que ilustra el rendimiento de RoBERTa con y sin pérdida NSP
Si bien se observó que limitar las secuencias a un solo documento (DOC-SENTENCES) produce un rendimiento ligeramente mejor en comparación con incorporar secuencias de múltiples documentos (FULL-SENTENCES), RoBERTa opta por usar FULL-SENTENCES para una comparación más fácil, ya que el formato DOC-SENTENCES conduce a tamaños de lote variables.
Entrenamiento con lotes grandes
Entrenar con tamaños de lote grandes acelera la optimización y mejora la precisión de la tarea. Además, el entrenamiento paralelo distribuido de datos facilita la paralelización de lotes grandes, mejorando aún más la eficiencia. Cuando se ajustan adecuadamente, los tamaños de lote grandes pueden mejorar el rendimiento del modelo en una tarea determinada.
Comparación del rendimiento de RoBERTa en diferentes tareas con tamaños de lote variables
Un BPE más grande a nivel de bytes
La codificación por pares de bytes (BPE) combina aspectos de representaciones a nivel de caracteres y a nivel de palabras, lo que permite un manejo eficaz de los vocabularios extensos típicos en los corpus de lenguaje natural. RoBERTa se diferencia de BERT al emplear un vocabulario BPE más grande a nivel de bytes que consta de 50 000 unidades de subpalabras, sin requerir preprocesamiento adicional ni tokenización de entrada.
Navegando por las limitaciones de RoBERTa
Si bien RoBERTa es un modelo potente, no está exento de limitaciones. Aquí hay algunas:
- Recursos computacionales: Entrenar y ajustar RoBERTa requiere recursos computacionales significativos, incluyendo GPUs potentes y grandes cantidades de memoria. Esto puede dificultar que individuos u organizaciones con recursos limitados utilicen RoBERTa de manera efectiva.
- Especificidad del dominio: Los modelos de lenguaje preentrenados como RoBERTa pueden no funcionar de manera óptima en tareas o conjuntos de datos específicos de un dominio sin un ajuste fino adicional. Pueden requerir entrenamiento adicional en datos específicos del dominio para alcanzar el nivel de rendimiento deseado.
- Eficiencia de datos: RoBERTa y modelos similares requieren grandes cantidades de datos para el preentrenamiento, que pueden no estar disponibles para todos los idiomas o dominios. Esta dependencia de datos extensos puede limitar su aplicabilidad en entornos donde los datos son escasos o costosos de adquirir.
- Interpretabilidad: La naturaleza de caja negra de RoBERTa puede dificultar la interpretación de cómo el modelo llega a sus predicciones. Comprender el funcionamiento interno del modelo y diagnosticar errores o sesgos puede ser un desafío, especialmente en aplicaciones complejas o dominios sensibles.
- Desafíos de ajuste fino: Si bien ajustar RoBERTa para tareas específicas puede mejorar el rendimiento, requiere experiencia y experimentación para seleccionar los hiperparámetros, las técnicas de aumento de datos y las estrategias de entrenamiento correctas. Este proceso puede consumir mucho tiempo y recursos.
- Sesgo y equidad: Los modelos de lenguaje preentrenados como RoBERTa pueden heredar sesgos presentes en los datos de entrenamiento, lo que lleva a predicciones sesgadas o injustas. Abordar el sesgo y garantizar la equidad en los modelos de IA sigue siendo un desafío importante que requiere una cuidadosa curación de datos y consideraciones de diseño del modelo.
- Generalización fuera de distribución: RoBERTa puede tener dificultades para generalizar a datos fuera de distribución o manejar escenarios significativamente diferentes de sus datos de entrenamiento. Esta limitación puede afectar la robustez y confiabilidad de RoBERTa en aplicaciones del mundo real donde los cambios en la distribución de datos son comunes.
Para superar estas limitaciones, puedes elegir modelos más avanzados como Llama 3, que se lanzó recientemente. O puedes aplicar novita.ai LLM API key a tu sistema existente sin problemas y a bajo costo:

Modelos destacados por novita.ai LLM API

Conclusión
RoBERTa avanza significativamente en el procesamiento del lenguaje natural al construir sobre la base de BERT, utilizando un conjunto de datos de entrenamiento mucho más grande y técnicas mejoradas como el enmascaramiento dinámico y la eliminación del objetivo de predicción de la siguiente oración. Estas mejoras, junto con el uso de un tokenizador BPE a nivel de bytes y tamaños de lote más grandes, permiten que RoBERTa logre un rendimiento superior en diversas tareas de PLN. Si bien requiere recursos computacionales sustanciales y experiencia en ajuste fino, el impacto de RoBERTa en el campo es profundo, estableciendo nuevos puntos de referencia y sirviendo como un modelo versátil para la investigación y aplicaciones industriales.
novita.ai, la plataforma integral para la creatividad ilimitada que te brinda acceso a más de 100 API. Desde generación de imágenes y procesamiento de lenguaje hasta mejora de audio y manipulación de video, con un pago por uso económico, te libera de las molestias del mantenimiento de GPU mientras construyes tus propios productos. Pruébalo gratis.
Lectura recomendada
Novita AI LLM Inference Engine: el mayor rendimiento y la inferencia más barata disponible
