Présentation du modèle RoBERTa Base : un aperçu complet

Présentation du modèle RoBERTa Base : un aperçu complet

Introduction

RoBERTa (abréviation de « Robustly Optimized BERT Approach ») est une version avancée du modèle BERT (Bidirectional Encoder Representations from Transformers), créée par des chercheurs de Facebook AI. Comme BERT, RoBERTa est un modèle de langage basé sur les transformers qui utilise l’auto-attention pour analyser les séquences d’entrée et produire des représentations contextuelles des mots dans une phrase.

Dans cet article, nous examinerons RoBERTa plus en détail.

RoBERTa vs BERT

Une différence clé entre RoBERTa et BERT est que RoBERTa a été entraîné sur un ensemble de données nettement plus vaste et avec une procédure d’entraînement plus efficace. Plus précisément, RoBERTa a été entraîné sur 160 Go de texte, soit plus de 10 fois la taille de l’ensemble de données utilisé pour BERT. De plus, RoBERTa utilise une technique de masquage dynamique pendant l’entraînement, ce qui améliore la capacité du modèle à apprendre des représentations de mots plus robustes et généralisables.

RoBERTa a démontré des performances supérieures à celles de BERT et d’autres modèles de pointe sur diverses tâches de traitement du langage naturel, telles que la traduction automatique, la classification de textes et la réponse aux questions. Il a également servi de modèle fondateur pour de nombreux modèles NLP réussis et a gagné en popularité tant pour la recherche que pour les applications industrielles.

En résumé, RoBERTa est un modèle de langage puissant et efficace qui a apporté des contributions significatives au NLP, faisant progresser un large éventail d’applications.

Architecture du modèle RoBERTa

Le modèle RoBERTa partage la même architecture que le modèle BERT. Il s’agit d’une réimplémentation de BERT avec des modifications des hyperparamètres clés et des ajustements mineurs des embeddings.

Les procédures générales de pré-entraînement et de réglage fin pour BERT sont illustrées dans la Figure 1 ci-dessous. Dans BERT, la même architecture est utilisée à la fois pour le pré-entraînement et le réglage fin, à l’exception des couches de sortie. Les paramètres du modèle pré-entraîné sont utilisés pour initialiser les modèles pour diverses tâches en aval. Lors du réglage fin, tous les paramètres sont ajustés.

Architecture du modèle BERT

En revanche, RoBERTa n’utilise pas l’objectif de pré-entraînement de prédiction de phrase suivante. Au lieu de cela, il est entraîné avec des mini-lots beaucoup plus grands et des taux d’apprentissage plus élevés. RoBERTa utilise un schéma de pré-entraînement différent et remplace le vocabulaire BPE au niveau des caractères par un tokenizer BPE au niveau des octets (similaire à GPT-2). De plus, RoBERTa ne nécessite pas de définir quel token appartient à quel segment, car il n’a pas de token_type_ids. Les segments peuvent être facilement divisés en utilisant le token de séparation tokenizer.sep_token (ou <s>).

En outre, contrairement à l’ensemble de données de 16 Go utilisé à l’origine pour entraîner BERT, RoBERTa est entraîné sur un ensemble de données massif dépassant 160 Go de texte non compressé. Cet ensemble de données comprend les 16 Go de Wikipedia anglais et du Books Corpus utilisés dans BERT, ainsi que des données supplémentaires provenant du corpus WebText (38 Go), du jeu de données CommonCrawl News (63 millions d’articles, 76 Go) et des histoires de Common Crawl (31 Go). RoBERTa a été pré-entraîné en utilisant cet ensemble de données étendu et 1024 GPU V100 Tesla fonctionnant pendant une journée.

Avantages du modèle RoBERTa

RoBERTa a une architecture similaire à BERT, mais pour améliorer les performances, les auteurs ont apporté plusieurs modifications simples à l’architecture et à la procédure d’entraînement. Ces modifications incluent :

  1. Suppression de l’objectif de prédiction de phrase suivante (NSP) : Dans BERT, le modèle est entraîné à prédire si deux segments d’un document proviennent du même document ou de documents différents en utilisant une perte NSP auxiliaire. Les auteurs ont expérimenté des versions du modèle avec et sans la perte NSP et ont constaté que la suppression de la perte NSP correspondait ou améliorait légèrement les performances sur les tâches en aval.
  2. Entraînement avec des tailles de lot plus grandes et des séquences plus longues : BERT a été initialement entraîné pendant 1 million d’étapes avec une taille de lot de 256 séquences. RoBERTa a été entraîné avec 125 étapes de 2 000 séquences et 31 000 étapes avec 8 000 séquences par lot. Des lots plus grands améliorent la perplexité sur l’objectif de modélisation de langage masqué et la précision des tâches finales. Ils sont également plus faciles à paralléliser en utilisant l’entraînement parallèle distribué.
  3. Changement dynamique du motif de masquage : Dans BERT, le masquage est effectué une fois lors du prétraitement des données, ce qui donne un masque statique unique. Pour éviter cela, les données d’entraînement sont dupliquées et masquées 10 fois avec différentes stratégies sur 40 époques, ce qui donne 4 époques avec le même masque. Cette stratégie a été comparée au masquage dynamique, où différents masques sont générés à chaque fois que les données sont transmises au modèle.

