par funnel-transformer
Open source · 116k downloads · 6 likes
Le modèle *small* est une version allégée du Funnel Transformer, un modèle de langage préentraîné sur de vastes corpus de texte en anglais selon une approche auto-supervisée inspirée d’ELECTRA. Il apprend à distinguer les tokens originaux des tokens corrompus par un petit modèle générateur, ce qui lui permet de développer une compréhension fine de la langue sans annotation humaine. Principalement conçu pour être affiné sur des tâches spécifiques comme la classification de séquences, l’analyse de tokens ou la réponse à des questions, il excelle dans l’extraction de représentations vectorielles utiles pour des applications en traitement automatique du langage. Contrairement aux modèles génératifs comme GPT, il ne convient pas à la production de texte libre. Son approche innovante, combinant efficacité et performance, en fait un outil polyvalent pour des projets nécessitant une analyse sémantique approfondie.
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.
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.
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.
Here is how to use this model to get the features of a given text in PyTorch:
from transformers import FunnelTokenizer, FunnelModel
tokenizer = FunnelTokenizer.from_pretrained("funnel-transformer/small")
model = FunneModel.from_pretrained("funnel-transformer/small")
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
and in TensorFlow:
from transformers import FunnelTokenizer, TFFunnelModel
tokenizer = FunnelTokenizer.from_pretrained("funnel-transformer/small")
model = TFFunnelModel.from_pretrained("funnel-transformer/small")
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
The BERT model was pretrained on:
@misc{dai2020funneltransformer,
title={Funnel-Transformer: Filtering out Sequential Redundancy for Efficient Language Processing},
author={Zihang Dai and Guokun Lai and Yiming Yang and Quoc V. Le},
year={2020},
eprint={2006.03236},
archivePrefix={arXiv},
primaryClass={cs.LG}
}