数据集:
- PranavaKailash/CyNER2.0增强数据集
语言:
- 英文
库名称: transformers
许可证: mit
标签:
- CyNER
- 网络安全
- 自然语言处理
- 命名实体识别
CyNER 2.0:面向网络安全领域的专用命名实体识别模型
模型概述
CyNER 2.0是专为网络安全领域设计的命名实体识别(NER)模型。该模型基于DeBERTa变压器架构,通过微调训练可识别网络安全相关实体,包括威胁指标、恶意软件、组织机构、系统组件和漏洞信息。
模型描述
基于DeBERTa架构的CyNER 2.0模型通过融合原始CyNER数据集与包含最新威胁模式的增强数据集进行微调训练,新增了实体标签类别。在序列数据训练过程中,该模型相比基线模型在精确率、召回率和F1值等指标上均有显著提升。
核心特性:
- 模型架构:采用DeBERTa(解耦注意力增强型BERT)V3基础版
- 主要用途:网络安全实体识别
- 性能指标:在增强数据集上F1值达91.88%
- 训练数据:融合原始CyNER数据集及来自各类开源网络安全平台的增强数据
使用场景
CyNER 2.0旨在辅助安全分析师从非结构化/结构化网络安全报告中自动提取关键实体,可集成于威胁情报分析、自动化报告生成等应用场景。
可识别实体类型:
模型可识别以下网络安全文本中的实体类别:
- 威胁指标:入侵指标(IoC)如IP地址、文件哈希、URL等
- 恶意软件:病毒/勒索软件名称(如WannaCry、DroidRAT)
- 组织机构:涉及网络安全事件的相关机构(如微软、FBI)
- 系统组件:涉及安全事件的操作系统/软硬件(如Windows 10、Linux内核)
- 漏洞信息:特定漏洞编号(如CVE-2023-XXXX)
- 时间信息:安全事件相关时间戳
- 地理位置:安全事件关联的地理坐标
- 威胁组织:网络攻击相关黑客团体
这些实体类别可为安全分析人员提供全面精准的信息支持。
使用方法
安装
使用前需安装Hugging Face的transformers库:
pip install transformers
加载模型
from transformers import AutoModelForTokenClassification, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("PranavaKailash/CyNER-2.0-DeBERTa-v3-base")
model = AutoModelForTokenClassification.from_pretrained("PranavaKailash/CyNER-2.0-DeBERTa-v3-base")
推理示例
from transformers import pipeline
ner_pipeline = pipeline("ner", model=model, tokenizer=tokenizer)
text = "WannaCry勒索病毒近期攻击导致Windows系统严重受损"
entities = ner_pipeline(text)
print(entities)
输出结果
[
{"entity": "B-Malware", "score": 0.99, "index": 1, "word": "WannaCry", "start": 0, "end": 8},
{"entity": "B-System", "score": 0.98, "index": 6, "word": "Windows", "start": 18, "end": 25}
]
训练详情
数据集
训练使用两套数据集:
- 原始CyNER数据集:聚焦网络安全基础实体
- 增强数据集:扩展新型实体类别及现实世界威胁案例
超参数配置
- 学习率:2e-5
- 训练轮次:3
- 批处理大小:8
- 权重衰减:0.01
评估指标
- 精确率:91.06%
- 召回率:92.72%
- F1值:91.88%
GitHub仓库
仓库链接
局限性
- 实体分布不均:对低频实体(如漏洞编号)识别性能待提升
- 领域特异性:专为网络安全场景优化,其他NER任务泛化能力有限
引用规范
学术使用时请引用:
@misc{待更新,
title={CyNER 2.0:网络安全命名实体识别模型},
author={Pranava Kailash},
year={2024},
url={待更新}
}
许可证
本项目采用MIT开源许可证