Performances de RoBERTa

Le modèle RoBERTa a atteint des performances de pointe sur les tâches MNLI, QNLI, RTE, STS-B et RACE à l’époque, et a démontré des améliorations significatives des performances sur le benchmark GLUE. Avec un score de 88,5, RoBERTa a revendiqué la première place sur le classement GLUE.

Comparaison de BERT et des améliorations successives par rapport à lui

Comment utiliser RoBERTa

La bibliothèque Transformers de Huggingface propose une variété de modèles RoBERTa pré-entraînés de différentes tailles et pour diverses tâches. Dans cet article, nous nous concentrerons sur la façon de charger un modèle RoBERTa et d’effectuer une classification des émotions.

Nous utiliserons un modèle RoBERTa affiné sur un ensemble de données spécifique à la tâche, à savoir le modèle pré-entraîné « cardiffnlp/twitter-roberta-base-emotion » du hub Huggingface.

Tout d’abord, nous devons installer et importer tous les packages nécessaires et charger le modèle en utilisant RobertaForSequenceClassification (qui inclut une tête de classification) et le tokenizer en utilisant RobertaTokenizer.

!pip install -q transformers#Importation des packages nécessaires
import torch
from transformers import RobertaTokenizer, RobertaForSequenceClassification#Chargement du modèle et du tokenizer
model_name = “cardiffnlp/twitter-roberta-base-emotion”
tokenizer = RobertaTokenizer.from_pretrained(model_name)
model = RobertaForSequenceClassification.from_pretrained(model_name)#Tokenisation de l’entrée
inputs = tokenizer(“I love my cat”, return_tensors=“pt”)#Récupération des logits et utilisation pour prédire l’émotion sous-jacente
with torch.no_grad():
logits = model(**inputs).logitspredicted_class_id = logits.argmax().item()model.config.id2label[predicted_class_id]

Output: Optimism

La sortie est « Optimism », ce qui est correct par rapport aux étiquettes prédéfinies du modèle de classification que nous avons utilisé. Nous pouvons utiliser un autre modèle pré-entraîné ou ajuster un modèle pour obtenir des résultats avec des étiquettes plus appropriées.

Résultats d’évaluation de RoBERTa

Entraînement avec masquage dynamique

Dans l’implémentation originale de BERT, le masquage a lieu lors du prétraitement des données, ce qui conduit à un seul masque statique. Cette méthode a été comparée au masquage dynamique, où un nouveau motif de masquage est généré à chaque fois qu’une séquence est entrée dans le modèle. Le masquage dynamique a montré des performances comparables ou légèrement supérieures par rapport au masquage statique.

Comparaison entre masquage statique et dynamique pour BERT

Sur la base des résultats mentionnés ci-dessus, l’approche de masquage dynamique est utilisée pour le pré-entraînement de RoBERTa.

Phrases complètes sans perte NSP

La comparaison entre l’entraînement sans la perte NSP et l’entraînement avec des blocs de texte provenant d’un seul document (doc-sentences) a révélé que cette configuration surpasse les résultats publiés initialement pour BERTBASE. De plus, la suppression de la perte NSP correspond ou améliore légèrement les performances sur les tâches en aval.

Tableau illustrant les performances de RoBERTa avec et sans perte NSP

Bien qu’il ait été observé que la limitation des séquences à un seul document (DOC-SENTENCES) donne des performances légèrement meilleures que l’incorporation de séquences provenant de plusieurs documents (FULL-SENTENCES), RoBERTa opte pour l’utilisation de FULL-SENTENCES pour faciliter la comparaison, car le format DOC-SENTENCES conduit à des tailles de lot variables.

Entraînement avec de grands lots

L’entraînement avec de grandes tailles de lot accélère l’optimisation et améliore la précision des tâches. De plus, l’entraînement parallèle distribué facilite la parallélisation des grands lots, améliorant encore l’efficacité. Lorsqu’elles sont correctement ajustées, les grandes tailles de lot peuvent améliorer les performances du modèle sur une tâche donnée.

