Este repo é um espaço para centralizar transformadores romenos e fornecer uma avaliação uniforme. Contribuições são bem -vindas.
Estamos usando os Transformers Lib da Huggingface, uma ferramenta incrível para a PNL. O que é Bert você pergunta? Aqui está um artigo claro e condensado sobre o que é Bert e o que pode fazer. Confira também este resumo de diferentes modelos de transformadores.
O que se segue é a lista de modelos de transformadores romenos, modelos de linguagem mascarados e condicionais.
Sinta -se à vontade para abrir um problema e adicionar seu modelo/avaliação aqui!
| Modelo | Tipo | Tamanho | Artigo/citação/fonte | Pré-treinado / ajustado | Data de lançamento |
|---|---|---|---|---|---|
| Dumitrescustefan/Bert-Base-Romano-Case-V1 | Bert | 124m | Pdf / citar | Pré-treinado | Abr, 2020 |
| Dumitrescustefan/Bert-Base-Romano-Baseado-V1 | Bert | 124m | Pdf / citar | Pré-treinado | Abr, 2020 |
| Racai/Distillbert-Base-Romaniano | Distilbert | 81m | - | Pré-treinado | Abril de 2021 |
| Readerbench/Robert-Small | Bert | 19m | Pré-treinado | Maio de 2021 | |
| Readerbench/Robert-Base | Bert | 114m | Pré-treinado | Maio de 2021 | |
| Readerbench/Robert-Large | Bert | 341m | Pré-treinado | Maio de 2021 | |
| Dumitrescustefan/Bert-Base-Romanian-ir | Bert | 124m | HF Space | Reconhecimento de entidade nomeado no ronecv2 | Jan, 2022 |
| Snisioi/Bert-Legal-Romano-Case-V1 | Bert | 124m | - | Documentos legais em Marcellv2 | Jan, 2022 |
| Readerbench/Jurbert-Base | Bert | 111m | Documentos legais | Out, 2021 | |
| Readerbench/Jurbert-Large | Bert | 337m | Documentos legais | Out, 2021 |
| Modelo | Tipo | Tamanho | Artigo/citação/fonte | Pré-treinado / ajustado | Data de lançamento |
|---|---|---|---|---|---|
| Dumitrescustefan/Gpt-Neo-Romanian-780m | GPT-Neo | 780m | ainda não / hf espaço | Pré-treinado | Set, 2022 |
| Readerbench/ROGPT2-BASE | GPT2 | 124m | Pré-treinado | Jul, 2021 | |
| Readerbench/ROGPT2-MEDIUM | GPT2 | 354m | Pré-treinado | Jul, 2021 | |
| Readerbench/Rogpt2-Large | GPT2 | 774m | Pré-treinado | Jul, 2021 |
NOVO: Confira este espaço de HF para brincar com modelos generativos romenos: https://huggingface.co/spaces/dumitrescustefan/Romanian-text-generação
Os modelos são avaliados usando o script público colab disponível aqui. Todos os resultados relatados são a pontuação média de 5 execuções, usando os mesmos parâmetros. Para modelos maiores, se foi possível, um tamanho maior em lote foi simulado pela acumulação de gradientes, de modo que todos os modelos tenham o mesmo tamanho eficaz do lote. Somente modelos padrão (não finetunados para uma tarefa específica) e que podem se encaixar em 16 GB de RAM são avaliados.
Os testes cobrem os seguintes campos e, para a brevidade, selecionamos uma única métrica de cada campo:
| Modelo | Tipo | Tamanho | NER/EM_STRITT | ROSts/Pearson | Ro-poss-tagger/ups f1 | Redv2/hamming_loss |
|---|---|---|---|---|---|---|
| Dumitrescustefan/Bert-Base-Romano-Case-V1 | Bert | 124m | 0,8815 | 0,7966 | 0,982 | 0.1039 |
| Dumitrescustefan/Bert-Base-Romano-Baseado-V1 | Bert | 124m | 0,8572 | 0,8149 | 0,9826 | 0,1038 |
| Racai/Distillbert-Base-Romaniano | 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 | Tamanho | NER/EM_STRITT | ROSts/Pearson | Ro-poss-tagger/ups f1 | Redv2/hamming_loss | Perplexidade |
|---|---|---|---|---|---|---|---|
| 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 |
Usando os Transformers da Huggingface, instancie um modelo e substitua o nome do modelo conforme necessário. Em seguida, use uma cabeça de modelo apropriada, dependendo da sua tarefa. Aqui estão alguns exemplos:
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ê um aviso a um modelo generativo e deixe escrever:
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 Você pode testar todos os modelos generativos aqui: https://huggingface.co/spaces/dumitrescustefan/Romanian-text-generação