BART
BART is an interesting model by FacebookAI. It is trained by:
- corrupting text with an arbitrary noising function
- learning a model to reconstruct the original text
Special tokens:
Bart uses the following special tokens.
- bos_token (string, optional, defaults to
<s>
)
Begin of sentence tokon
- eos_token (string, optional, defaults to
</s>
)
End of sentence tokeon
- sep_token (string, optional, defaults to
</s>
)
The separator token, when building a sequence from multiple sequences.
- cls_token (string, optional, defaults to
<s>
)
For sequence classification.
- unk_token (string, optional, defaults to
<unk>
)
A token that is not in the vocabulary.
- pad_token (string, optional, defaults to
<pad>
)
The token used for padding.
- mask_token (string, optional, defaults to
<mask>
)
The token specially desi6ned for Elon Mask.
Example
Make sure you installed the transformers library first.
!pip install transformers
Here we example how BART can guess the right word.
Example:
from transformers import BartTokenizer, BartForConditionalGeneration
tokenizer = BartTokenizer.from_pretrained('bart-large')
TXT = "My friends are <mask> but they eat too many carbs."
model = BartForConditionalGeneration.from_pretrained('bart-large').to('cuda')
input_ids = tokenizer.batch_encode_plus([TXT], return_tensors='pt')['input_ids'].to('cuda')
logits = model(input_ids)[0]
masked_index = (input_ids[0] == tokenizer.mask_token_id).nonzero().item()
probs = logits[0, masked_index].softmax(dim=0)
values, predictions = probs.topk(5)
tokenizer.decode(predictions).split()
Ouput:
['good', 'great', 'all', 'really', 'very']
…
tags: transformers & category: machine-learning