Funnel Transformer xlarge model (B10-10-10 with decoder)
Pretrained model on English language using a similar objective objective as
ELECTRA. It was introduced in
this paper and first released in
this repository. This model is uncased: it does not make a difference
between english and English.
Disclaimer: The team releasing Funnel Transformer did not write a model card for this model so this model card has been
written by the Hugging Face team.
Model description
Funnel Transformer is a transformers model pretrained on a large corpus of English data in a self-supervised fashion. This means it
was pretrained on the raw texts only, with no humans labelling them in any way (which is why it can use lots of
publicly available data) with an automatic process to generate inputs and labels from those texts.
More precisely, a small language model corrupts the input texts and serves as a generator of inputs for this model, and
the pretraining objective is to predict which token is an original and which one has been replaced, a bit like a GAN training.
This way, the model learns an inner representation of the English language that can then be used to extract features
useful for downstream tasks: if you have a dataset of labeled sentences for instance, you can train a standard
classifier using the features produced by the BERT model as inputs.
Intended uses & limitations
You can use the raw model to extract a vector representation of a given text, but it's mostly intended to
be fine-tuned on a downstream task. See the
model hub to look for
fine-tuned versions on a task that interests you.
Note that this model is primarily aimed at being fine-tuned on tasks that use the whole sentence (potentially masked)
to make decisions, such as sequence classification, token classification or question answering. For tasks such as text
generation you should look at model like GPT2.
How to use
Here is how to use this model to get the features of a given text in PyTorch:
1from transformers import FunnelTokenizer, FunnelModel
2tokenizer = FunnelTokenizer.from_pretrained("funnel-transformer/xlarge")
3model = FunneModel.from_pretrained("funnel-transformer/xlarge")
4text = "Replace me by any text you'd like."
5encoded_input = tokenizer(text, return_tensors='pt')
6output = model(**encoded_input)
and in TensorFlow:
1from transformers import FunnelTokenizer, TFFunnelModel
2tokenizer = FunnelTokenizer.from_pretrained("funnel-transformer/xlarge")
3model = TFFunnelModel.from_pretrained("funnel-transformer/xlarge")
4text = "Replace me by any text you'd like."
5encoded_input = tokenizer(text, return_tensors='tf')
6output = model(encoded_input)
Training data
The BERT model was pretrained on:
- BookCorpus, a dataset consisting of 11,038 unpublished books,
- English Wikipedia (excluding lists, tables and headers),
- Clue Web, a dataset of 733,019,372 English web pages,
- GigaWord, an archive of newswire text data,
- Common Crawl, a dataset of raw web pages.
BibTeX entry and citation info
1@misc{dai2020funneltransformer,
2 title={Funnel-Transformer: Filtering out Sequential Redundancy for Efficient Language Processing},
3 author={Zihang Dai and Guokun Lai and Yiming Yang and Quoc V. Le},
4 year={2020},
5 eprint={2006.03236},
6 archivePrefix={arXiv},
7 primaryClass={cs.LG}
8}