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

Source Code Summarization in the Era of Large Language Models 论文笔记

介绍

(1) 发表:ICSE'25

(2) 背景

之前的研究表明,与传统的代码摘要模型相比,LLM 生成的摘要在表达方式上与参考摘要有很大不同,并且倾向于描述更多的细节。因此,传统的评估方法是否适合评估 LLM 生成摘要的质量仍然未知

(3) 贡献

受到 NLP 工作的启发,本文对使用 LLM 本身作为评估方法的可能性做了全面的探索研究(不同 LLM/提示/设置,不同类型的语言)

工作

(1) 代码总结及其有效性评估的一般流程

image-20250918141631819

(2) 研究设计与结论

  • RQ1:哪些评估方法适合评估 LLM 生成的总结质量?

    实验并分析了以下五种评估方式:

    • 基于摘要之间文本相似度的指标:将生成摘要中的 n-gram 计数与参考摘要进行比较(包括 BLEU、METEOR 和 ROUGE-L)

    • 基于摘要之间语义相似度的指标:基于语义相似性的方法可以有效缓解基于单词重叠的指标问题,即句子中并非所有单词都具有相同的重要性,并且许多单词具有同义词(包括 BERTScore、SentenceBert 与余弦相似度SBCS、SentenceBert 与欧几里得距离 SBED)

    • 基于摘要与代码的语义相似度的指标:这种评估方法不依赖于参考摘要,可以有效避免与低质量和过时的参考摘要相关的问题(包括 SIDE)

    • 人工评估:邀请具有软件开发经验的志愿者进行 1~5 评分并取平均分数

    • 基于 LLM 的评估方法:与人类评估类似,当使用 LLM 作为评估者时,要求 LLM 进行 1~5 评分

    得到了以下发现:

    • 人工评估结果表明现有数据集的参考摘要的质量并不高
    • 自动评估结果表明基于相似性的指标会给专业代码 LLM 更高的分数,基于 LLM 的评估会给通用 LLM 更高的分数
    • 在所有自动化评估方法中,基于 GPT-4 的方法总体上与人类评估的相关性最强。因此,建议采用基于 GPT-4 的方法来评估LLM生成摘要的质量
  • RQ2:不同的提示技术在使 LLM 适应代码总结任务方面的效果如何?

    分析了 Zero-Shot、Few-Shot、Chain-of-Thought、Critique、Expert 五种 Prompt 方式。预期性能更好的更高级提示技术不一定优于简单的零样本提示。在实践中,选择适当的提示技术需要考虑基本 LLM 和编程语言

  • RQ3:不同的模型设置如何影响 LLM 的代码总结性能?

    Top_p 和 temperature 对生成摘要质量的影响特定于基础 LLM 和编程语言

  • RQ4:LLM 在总结用不同类型的编程语言编写的代码片段方面表现如何?

    GPT-4 在所有五种类型的编程语言上都超过了其他三个 LLM,所有四个 LLM 在总结 LP (逻辑编程语言)代码片段方面表现较差

  • RQ5:LLM 在不同类型意图的总结上表现如何?

    分析了五种不同意图类型的摘要:内容、原因、如何完成、属性、使用方法、其他。所有 LLM 都擅长生成不同类别的摘要,GPT3.5 和 GPT-4 在生成属性摘要方面的表现比其他类别的摘要差

总结

对基于 LLM 的代码总结评估进行了多个方面的全面研究,探究了 LLM 评估方法的有效性,并且公开了两个数据集

http://www.wxhsa.cn/company.asp?id=7952

相关文章:

  • 线性回归-入门案例
  • XXL-JOB(3)
  • ClickHouse 表引擎深度解析:ReplacingMergeTree、PARTITION、PRIMARY KEY、ORDER BY 详解 - 若
  • UOS统信服务器操作系统V20(1070)安装mysql8.4.5(建议安装glibc2.28版本)
  • web5(phps源码泄露)
  • web3(自带网络工具包查看数据)
  • web17(备份的sql文件泄露)
  • web11(通过Dns检查查询Flag)
  • ctfshow_web11
  • ctfshow_web13
  • ctfshow_web9
  • 锁屏界面无法通过任意键弹出开机密码
  • 应急响应-日志分析 - voasem
  • ctfshow web 10
  • SMA的射频连接器
  • 什么是Elasticsearch?它与其他搜索引擎相比有什么优势?
  • pdf.js-2.3.0国内下载地址
  • opencv学习记录2
  • get请求图片文件转为base64编码
  • BMS与威纶通人机界面通信问题
  • Blazor全栈是个陷阱
  • 大型语言模型安全实践:Copilot安全防护经验总结
  • 一些编程语言的发展史
  • mysql生成uuid,3种实用方法详解
  • vmware ubuntu共享文件夹
  • 【10章】n8n+AI工作流:从入门到企业级AI应用实战
  • CodeGPT AI代码狂潮来袭!个人完全免费使用谷歌Gemini大模型 超越DeepSeek几乎是地表最强
  • svg和canvas的区别
  • 固态电池革命:我们离“续航焦虑终结者”还有多远?
  • 心得