Github工作流也能用大语言模型来创建了
发布时间:2024年03月19日
LLM应用
软件开发
持续集成
摘要
GitHub Workflows作为一款广受欢迎的CI平台,允许开发者借助YAML格式的工作流程文件自动执行各类软件开发任务。然而,设计出既有效又安全的工作流程实属不易,一不小心就可能引入供应链漏洞。近期,大型语言模型(LLMs)在多项软件开发任务中的表现令人瞩目。尽管如此,GitHub工作流程因其独特的结构和语义特性,给LLMs带来了新的挑战。本研究首次系统探究LLMs在处理五项不同难度层级的工作流程相关任务时的有效性。我们精心挑选了约40万个示例工作流程,制作了一系列详略不等的提示,并针对性地对LLMs进行微调训练。通过对三个顶尖LLMs及其微调版本的深入评估,我们发现了关于当前LLMs在该领域所展现的优势与局限的一些有趣结论。
框架
作者创建了三个GitHub工作流数据集,分别为 𝐷1、𝐷2 和 𝐷3,用于研究我们的研究问题。我们选择了三种最先进的LLMs(GPT-3.5、CodeLlama、StarChat),并使用我们数据集的混合子集对它们进行了微调。我们对现成的LLMs及其微调版本进行了调查。
这篇文章的目标是评估LLMs在执行与GitHub工作流相关的各种任务方面的有效性。我们的研究分为以下三个研究问题:
- • RQ1:工作流生成:
- • LLMs在生成GitHub工作流(T1)方面的有效性如何?
生成的工作流有多安全和有效?
- • RQ2:缺陷检测:
- • LLMs能够有效地检测到缺陷吗?
包括语法错误(T2)和代码注入漏洞(T3)?
- • RQ3:缺陷修复:
- • LLMs在修复缺陷方面的有效性如何?
包括语法错误(T4)和代码注入漏洞(T5)?
Prompt
作者提供每一步检测的核心Prompt(见下表)
Arxiv[1]
引用链接
[1]
Arxiv: https://arxiv.org/abs/2403.12446