|
--- |
|
language: pt |
|
license: mit |
|
tags: |
|
- bert |
|
- pytorch |
|
datasets: |
|
- brWaC |
|
--- |
|
|
|
# BERTimbau Large (aka "bert-large-portuguese-cased") |
|
|
|
![Bert holding a berimbau](https://imgur.com/JZ7Hynh.jpg) |
|
|
|
## Introduction |
|
|
|
BERTimbau Large is a pretrained BERT model for Brazilian Portuguese that achieves state-of-the-art performances on three downstream NLP tasks: Named Entity Recognition, Sentence Textual Similarity and Recognizing Textual Entailment. It is available in two sizes: Base and Large. |
|
|
|
For further information or requests, please go to [BERTimbau repository](https://github.com/neuralmind-ai/portuguese-bert/). |
|
|
|
## Available models |
|
|
|
| Model | Arch. | #Layers | #Params | |
|
| ---------------------------------------- | ---------- | ------- | ------- | |
|
| `neuralmind/bert-base-portuguese-cased` | BERT-Base | 12 | 110M | |
|
| `neuralmind/bert-large-portuguese-cased` | BERT-Large | 24 | 335M | |
|
|
|
## Usage |
|
|
|
```python |
|
from transformers import AutoTokenizer # Or BertTokenizer |
|
from transformers import AutoModelForPreTraining # Or BertForPreTraining for loading pretraining heads |
|
from transformers import AutoModel # or BertModel, for BERT without pretraining heads |
|
|
|
model = AutoModelForPreTraining.from_pretrained('neuralmind/bert-large-portuguese-cased') |
|
tokenizer = AutoTokenizer.from_pretrained('neuralmind/bert-large-portuguese-cased', do_lower_case=False) |
|
``` |
|
|
|
### Masked language modeling prediction example |
|
|
|
```python |
|
from transformers import pipeline |
|
|
|
pipe = pipeline('fill-mask', model=model, tokenizer=tokenizer) |
|
|
|
pipe('Tinha uma [MASK] no meio do caminho.') |
|
# [{'score': 0.5054386258125305, |
|
# 'sequence': '[CLS] Tinha uma pedra no meio do caminho. [SEP]', |
|
# 'token': 5028, |
|
# 'token_str': 'pedra'}, |
|
# {'score': 0.05616172030568123, |
|
# 'sequence': '[CLS] Tinha uma curva no meio do caminho. [SEP]', |
|
# 'token': 9562, |
|
# 'token_str': 'curva'}, |
|
# {'score': 0.02348282001912594, |
|
# 'sequence': '[CLS] Tinha uma parada no meio do caminho. [SEP]', |
|
# 'token': 6655, |
|
# 'token_str': 'parada'}, |
|
# {'score': 0.01795753836631775, |
|
# 'sequence': '[CLS] Tinha uma mulher no meio do caminho. [SEP]', |
|
# 'token': 2606, |
|
# 'token_str': 'mulher'}, |
|
# {'score': 0.015246033668518066, |
|
# 'sequence': '[CLS] Tinha uma luz no meio do caminho. [SEP]', |
|
# 'token': 3377, |
|
# 'token_str': 'luz'}] |
|
|
|
``` |
|
|
|
### For BERT embeddings |
|
|
|
```python |
|
|
|
import torch |
|
|
|
model = AutoModel.from_pretrained('neuralmind/bert-large-portuguese-cased') |
|
input_ids = tokenizer.encode('Tinha uma pedra no meio do caminho.', return_tensors='pt') |
|
|
|
with torch.no_grad(): |
|
outs = model(input_ids) |
|
encoded = outs[0][0, 1:-1] # Ignore [CLS] and [SEP] special tokens |
|
|
|
# encoded.shape: (8, 1024) |
|
# tensor([[ 1.1872, 0.5606, -0.2264, ..., 0.0117, -0.1618, -0.2286], |
|
# [ 1.3562, 0.1026, 0.1732, ..., -0.3855, -0.0832, -0.1052], |
|
# [ 0.2988, 0.2528, 0.4431, ..., 0.2684, -0.5584, 0.6524], |
|
# ..., |
|
# [ 0.3405, -0.0140, -0.0748, ..., 0.6649, -0.8983, 0.5802], |
|
# [ 0.1011, 0.8782, 0.1545, ..., -0.1768, -0.8880, -0.1095], |
|
# [ 0.7912, 0.9637, -0.3859, ..., 0.2050, -0.1350, 0.0432]]) |
|
``` |
|
|
|
## Citation |
|
|
|
If you use our work, please cite: |
|
|
|
```bibtex |
|
@inproceedings{souza2020bertimbau, |
|
author = {F{\'a}bio Souza and |
|
Rodrigo Nogueira and |
|
Roberto Lotufo}, |
|
title = {{BERT}imbau: pretrained {BERT} models for {B}razilian {P}ortuguese}, |
|
booktitle = {9th Brazilian Conference on Intelligent Systems, {BRACIS}, Rio Grande do Sul, Brazil, October 20-23 (to appear)}, |
|
year = {2020} |
|
} |
|
``` |
|
|