TimB-92 commited on
Commit
bcd0a88
·
1 Parent(s): 53d5aa9

Upload model

Browse files
config.json ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "HierarchicalBertModel"
4
+ ],
5
+ "attention_probs_dropout_prob": 0.1,
6
+ "auto_map": {
7
+ "AutoModel": "hierarchical_bert_architecture.HierarchicalBertModel"
8
+ },
9
+ "classifier_dropout": null,
10
+ "directionality": "bidi",
11
+ "hidden_act": "gelu",
12
+ "hidden_dropout_prob": 0.1,
13
+ "hidden_size": 768,
14
+ "initializer_range": 0.02,
15
+ "intermediate_size": 3072,
16
+ "layer_norm_eps": 1e-12,
17
+ "max_position_embeddings": 512,
18
+ "model_type": "bert",
19
+ "num_attention_heads": 12,
20
+ "num_hidden_layers": 12,
21
+ "num_main_segment": 0,
22
+ "num_sub_segment": 0,
23
+ "pad_token_id": 0,
24
+ "pooler_fc_size": 768,
25
+ "pooler_num_attention_heads": 12,
26
+ "pooler_num_fc_layers": 3,
27
+ "pooler_size_per_head": 128,
28
+ "pooler_type": "first_token_transform",
29
+ "position_embedding_type": "absolute",
30
+ "torch_dtype": "float32",
31
+ "transformers_version": "4.22.2",
32
+ "type_vocab_size": 2,
33
+ "use_cache": true,
34
+ "vocab_size": 105879
35
+ }
hierarchical_bert_architecture.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from torch import nn
2
+ import torch
3
+ from transformers import BertModel, PreTrainedModel
4
+
5
+ from typing import Tuple
6
+
7
+
8
+ class HierarchicalBertModel(PreTrainedModel):
9
+
10
+ def __init__(self, config, num_main_segment=None, num_sub_segment=None):
11
+ super(HierarchicalBertModel, self).__init__(config=config)
12
+ self.num_main_segment = num_main_segment if num_main_segment else config.num_main_segment
13
+ self.num_sub_segment = num_sub_segment if num_sub_segment else config.num_sub_segment
14
+ self.bert = BertModel.from_pretrained("bert-base-multilingual-uncased")
15
+ self.dropout = nn.Dropout(0.1)
16
+ self.hidden_2 = nn.Linear(768, 768)
17
+ self.fc_main = nn.Linear(768, self.num_main_segment)
18
+ self.fc_sub = nn.Linear(768, self.num_sub_segment)
19
+
20
+ def forward(self, input_ids: torch.tensor, attention_masks: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor]:
21
+ outputs = self.bert(input_ids=input_ids,
22
+ attention_mask=attention_masks)
23
+ last_hidden_state_cls = outputs[0][:, 0, :]
24
+ out = self.hidden_2(last_hidden_state_cls)
25
+ return self.fc_main(last_hidden_state_cls), self.fc_sub(last_hidden_state_cls)
pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ba54163add74c9f167845c3e6e366bd441ad30e9236e1beeeba668fe552041b9
3
+ size 671857125