Transformers documentation
BERTweet
Ce modèle a été publié dans HF papers le 2020-05-20 et ajouté à Hugging Face Transformers le 2020-11-16.
BERTweet
BERTweet
BERTweet partage la même architecture que BERT-base, mais il est pré-entraîné comme RoBERTa sur des tweets en anglais. Il obtient de très bons résultats sur les tâches liées aux tweets, telles que l’annotation morphosyntaxique, la reconnaissance d’entités nommées et la classification de texte.
Vous pouvez trouver tous les points de contrôle originaux de BERTweet sous l'organisation VinAI Research.
Reportez-vous à la documentation BERT pour plus d'exemples sur l'application de BERTweet à différentes tâches linguistiques.
L'exemple ci-dessous montre comment prédire le jeton <mask> avec Pipeline, AutoModel et depuis la ligne de commande.
from transformers import pipeline
pipeline = pipeline(
task="fill-mask",
model="vinai/bertweet-base",
device=0
)
pipeline("Plants create <mask> through a process known as photosynthesis.")import torch
from transformers import AutoModelForMaskedLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(
"vinai/bertweet-base",
)
model = AutoModelForMaskedLM.from_pretrained(
"vinai/bertweet-base",
device_map="auto"
)
inputs = tokenizer("Plants create <mask> through a process known as photosynthesis.", return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model(**inputs)
predictions = outputs.logits
masked_index = torch.where(inputs['input_ids'] == tokenizer.mask_token_id)[1]
predicted_token_id = predictions[0, masked_index].argmax(dim=-1)
predicted_token = tokenizer.decode(predicted_token_id)
print(f"The predicted token is: {predicted_token}")Notes
- Utilisez AutoTokenizer ou BertweetTokenizer, car il est préchargé avec un vocabulaire personnalisé adapté aux jetons spécifiques aux tweets, tels que les hashtags (#), les mentions (@), les emojis et les abréviations courantes. Assurez-vous également d'installer la bibliothèque emoji.
- Les entrées doivent être remplies à droite (
padding="max_length") car BERT utilise des embeddings de position absolus.
BertweetTokenizer
classe transformers.BertweetTokenizer
< source >( vocab_filemerges_filenormalization = Falsebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'**kwargs )
Paramètres
- vocab_file (
str) — Chemin vers le fichier de vocabulaire. - merges_file (
str) — Chemin vers le fichier de fusions. - normalization (
bool, facultatif, valeur par défautFalse) — Indique s'il faut appliquer une prétraitement de normalisation. - bos_token (
str, facultatif, défaut"<s>") — Le jeton de début de séquence utilisé lors de la préformation. Peut être utilisé comme jeton de classifieur de séquence.Lors de la construction d'une séquence à l'aide de jetons spéciaux, ce n'est pas ce jeton qui est utilisé pour le début de la séquence. Le jeton utilisé est
cls_token. - eos_token (
str, facultatif, défaut :"</s>") — Le jeton de fin de séquence. Lors de la construction d'une séquence à l'aide de jetons spéciaux, ce n'est pas le jeton utilisé pour la fin de séquence. Le jeton utilisé est sep_token.Lors de la construction d'une séquence à l'aide de jetons spéciaux, ce n'est pas ce jeton qui est utilisé pour la fin de séquence. Le jeton utilisé est le
sep_token. - sep_token (
str, facultatif, par défaut"</s>") — Le jeton séparateur, utilisé lors de la construction d'une séquence à partir de plusieurs séquences, par exemple deux séquences pour la classification de séquences ou un texte et une question pour le question answering. Il est également utilisé comme dernier jeton d'une séquence construite avec des jetons spéciaux. - cls_token (
str, facultatif, par défaut"<s>") — Le jeton de classification utilisé lors de la classification de séquence (classification de la séquence entière plutôt que la classification par jeton). C'est le premier jeton de la séquence lorsqu'elle est construite avec des jetons spéciaux. - unk_token (
str, facultatif, par défaut"<unk>") — Le jeton inconnu. Un jeton qui n'est pas dans le vocabulaire ne peut pas être converti en identifiant et est remplacé par ce jeton. - pad_token (
str, facultatif, par défaut"<pad>") — Le jeton utilisé pour le bourrage, par exemple lors du regroupement de séquences de longueurs différentes. - mask_token (
str, facultatif, par défaut"<mask>") — Le jeton utilisé pour masquer les valeurs. C'est le jeton utilisé lors de l'entraînement de ce modèle avec le modélisation de langage masquée. C'est le jeton que le modèle cherchera à prédire.
Construit un tokeniseur BERTweet, en utilisant le Byte-Pair-Encoding.
Ce tokenizer hérite de PreTrainedTokenizer, qui contient la plupart des méthodes principales. Les utilisateurs doivent se référer à cette superclasse pour plus d'informations sur ces méthodes.
Charge un dictionnaire existant depuis un fichier texte et ajoute ses symboles à cette instance.
Convertit une séquence de jetons (chaîne de caractères) en une seule chaîne.
Normaliser les jetons dans un Tweet
Normaliser un Tweet brut
Enregistrez les fichiers de vocabulaire et de fusions dans un répertoire.