当前位置: 首页 > article >正文

开源网络安全大模型 - SecGPT

图片

       网络安全大模型是指使用大量数据和参数来训练的人工智能模型,它可以理解和生成与网络安全相关的内容,例如漏洞报告、利用代码、攻击场景等。    

       目前各家网络安全厂商也纷纷跟进在大模型方面的探索,但可供广大从业者研究的特有网络安全大模型屈指可数,最近,云起无垠开源了他们的网络安全大模型SecGPT,该模型基于Baichuan-13B训练,目前已接近300star,这里直接拷贝了项目的介绍内容:

图片

1. 基座模型:Baichuan-13B

  • 基于Baichuan-13B (无道德限制,较好中文支持,显存资源占用小)

  • 运行环境:

    • webdemo推理: 2*4090(24G)

    • lora训练: 3*4090(24G)

2.微调技术

  • 基于Lora做预训练和SFT训练,优化后的训练代码展示了训练的底层知识,同时大幅减少训练的显存占用,在3*4090上训练。

3. 数据

  • 预训练数据

    • 收集了安全书籍,安全知识库,安全论文,安全社区文章,漏洞库等等安全内容

    • 数据集开源地址:https://huggingface.co/datasets/w8ay/security-paper-datasets

      图片

  • 有监督数据

    • chatgpt+人工构造各类有监督安全能力数据集,让模型能了解各类安全指令。       

    • 思维链:基于思维链方式构造有监督数据集让模型能够根据问题逐步推理到最终答案,展现推理过程。

    • 知乎回答:加入了部分高质量知乎数据集,在一些开放性问题上模型能通过讲故事举例子等方式回答答案和观点,更易读懂。

    • 为防止灾难性遗忘,有监督数据喂通用能力数据+安全能力数据,数据占比5:1

图片

4. 模型训练

    修改train.py中超参数信息

# 最大token长度
max_position_embeddings = 2048
# batch size大小
batch_size = 4
# 梯度累积
accumulation_steps = 8
# 训练多少个epoch
num_train_epochs = 10
# 每隔多少步保存一次模型
save_steps = 400
# 每隔多少步打印一次日志
logging_steps = 50
# 学习率
lr = 1e-4
# 预训练模型地址
pre_train_path = "models/Baichuan-13B-Base"
# 训练数据json地址
dataset_paper = "data.json"
train_option = "pretrain"
# lora
use_lora = True
pre_lora_train_path = ""  # 如果要继续上一个lora训练,这里填上上一个lora训练的地址
lora_rank = 8
lora_alpha = 32

预训练

    修改


# 预训练模型地址
pre_train_path = "models/Baichuan-13B-Base"
# 训练数据json地址
dataset_paper = "w8ay/secgpt"
train_option = "pretrain"

    执行 python train.py

SFT训练

    修改


# 预训练模型地址
pre_train_path = "models/Baichuan-13B-Base"
# 训练数据json地址
dataset_paper = "sft.jsonl"
train_option = "sft"
pre_lora_train_path = "output/secgpt-epoch-1"  # 预训练lora保存目录

    执行 python train.py

5. 效果展示

       模型结果的输出有着随机性,模型可能知道答案,但是随机后改变输出,这时候可以增加提示词让模型注意力集中,也可以做RLHF强化学习:让模型输出多个结果,选择正确的那个,提升模型效果。

       自带RLHF选择器,模型会输出三个结果,选择最好的一个记录下来,可对后面RLHF微调模型提供数据参考。

开放问题

图片

图片

图片

       可以见到,对于一些特别的问题,模型的回答还是很接地气的,不过对现实世界中的梗的理解能力还有待提高,这可能也是很多目前大模型的普遍存在的问题。顺带值得一提的是,作者公开了模型的训练数据,相当良心。

       总之,网络安全与大模型的结合必将是未来发展的重要趋势之一,我们也期待能看到更多的安全大模型和数据集被开源出来,更多安全相关的创新应用面向市场。


http://www.kler.cn/news/283986.html

相关文章:

  • tcp/udp 可视化 调试工具; tcp/udp 发送客户端;查看tcp连接;netassist;packet sender;tcp view;
  • 【JavaEE初阶】HTTP响应报文
  • 【C++STL详解(十三)】unordered系列容器的介绍与使用
  • linux驱动--中断等待队列
  • 在docker镜像中使用java生成图片,图片中文字乱码,将文件存入虚拟机,然后打压缩包,文件名乱码
  • LLaMA-Factory微调入门个人重制版
  • 基于Python的热门旅游景点数据分析系统【python-爬虫-大数据定制】
  • axios取消请求CancelToken的原理解析及用法示例
  • C语言练习题 包含min函数的栈
  • EmguCV学习笔记 VB.Net 8.2 分水岭法 watershed
  • 谈谈 Python 可迭代对象的实现
  • udp可靠传输中ACK与NACK的选择
  • Memcached stats sizes 命令
  • OS库学习之rename(函数)
  • python数据分析——网络爬虫和API
  • 图灵盾IOS SDK
  • 数据结构之拓扑排序
  • 【王树森】RNN模型与NLP应用(6/9):Text Generation(个人向笔记)
  • 【C#】属性的声明
  • Elasticsearch中修改mapping的字段类型该怎么操作
  • Go语言结构快速说明
  • JAVA后端框架--【Mybatis】
  • 【单片机原理及应用】实验:数字秒表显示器
  • ubuntu录屏解决ubuntu下无法播放MP4格式文件的方法
  • 【栈】| 力扣高频题: 基本计算器二
  • 忘掉 Siri 吧:苹果可能会推出拥有自己AI“个性”的机器人设备|TodayAI
  • linux信号处理机制基础(下)
  • 【 WPF 中常用的 `Effect` 类的介绍、使用示例和适用场景】
  • Qt Creator 配置pcl1.14.1
  • 物理机安装Centos后无法连接网络(网线网络)怎么办?-呕心沥血总结版-超简单