摘要
arXiv:2504.21043v2 宣告类型:替换-交叉
摘要:大型语言模型(LLMs)在从自然语言指令生成代码方面表现出色,然而它们往往缺乏对安全漏洞的理解。这一限制使得LLMs难以避免生成代码中的安全风险,特别是在智能合约开发等高安全性编程任务中。研究人员试图通过训练模型识别出漏洞代码和修复后的代码片段来增强这些模型的安全意识。然而,这种方法严重依赖于手动标记的漏洞数据,而这些数据只有对于像Python和C++这样的流行语言才有。对于Solidity这样的低资源语言,它在智能合约中的使用,大规模标注的数据集稀缺且难以获得。为了解决这一挑战,我们引入了CodeBC,这是一种专门设计用于生成区块链中安全智能合约的代码生成模型。CodeBC采用了基于CodeLlama的三阶段微调方法,与之前的方法不同,它不依赖于成对的漏洞位置标注。相反,它利用漏洞和安全标签来教导模型区分漏洞代码和安全代码。在推理阶段,模型利用安全标签生成安全且稳健的代码。实验结果表明,CodeBC在BLEU、CodeBLEU和编译通过率等方面优于基线模型,同时显著降低了漏洞率。这些发现验证了我们三阶段微调策略的有效性和成本效益,使CodeBC成为生成安全智能合约代码的有前途的解决方案。