| --- |
| base_model: hfl/chinese-macbert-base |
| datasets: |
| - CIRCL/Vulnerability-CNVD |
| library_name: transformers |
| license: apache-2.0 |
| metrics: |
| - accuracy |
| tags: |
| - generated_from_trainer |
| - text-classification |
| - classification |
| - nlp |
| - chinese |
| - vulnerability |
| pipeline_tag: text-classification |
| language: zh |
| model-index: |
| - name: vulnerability-severity-classification-chinese-macbert-base |
| results: [] |
| --- |
| |
| # VLAI: A RoBERTa-Based Model for Automated Vulnerability Severity Classification (Chinese Text) |
|
|
| This model is a fine-tuned version of [hfl/chinese-macbert-base](https://huggingface.co/hfl/chinese-macbert-base) on the dataset [CIRCL/Vulnerability-CNVD](https://huggingface.co/datasets/CIRCL/Vulnerability-CNVD). |
|
|
| For more information, visit the [this project page](https://www.vulnerability-lookup.org/user-manual/ai/) or the [ML-Gateway GitHub repository](https://github.com/vulnerability-lookup/ML-Gateway), which demonstrates its usage in a FastAPI server. |
|
|
|
|
|
|
| ## How to use |
|
|
| You can use this model directly with the Hugging Face `transformers` library for text classification: |
|
|
| ```python |
| from transformers import pipeline |
| |
| classifier = pipeline( |
| "text-classification", |
| model="CIRCL/vulnerability-severity-classification-chinese-macbert-base" |
| ) |
| |
| # Example usage for a Chinese vulnerability description |
| description_chinese = "TOTOLINK A3600R是中国吉翁电子(TOTOLINK)公司的一款6天线1200M无线路由器。TOTOLINK A3600R存在缓冲区溢出漏洞,该漏洞源于/cgi-bin/cstecgi.cgi文件的UploadCustomModule函数中的File参数未能正确验证输入数据的长度大小,攻击者可利用该漏洞在系统上执行任意代码或者导致拒绝服务。" |
| result_chinese = classifier(description_chinese) |
| print(result_chinese) |
| # Expected output example: [{'label': '高', 'score': 0.9802}] |
| ``` |
|
|
|
|
| ## Training procedure |
|
|
| ### Training hyperparameters |
|
|
| The following hyperparameters were used during training: |
| - learning_rate: 3e-05 |
| - train_batch_size: 32 |
| - eval_batch_size: 32 |
| - seed: 42 |
| - optimizer: Use OptimizerNames.ADAMW_TORCH_FUSED with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments |
| - lr_scheduler_type: linear |
| - num_epochs: 5 |
| |
| It achieves the following results on the evaluation set: |
| - Loss: 0.5997 |
| - Accuracy: 0.7846 |
| |
| ### Training results |
| |
| | Training Loss | Epoch | Step | Validation Loss | Accuracy | |
| |:-------------:|:-----:|:-----:|:---------------:|:--------:| |
| | 0.6264 | 1.0 | 3548 | 0.5766 | 0.7565 | |
| | 0.5523 | 2.0 | 7096 | 0.5536 | 0.7724 | |
| | 0.4184 | 3.0 | 10644 | 0.5440 | 0.7836 | |
| | 0.3236 | 4.0 | 14192 | 0.5629 | 0.7889 | |
| | 0.2604 | 5.0 | 17740 | 0.5997 | 0.7846 | |
| |
| |
| ### Framework versions |
| |
| - Transformers 4.57.3 |
| - Pytorch 2.9.1+cu128 |
| - Datasets 4.4.2 |
| - Tokenizers 0.22.2 |
| |