Ce repo est conçu comme un espace pour centraliser les transformateurs roumains et pour fournir une évaluation uniforme. Les contributions sont les bienvenues.
Nous utilisons Transformers Lib de HuggingFace, un outil génial pour NLP. Que demandez-vous Bert? Voici un article clair et condensé sur ce qu'est Bert et ce qu'il peut faire. Consultez également ce résumé de différents modèles de transformateurs.
Ce qui suit est la liste des modèles de transformateurs roumains, à la fois des modèles de langage masqué et conditionnel.
N'hésitez pas à ouvrir un problème et à ajouter votre modèle / évaluation ici!
| Modèle | Taper | Taille | Article / citation / source | Pré-formé / affiné | Date de sortie |
|---|---|---|---|---|---|
| Dumitrescustefan / Bert-Base-Roumanie-Cased-V1 | Bert | 124m | Pdf / citer | Pré-formé | Avril 2020 |
| Dumitrescustefan / Bert-Base-Roumanie-Oclélé-V1 | Bert | 124m | Pdf / citer | Pré-formé | Avril 2020 |
| racai / distillbert-base-romain à base | Distilbert | 81m | - | Pré-formé | Avril 2021 |
| ReaderBench / Robert-Small | Bert | 19m | Pré-formé | Mai 2021 | |
| ReaderBench / Robert-base | Bert | 114m | Pré-formé | Mai 2021 | |
| ReaderBench / Robert-Garg | Bert | 341m | Pré-formé | Mai 2021 | |
| Dumitrescustefan / Bert-Base-Roumane-NER | Bert | 124m | Espace HF | Reconnaissance de l'entité nommée sur RONECV2 | Janvier 2022 |
| SNISIOI / BERT-LEGAL-RUMANIAN-CASTING-V1 | Bert | 124m | - | Documents juridiques sur Marcellv2 | Janvier 2022 |
| ReaderBench / Jurbert-base | Bert | 111m | Documents juridiques | Octobre 2021 | |
| ReaderBench / Jurbert-Garg | Bert | 337m | Documents juridiques | Octobre 2021 |
| Modèle | Taper | Taille | Article / citation / source | Pré-formé / affiné | Date de sortie |
|---|---|---|---|---|---|
| Dumitrescustefan / GPT-Neo-Romanian-780m | Gpt-neo | 780m | pas encore / hf espace | Pré-formé | Sept. 2022 |
| ReaderBench / Rogpt2-base | Gpt2 | 124m | Pré-formé | Jul, 2021 | |
| ReaderBench / Rogpt2-Medium | Gpt2 | 354m | Pré-formé | Jul, 2021 | |
| ReaderBench / Rogpt2-Gar | Gpt2 | 774m | Pré-formé | Jul, 2021 |
NOUVEAU: Découvrez cet espace HF pour jouer avec des modèles génératifs roumains: https://huggingface.co/spaces/dumitrecustefan/romanian-text-generation
Les modèles sont évalués à l'aide du script Colab public disponible ici. Tous les résultats rapportés sont le score moyen de 5 exécutions, en utilisant les mêmes paramètres. Pour les modèles plus grands, si cela était possible, une taille par lots plus grande a été simulée en accumulant des gradients, de sorte que tous les modèles devraient avoir la même taille de lot efficace. Seuls les modèles standard (non finetunés pour une tâche particulière) et qui pourraient tenir dans 16 Go de RAM sont évalués.
Les tests couvrent les champs suivants et, par concision, nous sélectionnons une seule métrique dans chaque champ:
| Modèle | Taper | Taille | Ner / em_strict | Rosts / Pearson | Ro-Pos-Tagger / UPOS F1 | Redv2 / hamming_loss |
|---|---|---|---|---|---|---|
| Dumitrescustefan / Bert-Base-Roumanie-Cased-V1 | Bert | 124m | 0,8815 | 0,7966 | 0,982 | 0.1039 |
| Dumitrescustefan / Bert-Base-Roumanie-Oclélé-V1 | Bert | 124m | 0,8572 | 0,8149 | 0,9826 | 0.1038 |
| racai / distillbert-base-romain à base | Distilbert | 81m | 0,8573 | 0,7285 | 0,9637 | 0.1119 |
| ReaderBench / Robert-Small | Bert | 19m | 0,8512 | 0,7827 | 0,9794 | 0.1085 |
| ReaderBench / Robert-base | Bert | 114m | 0,8768 | 0,8102 | 0.9819 | 0.1041 |
| Modèle | Taper | Taille | Ner / em_strict | Rosts / Pearson | Ro-Pos-Tagger / UPOS F1 | Redv2 / hamming_loss | Perplexité |
|---|---|---|---|---|---|---|---|
| ReaderBench / Rogpt2-base | Gpt2 | 124m | 0,6865 | 0,7963 | 0.9009 | 0,1068 | 52.34 |
| ReaderBench / Rogpt2-Medium | Gpt2 | 354m | 0,7123 | 0,7979 | 0,9098 | 0,114 | 31.26 |
En utilisant les transformateurs de HuggingFace, Instancier un modèle et remplacez le nom du modèle si nécessaire. Utilisez ensuite une tête de modèle appropriée en fonction de votre tâche. Voici quelques exemples:
from transformers import AutoTokenizer , AutoModel
import torch
# load tokenizer and model
tokenizer = AutoTokenizer . from_pretrained ( "dumitrescustefan/bert-base-romanian-cased-v1" )
model = AutoModel . from_pretrained ( "dumitrescustefan/bert-base-romanian-cased-v1" )
# tokenize a sentence and run through the model
input_ids = tokenizer . encode ( "Acesta este un test." , add_special_tokens = True , return_tensors = "pt" )
outputs = model ( input_ids )
# get encoding
last_hidden_states = outputs [ 0 ] # The last hidden-state is the first element of the output tuple text = text.replace("ţ", "ț").replace("ş", "ș").replace("Ţ", "Ț").replace("Ş", "Ș")
Donnez une invite à un modèle génératif et laissez-le écrire:
tokenizer = AutoTokenizer . from_pretrained ( "dumitrescustefan/gpt-neo-romanian-125m" )
model = AutoModelForCausalLM . from_pretrained ( "dumitrescustefan/gpt-neo-romanian-125m" )
input_ids = tokenizer . encode ( "Cine a fost Mihai Eminescu? A fost" , return_tensors = 'pt' )
text = model . generate ( input_ids , max_length = 128 , do_sample = True , no_repeat_ngram_size = 2 , top_k = 50 , top_p = 0.9 , early_stopping = True )
print ( tokenizer . decode ( text [ 0 ], skip_special_tokens = True ))PS Vous pouvez tester tous les modèles génératifs ici: https://huggingface.co/spaces/dumitrecustefan/romanian-text-teneration