Comparaison des performances de RoBERTa sur différentes tâches avec des tailles de lot variables

Un BPE plus grand au niveau des octets

L’encodage par paires d’octets (BPE) combine des aspects des représentations au niveau des caractères et des mots, permettant de traiter efficacement les vastes vocabulaires typiques des corpus de langage naturel. RoBERTa se distingue de BERT en utilisant un vocabulaire BPE plus grand au niveau des octets, composé de 50 000 unités de sous-mots, sans nécessiter de prétraitement supplémentaire ni de tokénisation d’entrée.

Naviguer dans les limitations de RoBERTa

Bien que RoBERTa soit un modèle puissant, il n’est pas exempt de limitations. En voici quelques-unes :

  1. Ressources de calcul : L’entraînement et le réglage fin de RoBERTa nécessitent des ressources de calcul importantes, y compris des GPU puissants et de grandes quantités de mémoire. Cela peut rendre difficile pour les individus ou les organisations disposant de ressources limitées d’utiliser RoBERTa efficacement.
  2. Spécificité du domaine : Les modèles de langage pré-entraînés comme RoBERTa peuvent ne pas fonctionner de manière optimale sur des tâches ou des ensembles de données spécifiques à un domaine sans réglage fin supplémentaire. Ils peuvent nécessiter un entraînement supplémentaire sur des données spécifiques au domaine pour atteindre le niveau de performance souhaité.
  3. Efficacité des données : RoBERTa et les modèles similaires nécessitent de grandes quantités de données pour le pré-entraînement, ce qui peut ne pas être disponible pour toutes les langues ou tous les domaines. Cette dépendance à des données étendues peut limiter leur applicabilité dans des contextes où les données sont rares ou coûteuses à acquérir.
  4. Interprétabilité : La nature de boîte noire de RoBERTa peut rendre difficile l’interprétation de la façon dont le modèle parvient à ses prédictions. Comprendre le fonctionnement interne du modèle et diagnostiquer les erreurs ou les biais peut être difficile, en particulier dans des applications complexes ou des domaines sensibles.
  5. Défis du réglage fin : Bien que le réglage fin de RoBERTa pour des tâches spécifiques puisse améliorer les performances, il nécessite une expertise et des expérimentations pour sélectionner les bons hyperparamètres, les techniques d’augmentation des données et les stratégies d’entraînement. Ce processus peut être long et intensif en ressources.
  6. Biais et équité : Les modèles de langage pré-entraînés comme RoBERTa peuvent hériter des biais présents dans les données d’entraînement, conduisant à des prédictions biaisées ou injustes. Aborder les biais et garantir l’équité dans les modèles d’IA reste un défi majeur, nécessitant une curation minutieuse des données et des considérations de conception du modèle.
  7. Généralisation hors distribution : RoBERTa peut avoir du mal à généraliser à des données hors distribution ou à gérer des scénarios significativement différents de ses données d’entraînement. Cette limitation peut avoir un impact sur la robustesse et la fiabilité de RoBERTa dans des applications réelles où les changements de distribution des données sont courants.

Pour surmonter ces limitations, vous pouvez choisir des modèles plus avancés comme Llama 3, qui a été récemment publié. Ou vous pouvez appliquer la clé API LLM de novita.ai à votre système existant de manière transparente et à faible coût :

Modèles proposés par l’API LLM de novita.ai

Conclusion

RoBERTa fait progresser de manière significative le traitement du langage naturel en s’appuyant sur les fondations de BERT, en utilisant un ensemble de données d’entraînement beaucoup plus vaste et des techniques améliorées comme le masquage dynamique et la suppression de l’objectif de prédiction de phrase suivante. Ces améliorations, ainsi que l’utilisation d’un tokenizer BPE au niveau des octets et de tailles de lot plus grandes, permettent à RoBERTa d’atteindre des performances supérieures sur diverses tâches NLP. Bien qu’il nécessite des ressources de calcul substantielles et une expertise en réglage fin, l’impact de RoBERTa sur le domaine est profond, établissant de nouveaux benchmarks et servant de modèle polyvalent pour la recherche et les applications industrielles.

novita.ai, la plateforme tout-en-un pour une créativité illimitée qui vous donne accès à plus de 100 API. De la génération d’images au traitement du langage, en passant par l’amélioration audio et la manipulation vidéo, à un coût modéré avec un paiement à l’utilisation, elle vous libère de la maintenance des GPU tout en construisant vos propres produits. Essayez-la gratuitement.

Lectures recommandées

Quelle est la différence entre LLM et GPT

Prédictions du classement LLM 2024 révélées

Moteur d’inférence LLM Novita AI : le plus grand débit et l’inférence la moins chère disponible