Page 73 - 《软件学报》2025年第4期
P. 73

孙伟松 等: 深度代码模型安全综述                                                               1479


                                        表 5    深度代码模型安全性研究常用基准数据集             (续)

                              发表
                    数据名称           编程语言     数据来源      数据量              下载地址                  应用场景
                              年份
                                     Java
                                    C/C++
                                    Python                                               程序理解 (代码摘要、
                  CodeXGLUE [83]  2021  PHP  开源项目      -     https://github.com/microsoft/CodeXGLUE 代码克隆检测、代码
                                   JavaScript                                               漏洞检测等)
                                     Ruby
                                      Go
                    CodeQA [84]  2021  Java  开源项目     119 778  https://github.com/jadecxliu/codeqa  代码问答
                                    Python            70 085
                     APPS [85]  2021  Python  OJ平台    10 000  https://people.eecs.berkeley.edu/~hendryck  代码生成
                                                                      s/APPS.tar.gz
                                   汇编语言                      https://github.com/dessertlab/Shellcode_IA  汇编代码生成、
                            [86]
                 Shellcode_IA32  2021       开源代码      3 200
                                     指令                                   32                汇编代码摘要
                  SecurityEval [87]  2022  Python  开源项目  130  https://github.com/s2e-lab/SecurityEval  代码生成
                                        万个无注释函数. 这些函数涵盖了
                           [88]                                    https://github.com/tuhh-
                  LLMSecEval  2023  Python C  开源项目     150                                   代码生成
                                                                    softsec/LLMSecEval
                   PoisonPy [50]  2023  Python  开源项目   823             暂未公开                  代码生成
                    SPEC2000  数据集是由标准性能评估公司          (SPEC) 发布的一组基准测试, 用于评估计算机系统的性能. 该数据
                 集可用于训练二进制代码相关的任务, 并评估二进制代码模型的安全性. SPEC2000                       数据集包含一系列基准测试
                 程序, 涵盖了不同的应用领域, 以提供全面的性能评估. 这些基准测试程序主要分为两个子集, 分别是                              CINT2000
                 以及  CFP2000.
                    BigCloneBench  是由  Svajlenko  等人  [47] 在  2014  年提出的, 该数据集可用于训练代码克隆检测和代码克隆搜索
                 模型. 该数据集由大数据项目存储库           IJaDataset 2.0 (http://secold.org/projects/seclone) 中已知真假克隆的代码片段
                 构成. 作者使用搜索启发式方法自动识别             IJaDataset 中可能实现目标功能的代码片段, 并在基准测试中填充了标
                 记过程发现的真克隆和假克隆. 作者对每个克隆进行典型化                      (typify) 并测量它们的语法相似性. 当前版本的
                 BigCloneBench  涵盖  10  种功能, 包括  600  万个真克隆对和  26  万个假克隆对.
                    Open judge (OJ) dataset 是由  Mou  等人  [74] 在  2016  年提出的源代码分类基准数据集. 该数据可用于训练代码分
                 类任务模型. 该数据集来自开放的           OJ 平台, 由  52 000  个带有问题编号标签的      C/C++代码文件组成, 该      OJ 中有
                 104  个类, 每个类包含   500  个代码文件.
                    CodeSearchNet 是  2019  年  Husain  等人  [46] 提出的数据集, 该数据主要可用于训练代码搜索和代码摘要模型. 该
                 数据集包含    99  个自然语言查询     (NL query), 以及来自  CodeSearchNet 语料库的约  4 000  条注释, 还包括来自开源
                 代码的约    600  万个函数. 作者将这些函数与对应文档中的自然语言进行配对, 组成注释-代码数据对, 其中注释是
                 顶层函数或方法注释        (例如  Python  中的  docstrings), 而代码是一个完整的函数或方法. 最终构造的数据集中约有
                 200  万个带注释函数和约      400                          6  种编程语言, 包括    Go、Java、JavaScript、PHP、
                 Python  和  Ruby. 该数据集可用于代码检索、代码理解和代码推理等任务.
                    Code2Seq  是由  Alon  等人  [50] 在  2019  年提出的, 该数据集可用于训练代码摘要、代码文档生成和代码搜索模
                 型. 该数据集包含     Java 程序语言数据, 分为     Java-small、Java-med  和  Java-large 这  3  种不同大小规模. 其中, Java-
                 small 从  11  个大型  Java 项目搜集而来, 包含大约   70  万个程序示例, 并按照    9:1:1  划分为训练集、验证集和测试集.

                 Java-med  收集自  GitHub  的  1 000  个大型  Java 项目, 包含大约  400  万个程序示例, 其中训练集、验证集和测试的划
                 分比例为    8:1:1. Java-large 来自  GitHub  上  9 500  个大型  Java 项目, 该数据集包含大约  1 600  万个程序示例, 并以
                 18:5:6  的比例划分为训练集、验证集和测试集.
                    Devign  是由  Zhou  等人  [48] 在  2019  年提出的用于缺陷检测任务的数据集, 可用于训练代码缺陷检测模型. 作者
   68   69   70   71   72   73   74   75   76   77   78