File size: 2,688 Bytes
d86e2be
8ce16eb
 
 
d86e2be
 
8ce16eb
d86e2be
8ce16eb
d86e2be
8ce16eb
d86e2be
 
 
 
 
 
8ce16eb
d86e2be
 
 
 
 
8ce16eb
d86e2be
 
8ce16eb
 
d86e2be
 
 
00ce001
d86e2be
 
 
8ce16eb
d86e2be
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
---
license: mit
base_model:
- sentence-transformers/paraphrase-multilingual-mpnet-base-v2
---

# protestforms_mpnet-base-v2

This is a fine-tuned [sentence-transformers](https://www.SBERT.net) model: It maps sentences & paragraphs to a 768 dimensional dense vector space and can be used for tasks like clustering or semantic search.

It was trained on a manually annotated dataset of German newspaper articles containing information on protest forms.

## Usage (Sentence-Transformers)


```python
from sentence_transformers import SentenceTransformer
sentences = ["At 8pm protesters gathered on the main square and shouted 'end fossil fuels'", "The German government demonstrated composure in its reaction to social media posts"]

model = SentenceTransformer('{MODEL_NAME}')
embeddings = model.encode(sentences)

# Sentences we want sentence embeddings for
sentences = ["At 8pm protesters gathered on the main square and shouted 'end fossil fuels'", "The German government demonstrated composure in its reaction to social media posts"]

# Load model from HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('shaunss/protestforms_mpnet-base-v2')
model = AutoModel.from_pretrained('shaunss/protestforms_mpnet-base-v2')

# Tokenize sentences
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
```

<!--- Describe how your model was evaluated -->

<!--- t.b.d. -->


## Training
The model was trained with the parameters:

**DataLoader**:

`torch.utils.data.dataloader.DataLoader` of length 681 with parameters:
```
{'batch_size': 32, 'sampler': 'torch.utils.data.sampler.RandomSampler', 'batch_sampler': 'torch.utils.data.sampler.BatchSampler'}
```

**Loss**:

`sentence_transformers.losses.BatchSemiHardTripletLoss.BatchSemiHardTripletLoss` 

Parameters of the fit()-Method:
```
{
    "epochs": 10,
    "evaluation_steps": 2177.5,
    "evaluator": "sentence_transformers.evaluation.BinaryClassificationEvaluator.BinaryClassificationEvaluator",
    "max_grad_norm": 1,
    "optimizer_class": "<class 'torch.optim.adamw.AdamW'>",
    "optimizer_params": {
        "lr": 2e-05
    },
    "scheduler": "WarmupLinear",
    "steps_per_epoch": null,
    "warmup_steps": 2177.5,
    "weight_decay": 0.01
}
```


## Full Model Architecture
```
SentenceTransformer(
  (0): Transformer({'max_seq_length': 128, 'do_lower_case': False}) with Transformer model: XLMRobertaModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
)
```

## Citing & Authors

<!--- Describe where people can find more information -->