【论文阅读】Large Language Models for Equivalent Mutant Detection: How Far Are We?

devtools/2024/11/20 3:46:58/

阅读笔记:Large Language Models for Equivalent Mutant Detection: How Far Are We?

1. 来源出处

本文发表于《ISSTA’24, September 16–20, 2024, Vienna, Austria》会议,由Zhao Tian, Honglin Shu, Dong Wang, Xuejie Cao, Yasutaka Kamei和Junjie Chen撰写。

2. 先前方法存在的不足

传统的等价突变检测(EMD)技术存在以下不足:

  • 基于规则的方法:如编译优化、约束测试等,在复杂开发场景中表现有限。
  • 机器学习方法:包括KNN、SVM等传统分类器,以及基于树的神经网络模型,虽然通过代码特征提取有所改进,但无法充分捕捉程序语义差异,尤其在语法细微差别方面。
  • 数据稀缺性:训练数据不足,难以泛化到未见过的突变情况。
3. 现阶段面临的挑战

尽管大语言模型(LLMs)在自然语言处理(NLP)和软件工程(SE)领域表现出色,但在等价突变检测中的有效性和效率尚不明确。

4. 本文如何解决这些挑战

本文通过大规模实证研究,探讨了LLMs在等价突变检测中的应用,具体方法如下:

  • 数据集构建:使用MutantBench数据集,包含4,400个C/C++和Java突变对。
  • 策略评估:比较LLMs与现有EMD技术的有效性,并评估LLMs的不同策略(如代码嵌入和提示)。
  • 正交性分析:评估不同EMD技术之间的正交性。
  • 时间效率测量:计算训练和推理的时间开销。
5. 具体介绍本文使用的方法
  • LLMs选择:包括CodeBERT、GraphCodeBERT、PLBART、CodeT5、UniXCoder、CodeT5+、StarCoder、Code Llama和ChatGPT。
  • 预训练代码嵌入策略:利用LLMs的编码器部分生成代码嵌入向量,并通过多层感知机(MLP)分类器进行预测。
  • 微调策略:在训练过程中同时更新编码器和分类器的参数。
  • 零样本提示策略:直接利用突变对和结构指令提示LLMs进行检测。
  • 少量样本提示策略:通过少量示例学习突变对和语义等价性的关系。
  • 指令微调策略:在包含指令的训练集中微调LLMs,以提高检测性能。
    在这里插入图片描述
6. 实验设计和结果
  • RQ1:LLMs的性能

    • 结果表明,LLMs在所有基准中的表现均优于传统方法。例如,UniXCoder和CodeT5+的F1分数分别为81.88%,显著高于其他方法。
    • 小尺寸的LLMs(如UniXCoder)在等价突变检测中表现最佳,表明数据模态和预训练任务的重要性。
  • RQ2:最佳策略

    • 微调的UniXCoder在所有组合中表现最佳,F1分数提升1.16%至78.85%。
    • 代码嵌入策略(无论是预训练还是微调)都优于提示策略,尤其是在精度、召回率和F1分数上。
  • RQ3:EMD技术间的正交性

    • LLMs基方法和微调代码嵌入策略在独特正确/错误检测和各突变操作符的检测性能上均优于其他方法。
  • RQ4:效率

    • LLMs基方法的推理时间略长于传统方法,但因其高准确性,额外的成本是可接受的。
    • 微调的UniXCoder训练时间为2566.1184秒,是预训练版本的三倍,表明需要权衡资源消耗和效果。
7. 讨论与未来工作
  • 模型大小的影响:研究发现模型大小并非决定性因素,数据模态和预训练任务更为重要。
  • 嵌入质量的影响:t-分布随机邻域嵌入(t-SNE)分析显示,微调的UniXCoder在嵌入空间中的分离度更高,表明嵌入质量与检测性能密切相关。
  • 未来研究方向:跨编程语言的研究、Chain-of-Thought提示技术、避免生成等价突变、重复突变检测等。
8. 结论

本文通过大规模实证研究验证了LLMs在等价突变检测中的有效性和效率,特别是微调的代码嵌入策略表现最佳。此外,本文还为未来的研究提供了方向,如跨语言研究、CoT提示技术、结合避免生成等价突变的策略等。


以上内容详细总结了论文的主要贡献、方法、实验设计及结果,并讨论了未来的研究方向。


http://www.ppmy.cn/devtools/135374.html

相关文章

机器学习算法之KNN分类算法【附python实现代码!可运行】

一、简介 在机器学习中,KNN(k-Nearest Neighbors)分类算法是一种简单且有效的监督学习算法,主要用于分类问题。KNN算法的基本思想是:在特征空间中,如果一个样本在特征空间中的k个最相邻的样本中的大多数属…

Dowex 50WX8 ion-exchange resin可以用于去除水中的金属离子(如钠、钾、镁、钙等)和其他杂质,提高水质,11119-67-8

一、基本信息 中文名称:Dowex 50WX8 离子交换树脂 英文名称:Dowex 50WX8 ion-exchange resin CAS号:11119-67-8 供应商:陕西新研博美生物科技 外观:米色至浅棕色或绿棕色粉末/微球状 纯度:≥95% 分子…

数据分析-48-时间序列变点检测之在线实时数据的CPD

文章目录 1 时间序列结构1.1 变化点的定义1.2 结构变化的类型1.2.1 水平变化1.2.2 方差变化1.3 变点检测1.3.1 离线数据检测方法1.3.2 实时数据检测方法2 模拟数据2.1 模拟恒定方差数据2.2 模拟变化方差数据3 实时数据CPD3.1 SDAR学习算法3.2 Changefinder模块3.3 恒定方差CPD3…

Elasticsearch 重建索引 数据迁移

Elasticsearch 重建索引 数据迁移 处理流程创建临时索引数据迁移重建索引写在最后 大家都知道,es的索引创建完成之后就不可以再修改了,包括你想更改字段属性或者是分词方式等。那么随着业务数据量的发展,可能会出现需要修改索引,或…

跨平台WPF框架Avalonia教程 五

样式 Avalonia UI 的样式系统是一种可以在控件之间共享属性设置的机制。 提示 在 Avalonia 中,Style 更类似于 CSS 样式,而不是 WPF/UWP 样式。在 Avalonia 中,与 WPF/UWP 中的样式相当的是ControlTheme。 工作原理​ 实质上&#xff0c…

用pandoc工具实现ipynb,md,word,pdf之间的转化

Pandoc 是一个强大的工具,可以实现多种文件格式之间的转换,包括 Jupyter Notebook (.ipynb)、Markdown (.md)、Word (.docx)、PDF 等格式。以下是具体的实现方法: 1. 安装 Pandoc 确保已安装 Pandoc: Linux: sudo apt install p…

C/C++精品项目之图床共享云存储(4):注册,登录,token,排序文件

目录 一:CHttpConn 类 二:注册 三:登录 四:获取文件 C/C精品项目之图床共享云存储(1):基础组件-CSDN博客 C/C精品项目之图床共享云存储(2):MySql连接池_m…

百度世界大会2024,展现科技改变生活的力量

百度世界2024大会以“应用来了”为主题,于2024年11月12日在上海世博中心隆重举行。大会吸引了众多科技爱好者、行业专家和媒体人士参与,共同见证AI技术的最新进展和未来趋势。 会上,李彦宏首先宣布了检索增强的文生图技术——文心iRAG的正式亮…