- 简介自然语言生成代码在近年来取得了重大进展,这得益于大型语言模型(LLMs)的出现。虽然面向C、C++和Python等通用语言的生成显著提高,但LLMs在领域特定语言或DSL中的自定义函数名称方面仍然存在困难。这导致幻觉率和语法错误率较高,特别是对于具有大量自定义函数名称的DSL。此外,对函数名称的不断更新增加了挑战,因为LLMs需要保持最新。在本文中,我们提出了使用检索增强生成(或RAG)与LLMs进行DSL生成的优化方法,并进行了消融研究以比较这些策略。我们生成了一个训练集和测试集,其中包含大约700个公共API中的自动化任务的DSL。我们使用训练数据集对Codex模型进行微调以表示此DSL。我们的结果显示,微调模型在代码相似度指标上得分最高。通过我们的RAG优化,我们实现了相似度指标的平衡。然而,编译率显示,两个模型仍然经常出现语法错误,而基于RAG的方法更好2个百分点。相反,RAG模型的幻觉率在API名称方面落后1个百分点,在API参数键方面落后2个百分点。我们得出结论,优化的RAG模型可以匹配微调模型的质量,并为新的、未见过的API提供优势。
-
- 图表
- 解决问题优化Retrieval Augmented Generation(或RAG)与LLMs一起用于DSL生成,以解决LLMs在DSL中自定义函数名称方面的困难,导致较高的幻觉率和语法错误的问题。
- 关键思路使用RAG优化LLMs在DSL生成中的性能,通过fine-tuned模型和RAG模型的比较,展示了优化RAG模型可以匹配fine-tuned模型的质量并提供新API的优势。
- 其它亮点使用DSL生成的训练和测试数据集,fine-tuned Codex模型和RAG优化模型的比较,结果表明RAG优化模型可以匹配fine-tuned模型的质量,并提供新API的优势。
- 最近的相关研究包括:《CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing》、《GPT-3: Language Models are Few-Shot Learners》等。
NEW
提问交流
提交问题,平台邀请作者,轻松获得权威解答~
向作者提问

提问交流