File size: 3,131 Bytes
2a7e8e8
 
 
 
 
 
 
 
 
 
 
07e72fc
 
2a7e8e8
 
7076d2e
 
2a7e8e8
38d2e45
5457689
07e72fc
 
 
 
122bcbf
3a457ac
 
82a36b9
2a7e8e8
 
07e72fc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7762f07
07e72fc
 
 
7762f07
07e72fc
 
 
 
7762f07
07e72fc
 
 
 
 
7762f07
 
25373ed
2a7e8e8
 
 
 
 
 
 
 
 
 
 
 
 
 
ac0ee23
 
3a457ac
 
 
 
 
2a7e8e8
 
 
 
b35fc4c
b62e75e
e244c56
07e72fc
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
83
84
85
86
87
88
89
90
91
92
---
library_name: transformers
license: mit
base_model: roberta-base
tags:
- generated_from_trainer
metrics:
- accuracy
model-index:
- name: vulnerability-severity-classification-roberta-base
  results: []
datasets:
- CIRCL/vulnerability-scores
---

<!-- This model card has been generated automatically according to the information the Trainer had access to. You
should probably proofread and complete it, then remove this comment. -->

# vulnerability-severity-classification-roberta-base

This model is a fine-tuned version of [roberta-base](https://huggingface.co/roberta-base) on the dataset [CIRCL/vulnerability-scores](https://huggingface.co/datasets/CIRCL/vulnerability-scores).

You can read [this page](https://www.vulnerability-lookup.org/user-manual/ai/) for more information.

It achieves the following results on the evaluation set:
- Loss: 0.4963
- Accuracy: 0.8298

## Model description

It is a classification model and is aimed to assist in classifying vulnerabilities by severity based on their descriptions.


## How to get started with the model

```python
from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch

labels = ["low", "medium", "high", "critical"]

model_name = "CIRCL/vulnerability-severity-classification-distilbert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
model.eval()

test_description = "SAP NetWeaver Visual Composer Metadata Uploader is not protected with a proper authorization, allowing unauthenticated agent to upload potentially malicious executable binaries \
that could severely harm the host system. This could significantly affect the confidentiality, integrity, and availability of the targeted system."
inputs = tokenizer(test_description, return_tensors="pt", truncation=True, padding=True)

# Run inference
with torch.no_grad():
    outputs = model(**inputs)
    predictions = torch.nn.functional.softmax(outputs.logits, dim=-1)

# Print results
print("Predictions:", predictions)
predicted_class = torch.argmax(predictions, dim=-1).item()
print("Predicted severity:", labels[predicted_class])
```


## Training procedure

### Training hyperparameters

The following hyperparameters were used during training:
- learning_rate: 3e-05
- train_batch_size: 16
- eval_batch_size: 16
- seed: 42
- optimizer: Use OptimizerNames.ADAMW_TORCH with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments
- lr_scheduler_type: linear
- num_epochs: 5

### Training results

| Training Loss | Epoch | Step   | Validation Loss | Accuracy |
|:-------------:|:-----:|:------:|:---------------:|:--------:|
| 0.5857        | 1.0   | 27531  | 0.6245          | 0.7464   |
| 0.6164        | 2.0   | 55062  | 0.5566          | 0.7777   |
| 0.467         | 3.0   | 82593  | 0.5368          | 0.8013   |
| 0.4208        | 4.0   | 110124 | 0.4849          | 0.8209   |
| 0.2856        | 5.0   | 137655 | 0.4963          | 0.8298   |


### Framework versions

- Transformers 4.51.3
- Pytorch 2.7.1+cu126
- Datasets 3.6.0
- Tokenizers 0.21.1