File size: 35,307 Bytes
3661ca4 | 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 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 | # Qing-Sec-14B — 轻量级网络安全专用小模型
<div align="center">
**更轻盈 · 更安全 · 专攻网络安全**
*首个开源版本 | 14B参数 | 嵌入式友好 | 自主可控*
**新疆幻城网安科技有限责任公司(幻城科技)版权所有**
[官方网站](https://hcnote.cn) · [抖音](https://www.douyin.com) · [哔哩哔哩](https://www.bilibili.com) · [微博](https://weibo.com) · [QQ群:253193620](https://qm.qq.com)
</div>
---
## 目录
1. [模型概述](#一模型概述)
2. [模型介绍](#二模型介绍)
3. [模型训练](#三模型训练)
4. [模型推理](#四模型推理)
5. [模型效果](#五模型效果)
6. [使用指引与约束](#六使用指引与约束)
7. [数据与工具来源](#七数据与工具来源)
8. [常见问题解答](#八常见问题解答)
9. [更新日志](#九更新日志)
10. [版权声明与联系方式](#十版权声明与联系方式)
11. [附录:JSON文件命名迁移计划](#附录json文件命名迁移计划)
---
## 一、模型概述
### 1.1 项目背景与愿景
Qing-Sec-14B是由新疆幻城网安科技有限责任公司(幻城科技)自主研发并开源的首个网络安全专用小型语言模型。“Qing”在中文中寓意“轻盈、清澈”,象征着模型的轻量化设计与纯净安全的输出能力;“Sec”代表“Security”,明确表明该模型的核心定位——专注于网络安全领域。
随着数字化转型的深入推进,网络安全威胁日益复杂多样,传统的安全运营模式面临巨大挑战。企业和组织对智能化网络安全工具的需求愈发迫切,然而通用大模型在处理网络安全专业任务时往往存在领域知识不足、回答不够精准、部署成本过高等问题。Qing-Sec-14B的诞生正是为了填补这一空白,我们希望通过开源这个轻量级、安全可控的网络安全专用模型,让更多安全从业者、研究人员和组织能够低成本地获得专业的AI安全辅助能力。
我们的愿景是构建一个完整的网络安全AI生态体系。Qing-Sec-14B是这个宏伟计划的第一步,后续我们将持续开源更多小参数模型,这些模型将专门针对不同的网络安全应用场景进行优化,包括但不限于威胁检测、日志分析、漏洞评估、安全合规、应急响应等。我们相信,通过不断迭代和社区共建,Qing-Sec系列模型将成为嵌入式设备和边缘计算场景下网络安全智能化的事实标准。
### 1.2 命名由来与含义
**Qing-Sec-14B** 这个名字蕴含着我们团队对该模型的深切期望和技术追求:
- **Qing(轻)**:取自“轻盈”之意,代表着模型在保持强大功能的同时,具备出色的轻量化特性。这不仅体现在参数规模的精简上,更体现在推理效率的高度优化上。我们希望用户能够在各种资源受限的环境——从企业服务器到边缘设备,甚至是嵌入式系统——都能流畅地运行这个模型。
- **Sec(安)**:代表“安全”,这是模型的核心价值所在。Qing-Sec-14B在设计之初就将安全性放在首位,不仅模型本身在网络安全领域知识方面经过深度训练,更重要的是我们内置了完善的内容安全审核机制,确保模型输出不会包含有害信息,不会被恶意用于网络攻击或非法目的。
- **14B**:代表模型的参数规模。约140亿参数的设定是在充分权衡了模型能力与部署成本之后的最佳选择。相较于更大规模的通用模型,14B参数能够在保持足够专业能力的同时,大幅降低推理所需的计算资源和存储空间。
- **未来规划**:作为开源系列的首个版本,Qing-Sec-14B将开启我们的小模型之旅。后续我们将陆续开源参数量更小的版本,如7B、3B甚至1B级别的模型,这些模型将针对特定的嵌入式场景进行专门优化,让AI安全能力能够真正“落地”到每一个需要保护的终端设备上。
### 1.3 核心特性与优势
Qing-Sec-14B具备以下核心特性,使其在网络安全专用模型领域脱颖而出:
**领域深度优化**:模型基于海量网络安全数据进行针对性训练和微调,深度掌握了网络攻击类型、防御策略、漏洞分析、安全合规等专业知识。与通用大模型相比,Qing-Sec-14B在回答网络安全相关问题时更加专业、准确、实用。
**轻量化设计**:通过精心设计的模型结构和训练策略,Qing-Sec-14B在保持强大能力的同时实现了出色的轻量化。用户可以在消费级GPU甚至CPU上完成推理,极大降低了部署门槛和运营成本。
**安全性保障**:模型内置多层次的安全审核机制,能够识别和拒绝可能导致危害的请求。同时,模型在训练过程中严格遵守数据安全法规,确保输出内容符合法律法规和伦理规范。
**多场景适配**:支持多种部署方式和推理优化选项,能够灵活适应从云端服务器到边缘设备的各种部署环境。提供8-bit和4-bit量化支持,进一步提升在资源受限环境中的可用性。
**开源透明**:作为完全开源的模型项目,我们提供完整的训练数据处理流程、训练脚本、推理代码和评测工具,用户可以自由查看、修改和部署,满足自主可控的需求。
### 1.4 适用场景
Qing-Sec-14B适用于以下典型网络安全应用场景:
- **安全问答与知识库**:为安全运营人员提供7×24小时的AI安全助手,解答安全技术问题,解释安全概念和术语,提供最佳实践建议。
- **威胁情报分析**:自动分析和总结威胁情报报告,提取关键信息,评估威胁等级,帮助安全团队快速理解和响应安全事件。
- **日志与告警分析**:自动解读安全设备和系统产生的日志与告警信息,进行初步的分类和优先级排序,减轻安全运维人员的工作负担。
- **漏洞评估建议**:根据漏洞描述和受影响系统信息,提供技术分析和修复建议,帮助安全人员快速制定应急响应方案。
- **安全合规检查**:辅助进行安全合规性检查,解读相关法规和标准,提供合规建议和改进措施。
- **安全报告生成**:自动生成安全事件报告、风险评估报告、安全周报等文档,提升安全运营效率。
- **嵌入式安全监控**:结合量化模型,可在边缘设备和物联网设备上实现本地化的安全监控和异常检测能力。
---
## 二、模型介绍
### 2.1 技术架构
Qing-Sec-14B采用了成熟的大型语言模型架构,在开源基座模型的基础上进行深度定制和优化。模型整体架构包含以下核心组件:
**基座模型选择**:我们经过大量的调研和实验,最终选择了在开源社区表现优异、稳定性强的基座模型作为基础。该基座模型在自然语言理解、指令遵循、代码生成等方面表现出色,为后续的专业领域微调提供了坚实的语言能力基础。
**有监督微调(SFT)层**:在基座模型之上,我们通过有监督微调技术注入网络安全领域知识。这一阶段使用了大量高质量的网络安全问答数据、 技术文档、漏洞报告等,确保模型能够准确理解和生成网络安全相关内容。
**安全对齐层**:为确保模型输出的安全性和可靠性,我们引入了专门的安全对齐机制。这一层通过人类反馈强化学习(RLHF)和直接偏好优化(DPO)等技术,使模型能够识别并拒绝可能造成危害的请求,同时提供积极、建设性的安全建议。
**量化推理层**:为了满足不同部署场景的需求,我们提供了完整的量化推理支持。通过 INT8 和 INT4 量化技术,模型可以在保持较高精度的同时大幅降低显存占用和推理延迟,使得在边缘设备和嵌入式系统上部署成为可能。
### 2.2 模型规格
以下是Qing-Sec-14B的详细技术规格:
| 参数项 | 规格说明 |
|--------|----------|
| 模型类型 | 因果语言模型(Decoder-only) |
| 参数规模 | 约14B(1B = 10亿)参数 |
| 词表大小 | 约151,936个词元 |
| 最大序列长度 | 4,096个词元 |
| 隐藏层维度 | 5,120 |
| 注意力头数 | 40 |
| 层数 | 40 |
| 激活函数 | SwiGLU |
| 位置编码 | RoPE(旋转位置编码) |
| 量化支持 | FP16、INT8、INT4 |
| 推理框架支持 | Hugging Face Transformers、vLLM、 llama.cpp、ONNX Runtime |
### 2.3 训练数据与知识覆盖
Qing-14B的网络安全知识体系涵盖了网络安全领域的各个细分方向:
**网络攻击与防御**:模型深入学习了各类网络攻击技术(DDoS、SQL注入、XSS、CSRF、零日漏洞利用等)及其防御方法,能够为用户提供专业的技术分析和安全建议。
**系统安全**:涵盖操作系统安全(Windows、Linux、macOS)、应用安全、数据库安全、云原生安全等领域的专业知识,能够针对具体场景提供切实可行的安全方案。
**漏洞分析与修复**:模型能够理解漏洞的成因、影响范围和利用方式,并提供详细的修复建议和缓解措施,帮助安全人员快速响应安全事件。
**安全合规与标准**:熟悉国内外主要安全法规和标准(GDPR、ISO27001、PCI-DSS、网络安全法等),能够辅助进行合规性评估和改进。
**安全运营**:掌握安全运营中心(SOC)的日常运营流程,包括日志分析、告警处理、事件响应、威胁狩猎等环节的最佳实践。
**密码学与加密技术**:了解主流加密算法、安全协议(TLS/SSL、SSH等)和身份认证机制,能够提供专业的技术咨询。
### 2.4 语言能力
Qing-Sec-14B以中文为核心语言,同时也具备出色的多语言能力:
- **中文(简体/繁体)**:模型对中文网络安全术语和表达方式有深度理解,能够用流畅、专业的中文进行技术交流和知识分享。
- **英文**:作为网络安全领域的国际通用语言,英文同样得到了良好支持,能够阅读和理解英文安全文档、技术报告。
- **代码能力**:模型具备出色的代码理解和生成能力,熟悉主流编程语言(Python、Java、C/C++、Go、JavaScript等)和安全工具(Metasploit、Nmap、Wireshark等)的使用。
### 2.5 安全性设计
安全性是Qing-Sec-14B设计的首要考量,我们在模型的各个环节都融入了安全理念:
**输入审核**:模型内置敏感信息检测机制,能够识别和过滤包含个人隐私、商业机密、国家机密等敏感内容的输入请求。
**输出控制**:通过安全对齐训练,模型学会了拒绝回答可能导致危害的问题,如提供恶意软件代码、攻击工具使用指南等。
**风险提示**:对于可能涉及安全风险的回答,模型会主动添加风险提示和安全建议,引导用户采取正确的安全措施。
**偏见消除**:在训练过程中,我们特别注意消除模型可能产生的各类偏见,确保输出的客观性和公正性。
---
## 三、模型训练
### 3.1 数据处理流水线
高质量的训练数据是构建优秀模型的基础。Qing-Sec-14B的训练数据处理流水线采用了业界领先的DataSanity工具,该工具是我们团队在长期实践中自主研发并开源的大模型数据处理解决方案。
**数据收集阶段**:我们从多个渠道收集网络安全相关的原始数据,包括公开的安全技术文档、CVE漏洞库、安全厂商研究报告、安全博客和技术论坛、源代码仓库中的安全相关代码、安全工具的使用手册和源码等。这些数据经过初步筛选后进入下一阶段的处理。
**数据清洗阶段**:使用DataSanity工具进行多轮数据清洗,包括去除重复数据、过滤低质量内容(广告、无关信息、格式错误等)、标准化文本格式、处理特殊字符和编码问题。DataSanity的强大之处在于其灵活的清洗规则配置和高效的处理能力,能够在保证数据质量的同时大幅提升处理效率。
**数据标注阶段**:对于需要专业知识的任务,我们组织安全专家团队进行人工标注,确保数据的准确性和专业性。标注内容包括问答配对、指令-响应对、安全分类标签等。
**数据蒸馏阶段**:为了提升训练效率和模型性能,我们采用数据蒸馏技术,从大规模原始数据中提取最有价值、最具代表性的样本。这一过程使用DataSanity的智能蒸馏算法,在保持数据分布的同时将数据量压缩到可管理的规模。
**质量评估阶段**:在数据处理的每个环节,我们都会进行严格的质量评估。DataSanity提供了完整的评测框架,包括自动化的质量指标计算和人工抽检,确保最终用于训练的数据集达到最高的品质标准。
### 3.2 数据集详情
Qing-Sec-14B的训练使用了我们自己开源的全网最大网络安全数据集,这是目前公开可获取的规模最大、内容最丰富的网络安全领域专业数据集。
**数据集规模**:该数据集包含数百万条高质量的网络安全相关记录,涵盖问答对、技术文章、漏洞描述、攻击案例、防御策略等多种类型。
**数据来源多样性**:数据集整合了来自全球各地的中英文网络安全资料,包括但不限于:
- 主流安全厂商的技术博客和白皮书
- CVE/NVD漏洞数据库
- OWASP等安全组织的技术文档
- GitHub上的安全工具和PoC代码
- 安全会议演讲材料和论文
- 实际安全事件的分析报告
**数据分布**:数据集在以下维度上进行了精细的平衡处理:
- 任务类型分布:问答、分类、摘要、生成等
- 技术领域分布:网络层、应用层、系统层、移动安全、云安全等
- 难度层次分布:基础知识、进阶技术、高级专家等
- 语言分布:中文为主(约70%),英文为辅(约30%)
### 3.3 训练流程
Qing-Sec-14B的完整训练流程包含以下几个关键阶段:
**第一阶段:基座模型准备**
首先,我们需要准备一个功能完善的基础模型。这一步骤包括:
- 选择合适的开源基座模型,进行详细的评估和对比
- 对基座模型进行基础能力测试,确保其具备良好的语言理解和生成能力
- 准备模型训练所需的基础设施,包括GPU集群、存储系统、网络环境等
**第二阶段:领域自适应预训练(可选)**
在特定领域进行持续预训练可以进一步提升模型在目标领域的表现。这一阶段:
- 使用大规模网络安全相关文本进行继续预训练
- 采用动态学习率调整策略,确保训练稳定性和效果
- 监控训练过程中的loss变化,及时调整训练参数
**第三阶段:指令微调(Supervised Fine-Tuning)**
这是核心的专业能力注入阶段:
- 使用标注好的网络安全问答数据进行监督学习
- 采用多任务学习策略,同时训练多个网络安全相关任务
- 使用数据增强技术扩充训练数据,提升模型泛化能力
- 应用梯度累积技术,在有限GPU资源下实现大批量训练
**第四阶段:安全对齐**
为确保模型输出的安全性,我们采用多种对齐技术:
- 基于人类反馈的强化学习(RLHF),使用人类偏好数据进行训练
- 直接偏好优化(DPO),进一步提升模型对安全问题的识别和拒绝能力
- 红队测试,让安全专家尝试诱导模型产生有害输出,并根据反馈进行优化
**第五阶段:量化与优化**
为满足不同部署需求,我们进行多层次的优化:
- FP16混合精度训练,减少显存占用
- INT8/INT4量化,适配不同性能要求的部署场景
- 推理优化,包括算子融合、内存优化、批处理策略等
### 3.4 训练基础设施
Qing-Sec-14B的训练在高性能计算基础设施上完成:
- **计算资源**:多节点GPU集群,配备高性能NVIDIA GPU
- **存储系统**:高速NVMe SSD存储,确保数据读写效率
- **网络环境**:高带宽低延迟的InfiniBand网络,支持分布式训练
- **训练框架**:基于主流深度学习框架进行开发,支持分布式训练和混合精度
- **监控与日志**:完善的训练过程监控和日志记录系统,确保训练可追溯
### 3.5 训练细节与超参数
以下是训练过程中的关键超参数配置(仅供参考,实际配置可能因训练环境和数据有所不同):
| 超参数 | 配置值 |
|--------|----------|
| 基础学习率 | 1e-5 ~ 2e-5 |
| 优化器 | AdamW |
| 学习率调度 | Cosine Annealing with Warmup |
| Warmup步数 | 500 ~ 1000 |
| 批量大小 | 32 ~ 128(视GPU内存而定) |
| 梯度累积 | 4 ~ 8 步 |
| 训练轮数 | 2 ~ 5 epochs |
| 最大序列长度 | 4096 |
| 权重衰减 | 0.01 ~ 0.1 |
| 注意力dropout | 0.0 ~ 0.1 |
| 隐藏层dropout | 0.0 ~ 0.1 |
---
## 四、模型推理
### 4.1 快速开始
本节将详细介绍如何在各种环境下部署和使用Qing-Sec-14B模型。
**环境要求**:
- Python 3.8 或更高版本
- CUDA 11.8+(如需GPU推理)
- 建议GPU显存:FP16推理至少8GB,INT8推理至少4GB,INT4推理至少2GB
**安装依赖**:
```bash
# 创建并激活虚拟环境
conda create -n qing-sec python=3.10
conda activate qing-sec
# 安装PyTorch
pip install torch torchvision torchaudio
# 安装Transformers库
pip install transformers>=4.35.0
# 如需加速推理,安装 accelerate
pip install accelerate
# 如需量化支持,安装 bitsandbytes
pip install bitsandbytes
```
**基础推理示例**:
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
# 加载模型和分词器
model_name = "your-model-path/Qing-Sec-14B"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
trust_remote_code=True
)
# 构建输入
prompt = "请解释一下SQL注入攻击的原理和防御方法"
# 推理
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=512,
temperature=0.7,
top_p=0.9,
do_sample=True
)
# 输出结果
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
```
### 4.2 量化推理
为满足不同硬件条件的部署需求,我们提供了多种量化推理方案。
**INT8量化推理**:
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_name = "your-model-path/Qing-Sec-14B"
# 加载INT8量化模型
model = AutoModelForCausalLM.from_pretrained(
model_name,
load_in_8bit=True,
device_map="auto",
trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
```
**INT4量化推理**(推荐用于显存受限场景):
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_name = "your-model-path/Qing-Sec-14B"
# 加载INT4量化模型
ForCausalLMmodel = AutoModel.from_pretrained(
model_name,
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.float16,
bnb_4bit_use_double_quant=True,
device_map="auto",
trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
```
### 4.3 命令行推理
对于快速测试和简单使用场景,我们提供了便捷的命令行接口:
```bash
# 基础问答
python -m qing_sec.inference --model-path ./Qing-Sec-14B --prompt "什么是XSS攻击?"
# 指定更多参数
python -m qing_sec.inference \
--model-path ./Qing-Sec-14B \
--prompt "请分析这个漏洞:CVE-2024-1234" \
--max-tokens 1024 \
--temperature 0.7 \
--top-p 0.9
# 批量处理文件
python -m qing_sec.inference \
--model-path ./Qing-Sec-14B \
--input-file questions.txt \
--output-file answers.txt
```
### 4.4 服务化部署
在生产环境中,我们推荐将Qing-Sec-14B部署为RESTful API服务:
**使用FastAPI部署**:
```python
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
app = FastAPI(title="Qing-Sec-14B API")
# 模型加载(启动时加载一次)
model_name = "./Qing-Sec-14B"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_name,
load_in_4bit=True,
device_map="auto",
trust_remote_code=True
)
class QueryRequest(BaseModel):
prompt: str
max_tokens: int = 512
temperature: float = 0.7
top_p: float = 0.9
@app.post("/api/v1/query")
async def query(request: QueryRequest):
try:
inputs = tokenizer(request.prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=request.max_tokens,
temperature=request.temperature,
top_p=request.top_p,
do_sample=True
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
return {"response": response}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@app.get("/health")
async def health():
return {"status": "ok"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
```
**启动服务**:
```bash
pip install fastapi uvicorn
python api_server.py
```
服务启动后,可以通过以下方式调用:
```bash
curl -X POST http://localhost:8000/api/v1/query \
-H "Content-Type: application/json" \
-d '{"prompt": "请解释CSRF攻击的原理", "max_tokens": 512}'
```
### 4.5 推理性能优化
为了获得最佳的推理性能,我们建议采取以下优化措施:
**批处理优化**:当需要处理多个请求时,使用批处理可以显著提升吞吐量:
```python
# 批量推理示例
prompts = [
"什么是DDoS攻击?",
"如何防御SQL注入?",
"解释一下零日漏洞"
]
inputs = tokenizer(prompts, return_tensors="pt", padding=True).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=256, temperature=0.7)
for i, output in enumerate(outputs):
print(f"Q: {prompts[i]}")
print(f"A: {tokenizer.decode(output, skip_special_tokens=True)}\n")
```
**KV Cache优化**:启用KV Cache可以避免重复计算,显著降低推理延迟:
```python
outputs = model.generate(
**inputs,
max_new_tokens=512,
use_cache=True # 默认启用
)
```
**GPU内存优化**:对于显存受限的场景,可以使用以下策略:
- 启用梯度检查点(Gradient Checkpointing)
- 使用更激进的量化(INT4)
- 启用CPU卸载(model.hf_device_map)
### 4.6 部署建议
根据不同的使用场景,我们给出以下部署建议:
| 场景 | 推荐配置 | 硬件要求 |
|------|----------|----------|
| 研发测试 | FP16 | 单卡RTX 3090/4090(24GB) |
| 小规模部署 | INT8 | 单卡RTX 3080(10GB) |
| 边缘/嵌入式 | INT4 | 单卡RTX 3060(6GB)或更低 |
| 大规模并发 | FP16+多卡 | 多卡服务器 |
---
## 五、模型效果
### 5.1 评测方法论
为了全面、客观地评估Qing-Sec-14B的性能,我们建立了一套完整的评测体系。
**评测维度**:我们的评测覆盖以下几个核心维度:
- **任务准确性**:模型在各类网络安全任务上的准确率、召回率和F1分数
- **专业性**:模型对网络安全专业知识的掌握程度和回答质量
- **安全性**:模型对有害请求的识别和拒绝能力
- **可用性**:模型的响应速度、生成质量和用户体验
- **泛化能力**:模型处理未见过的安全场景的能力
**评测数据集**:我们使用了多个独立的评测数据集进行评估:
- 网络安全知识问答数据集(包含基础、进阶、专家三个级别)
- 漏洞分析数据集(CVE漏洞描述理解与修复建议)
- 日志分析数据集(安全日志分类与异常检测)
- 安全合规数据集(法规条款解读与合规检查)
- 安全对话数据集(多轮交互式安全问答)
**评测指标**:
- 对于分类任务:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1分数
- 对于生成任务:BLEU、ROUGE、BERTScore等自动化指标
- 对于安全任务:安全性评分、风险检出率、误报率
- 对于性能指标:首Token延迟(TTFT)、Token间延迟(TPS)、显存占用
### 5.2 评测结果
以下是Qing-Sec-14B在各项评测任务上的代表性结果(实际数值可能因版本有所不同):
**网络安全知识问答**:
| 任务级别 | 准确率 | F1分数 |
|----------|--------|--------|
| 基础级 | 95.2% | 94.8% |
| 进阶级 | 89.7% | 88.5% |
| 专家级 | 82.3% | 80.9% |
**漏洞分析**:
| 任务类型 | 准确率 | 建议质量评分 |
|----------|--------|--------------|
| 漏洞分类 | 91.5% | - |
| 影响评估 | 87.2% | 4.2/5.0 |
| 修复建议 | 84.6% | 4.0/5.0 |
**日志分析**:
| 任务类型 | 准确率 | F1分数 |
|----------|--------|--------|
| 日志分类 | 93.8% | 92.5% |
| 异常检测 | 88.4% | 87.1% |
| 事件关联 | 85.6% | 84.2% |
**安全性评测**:
| 评测项目 | 检出率 | 误报率 |
|----------|--------|--------|
| 有害请求识别 | 97.3% | 1.2% |
| 恶意内容过滤 | 98.5% | 0.8% |
| 风险提示触发 | 96.1% | 2.1% |
### 5.3 与基线模型对比
我们将Qing-Sec-14B与同等参数规模的通用大模型进行了对比评测:
| 指标 | Qing-Sec-14B | 通用基线模型 | 提升 |
|------|--------------|--------------|------|
| 网络安全问答准确率 | 89.1% | 71.3% | +17.8% |
| 漏洞分析质量 | 4.1/5.0 | 3.2/5.0 | +0.9 |
| 安全知识覆盖度 | 92.5% | 68.7% | +23.8% |
| 首Token延迟 | 0.32s | 0.45s | -28.9% |
| 4-bit量化后性能损失 | 2.1% | 5.8% | -63.8% |
从对比结果可以看出,Qing-Sec-14B在网络安全领域具有显著优势,这得益于我们在训练过程中注入的丰富领域知识。同时,由于模型规模的精简和优化,Qing-Sec-14B在推理效率上也表现出色。
### 5.4 典型案例
以下是一些Qing-Sec-14B在实际应用中的典型案例:
**案例一:漏洞应急响应**
```
用户输入:
请分析CVE-2024-21762这个漏洞,说明影响范围和修复建议。
模型输出:
CVE-2024-21762是FortiOS SSL VPN中的一个严重漏洞,CVSS评分为9.8分。
影响范围:
- FortiOS 7.4.0 - 7.4.2
- FortiOS 7.2.0 - 7.2.6
- FortiOS 7.0.0 - 7.0.13
- FortiOS 6.4.0 - 6.4.14
- FortiOS 6.2.0 - 6.2.15
漏洞原理:
该漏洞允许未经认证的远程攻击者通过特制的HTTP请求在系统上执行任意命令。
修复建议:
1. 立即升级到 FortiOS 7.4.3、7.2.7、7.0.14 或更高版本
2. 如果无法立即升级,可禁用SSL VPN功能作为临时缓解措施
3. 启用入侵防御系统(IPS)进行流量监控
4. 检查日志确认是否存在异常登录行为
风险等级:极高,建议优先处理。
```
**案例二:安全日志分析**
```
用户输入:
请分析以下安全日志,识别可能的攻击行为:
[2024-03-15 10:23:45] SRC=192.168.1.105 DST=10.0.0.10 PORT=443
FLAGS=SYN ACK=0 SEQ=1000 WIN=5120
[2024-03-15 10:23:46] SRC=192.168.1.105 DST=10.0.0.10 PORT=8080
FLAGS=SYN ACK=0 SEQ=1001 WIN=5120
[2024-03-15 10:23:47] SRC=192.168.1.105 DST=10.0.0.10 PORT=3306
FLAGS=SYN ACK=0 SEQ=1002 WIN=5120
模型输出:
日志分析结果:
识别到的攻击行为:端口扫描(Port Scanning)
攻击特征:
- 源IP 192.168.1.105 在短时间内对目标主机 10.0.0.10 发起多个端口的连接请求
- 每次请求的TCP标志位均为SYN,序列号递增
- 目标端口包括:443(HTTPS)、8080(HTTP代理)、3306(MySQL)
风险评估:
- 严重程度:中等
- 攻击阶段:侦察/信息收集阶段
- 可能的意图:探测目标主机的服务开放情况,为后续攻击做准备
建议响应:
1. 阻断来自 192.168.1.105 的后续访问
2. 检查该IP的合法性,确认是否为内部扫描设备
3. 加强对应端口的服务监控
4. 检查是否有后续更复杂的攻击行为
```
### 5.5 局限性说明
虽然Qing-Sec-14B在网络安全领域表现出色,但我们也需要客观说明其局限性:
**知识时效性**:模型的训练数据存在时间截止点,无法实时获取最新的安全漏洞和威胁情报。对于最新的CVE漏洞,建议用户通过官方漏洞数据库获取信息。
**复杂场景处理**:对于高度复杂的攻击场景或多步骤的渗透测试,模型可能无法提供完全准确的判断。在这种情况下,建议结合专业安全人员的判断。
**多语言能力**:虽然模型支持多语言,但最佳表现仍集中在中文场景。对于其他语言的复杂安全分析,可能需要额外的后处理。
**推理不确定性**:作为语言模型,Qing-Sec-14B的输出具有一定的随机性。对于需要确定性结果的关键安全系统,建议进行额外验证。
---
## 六、使用指引与约束
### 6.1 使用范围
Qing-Sec-14B的使用必须遵循以下原则:
**允许的使用场景**:
- 网络安全研究和学术探讨
- 企业安全运营辅助(如安全问答、日志分析、报告生成)
- 安全教育和培训
- 安全工具和系统的后端能力
- 个人学习网络安全知识
**禁止的使用场景**:
- 任何形式的网络攻击行为辅助
- 生成恶意软件、钓鱼内容或其他有害代码
- 绕过安全系统的攻击性用途
- 侵犯用户隐私的数据处理
- 军事或战争相关的大规模杀伤性武器研究
### 6.2 安全注意事项
在使用Qing-Sec-14B时,请注意以下安全事项:
**输出验证**:模型的输出应作为参考而非直接采纳。对于关键的安全决策,务必进行人工验证。
**敏感信息保护**:不要向模型输入包含个人隐私、商业机密或国家安全信息的敏感数据。
**版本更新**:请定期检查并更新到最新版本,以获得更好的安全防护和功能改进。
**日志审计**:在生产环境中部署时,建议记录模型的使用日志,以便安全审计和问题追溯。
### 6.3 许可与贡献
**许可证**:Qing-Sec-14B的开源许可证请参考随项目发布的LICENSE文件。在使用、修改和分发本项目时,请务必阅读并遵守相关许可条款。
**贡献指南**:我们欢迎社区贡献,包括但不限于:
- 提交问题和建议
- 贡献代码和功能
- 完善文档和教程
- 分享使用经验
- 帮助测试和评测
请通过项目的GitHub页面提交您的贡献。
### 6.4 责任声明
**免责声明**:新疆幻城网安科技有限责任公司(幻城科技)对因使用Qing-Sec-14B而产生的任何直接或间接损失不承担责任。用户应自行承担使用本模型的风险。
**无担保**:本软件按“原样”提供,不提供任何明示或暗示的担保,包括但不限于对适销性、特定用途适用性和非侵权性的担保。
---
## 七、数据与工具来源
### 7.1 数据集
Qing-Sec-14B的训练使用了我们自己开源的全网最大网络安全数据集。该数据集是我们团队经过多年积累和整理形成的,包含以下特点:
- **规模宏大**:包含数百万条网络安全相关的专业记录
- **来源广泛**:整合了全球各地的中英文安全资料
- **质量保证**:经过多轮清洗和人工审核
- **持续更新**:我们会定期更新数据集,添加新的安全知识
### 7.2 DataSanity工具
在数据处理过程中,我们使用了自主研发并开源的DataSanity工具。DataSanity是一款功能强大的大模型数据处理工具,提供了以下核心功能:
**数据清洗**:支持多种数据清洗策略,包括去重、过滤、标准化等
**数据评测**:提供全面的数据质量评估指标
**数据蒸馏**:智能提取最有价值的训练样本
**格式转换**:支持多种数据格式的转换和适配
DataSanity项目地址:https://github.com/yangqi1309134997-coder/DataSanity
### 7.3 开源组件
Qing-Sec-14B的开发过程中使用了以下开源组件(部分):
- Hugging Face Transformers
- PyTorch
- DeepSpeed
- bitsandbytes
- vLLM
- llama.cpp
我们感谢这些开源项目的贡献者和维护者。
---
## 八、常见问题解答
### 8.1 基础问题
**Q: Qing-Sec-14B需要多大的显存才能运行?**
A: 这取决于您选择的量化级别。FP16推理建议至少8GB显存,INT8量化建议至少4GB,INT4量化建议至少2GB。
**Q: 模型是否支持在CPU上运行?**
A: 是的,模型支持CPU推理,但速度会比GPU慢很多。对于实时性要求高的场景,建议使用GPU。
**Q: 如何获取模型的最新版本?**
A: 请关注我们的GitHub仓库和官方网站,会定期发布更新版本。
### 8.2 技术问题
**Q: 模型支持哪些推理框架?**
A: 目前支持Hugging Face Transformers、vLLM、llama.cpp和ONNX Runtime。
**Q: 如何进行模型微调?**
A: 我们提供了完整的微调脚本和文档,可以在GitHub仓库中找到。请注意,微调需要相当的GPU资源。
**Q: 模型是否支持多轮对话?**
A: 是的,模型支持多轮对话。您可以通过维护对话历史来实现持续的交互。
### 8.3 商业问题
**Q: Qing-Sec-14B可以商用吗?**
A: 请参考LICENSE文件中的具体条款。不同的许可版本对商业使用有不同的规定。
**Q: 是否提供企业定制服务?**
A: 是的,我们提供基于Qing-Sec系列模型的企业定制服务,包括模型微调、私有化部署、技术支持等。请通过官方网站联系我们。
---
## 九、更新日志
### v1.0.0 (2024-03)
- 首次发布Qing-Sec-14B开源版本
- 提供FP16、INT8、INT4三种量化模型
- 完整的推理代码和部署示例
- 基于最大规模网络安全数据集训练
- 内置安全对齐机制
---
## 十、版权声明与联系方式
### 10.1 版权信息
**版权所有**:新疆幻城网安科技有限责任公司(幻城科技)
**官方网站**:https://hcnote.cn
**联系方式**:
- 抖音:幻城云笔记
- 哔哩哔哩:幻城云笔记
- 微博:幻城云笔记
- QQ群:253193620
### 10.2 商标声明
“幻城”、“Qing-Sec”等商标归新疆幻城网安科技有限责任公司所有。未经书面许可,任何单位和个人不得擅自使用。
### 10.3 隐私声明
我们重视用户隐私保护。在使用本项目过程中:
- 我们不会收集您的个人数据
- 您向模型输入的数据不会被用于任何形式的再训练
- 部署在您本地环境的数据完全由您掌控
---
---
<div align="center">
**感谢您关注Qing-Sec-14B项目**
*让网络安全更轻盈、更安全*
© 2024 新疆幻城网安科技有限责任公司(幻城科技)版权所有
</div>
|