Este repositorio se entiende como un espacio para centralizar los transformadores rumanos y proporcionar una evaluación uniforme. Las contribuciones son bienvenidas.
Estamos usando Transformers Lib de Huggingface, una herramienta increíble para NLP. ¿Qué es Bert que preguntas? Aquí hay un artículo claro y condensado sobre lo que es Bert y lo que puede hacer. También vea este resumen de diferentes modelos de transformadores.
Lo que sigue es la lista de modelos de transformadores rumanos, tanto modelos de lenguaje enmascarados como condicionales.
¡No dude en abrir un problema y agregar su modelo/evaluación aquí!
| Modelo | Tipo | Tamaño | Artículo/cita/fuente | Pre-entrenado / ajustado | Fecha de lanzamiento |
|---|---|---|---|---|---|
| Dumitrescustefan/Bert-Base-Romanian-Cased-V1 | Bert | 124m | PDF / citar | Pre-entrenado | Abr, 2020 |
| Dumitrescustefan/Bert-Base-Romanian-Oncoed-V1 | Bert | 124m | PDF / citar | Pre-entrenado | Abr, 2020 |
| Racai/Distillbert-Base-Romanian-Cased | Distilbert | 81m | - | Pre-entrenado | Abr, 2021 |
| ReaderBench/Robert-Small | Bert | 19m | Pre-entrenado | Mayo de 2021 | |
| ReaderBench/Robert-Base | Bert | 114m | Pre-entrenado | Mayo de 2021 | |
| ReaderBench/Robert-Large | Bert | 341m | Pre-entrenado | Mayo de 2021 | |
| Dumitrescustefan/Bert-Base-Romanian-Ner | Bert | 124m | Espacio HF | Reconocimiento de entidad nombrado en Ronecv2 | Enero de 2022 |
| Snisioi/bert-legal-romanian-caded-v1 | Bert | 124m | - | Documentos legales en Marcellv2 | Enero de 2022 |
| Readerbench/Jurbert-Base | Bert | 111m | Documentos legales | Oct, 2021 | |
| ReaderBench/Jurbert-Large | Bert | 337m | Documentos legales | Oct, 2021 |
| Modelo | Tipo | Tamaño | Artículo/cita/fuente | Pre-entrenado / ajustado | Fecha de lanzamiento |
|---|---|---|---|---|---|
| Dumitrescustefan/GPT-Neo-Romanian-780m | Gpt-neo | 780m | aún no / espacio HF | Pre-entrenado | Sep, 2022 |
| ReaderBench/Rogpt2-Base | GPT2 | 124m | Pre-entrenado | Jul, 2021 | |
| ReaderBench/Rogpt2-Medio | GPT2 | 354m | Pre-entrenado | Jul, 2021 | |
| ReaderBench/Rogpt2-Large | GPT2 | 774m | Pre-entrenado | Jul, 2021 |
NUEVO: Echa un vistazo a este espacio HF para jugar con modelos generativos rumanos: https://huggingface.co/spaces/dumitritescustefan/romanian-text-generation
Los modelos se evalúan utilizando el script público de Colab disponible aquí. Todos los resultados informados son la puntuación promedio de 5 corridas, utilizando los mismos parámetros. Para modelos más grandes, si era posible, se simuló un tamaño de lote más grande por gradientes acumulados, de modo que todos los modelos deberían tener el mismo tamaño de lote efectivo. Solo se evalúan los modelos estándar (no finales para una tarea en particular) y que podrían caber en 16 GB de RAM.
Las pruebas cubren los siguientes campos y, para la brevedad, seleccionamos una sola métrica de cada campo:
| Modelo | Tipo | Tamaño | Ner/em_strict | Rosts/Pearson | Ro-Pos-Tagger/Upos F1 | Redv2/hamming_loss |
|---|---|---|---|---|---|---|
| Dumitrescustefan/Bert-Base-Romanian-Cased-V1 | Bert | 124m | 0.8815 | 0.7966 | 0.982 | 0.1039 |
| Dumitrescustefan/Bert-Base-Romanian-Oncoed-V1 | Bert | 124m | 0.8572 | 0.8149 | 0.9826 | 0.1038 |
| Racai/Distillbert-Base-Romanian-Cased | 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 |
| Modelo | Tipo | Tamaño | Ner/em_strict | Rosts/Pearson | Ro-Pos-Tagger/Upos F1 | Redv2/hamming_loss | Perplejidad |
|---|---|---|---|---|---|---|---|
| ReaderBench/Rogpt2-Base | GPT2 | 124m | 0.6865 | 0.7963 | 0.9009 | 0.1068 | 52.34 |
| ReaderBench/Rogpt2-Medio | GPT2 | 354m | 0.7123 | 0.7979 | 0.9098 | 0.114 | 31.26 |
Usando Transformers LIB de Huggingface, instanciar un modelo y reemplazar el nombre del modelo según sea necesario. Luego use un cabezal de modelo apropiado dependiendo de su tarea. Aquí hay algunos ejemplos:
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("Ş", "Ș")
Dé un aviso a un modelo generativo y déjelo escribir:
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 ))PD puede probar todos los modelos generativos aquí: https://huggingface.co/spaces/dumitritrescustefan/romanian-text-generation