ericshantos commited on
Commit
deb51b4
·
1 Parent(s): 2b6b164

feat: add custom BERT architecture and weights to safetensors

Browse files
README.pt.md ADDED
File without changes
configuration_veritas.py ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import PretrainedConfig
2
+
3
+ class BERTClassifierConfig(PretrainedConfig):
4
+ model_type = "bert_classifier"
5
+
6
+ def __init__(
7
+ self,
8
+ drop_rate: float = 0.2,
9
+ num_labels: int = 2,
10
+ **kwargs
11
+ ):
12
+ super().__init__(**kwargs)
13
+ self.drop_rate = drop_rate
14
+ self.num_labels = num_labels
gitattributes ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ veritas-lstm-ptbr.keras filter=lfs diff=lfs merge=lfs -text
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:493e939db2633b6a6954313800591d44bf0e0597981a10dded8aedf187d395f7
3
+ size 435817112
modeling_veritas.py ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ import torch.nn as nn
3
+
4
+ from transformers import (
5
+ AutoModel,
6
+ PreTrainedModel
7
+ )
8
+ from transformers.modeling_outputs import SequenceClassifierOutput
9
+
10
+ from .configuration_veritas import BERTClassifierConfig
11
+
12
+ from transformers import AutoModel, AutoConfig
13
+
14
+ class BERTClassifier(PreTrainedModel):
15
+ config_class = BERTClassifierConfig
16
+
17
+ def __init__(self, config):
18
+ super().__init__(config)
19
+
20
+ bert_config = AutoConfig.from_pretrained(
21
+ "neuralmind/bert-base-portuguese-cased"
22
+ )
23
+
24
+ self.bert = AutoModel.from_config(bert_config)
25
+
26
+ for param in self.bert.encoder.layer[:6].parameters():
27
+ param.requires_grad = False
28
+
29
+ hidden = self.bert.config.hidden_size
30
+
31
+ self.classifier = nn.Sequential(
32
+ nn.Linear(hidden, 32),
33
+ nn.GELU(),
34
+ nn.Dropout(config.drop_rate),
35
+ nn.Linear(32, 16),
36
+ nn.GELU(),
37
+ nn.Linear(16, config.num_labels)
38
+ )
39
+
40
+ self.post_init()
41
+
42
+ def forward(
43
+ self,
44
+ input_ids=None,
45
+ attention_mask=None,
46
+ labels=None
47
+ ):
48
+ outputs = self.bert(
49
+ input_ids=input_ids,
50
+ attention_mask=attention_mask
51
+ )
52
+
53
+ pooler = outputs.last_hidden_state[:, 0, :]
54
+ logits = self.classifier(pooler)
55
+
56
+ loss = None
57
+ if labels is not None:
58
+ loss_fn = nn.CrossEntropyLoss()
59
+ loss = loss_fn(logits, labels)
60
+
61
+ return SequenceClassifierOutput(
62
+ loss=loss,
63
+ logits=logits
64
+ )
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "backend": "tokenizers",
3
+ "cls_token": "[CLS]",
4
+ "do_lower_case": false,
5
+ "is_local": false,
6
+ "mask_token": "[MASK]",
7
+ "model_max_length": 1000000000000000019884624838656,
8
+ "pad_token": "[PAD]",
9
+ "sep_token": "[SEP]",
10
+ "strip_accents": null,
11
+ "tokenize_chinese_chars": true,
12
+ "tokenizer_class": "BertTokenizer",
13
+ "unk_token": "[UNK]"
14
+ }