LLM2D
CodeGRAG:通过图形检索增强生成弥合自然语言与编程语言之间的差距
CodeGRAG: Bridging the Gap between Natural Language and Programming Language via Graphical Retrieval Augmented Generation
作者: Kounianhua Du, Jizheng Chen, Renting Rui, Huacan Chai, Lingyue Fu, Wei Xia, Yasheng Wang, Ruiming Tang, Yong Yu, Weinan Zhang
发布日期: 10/3/2024
arXiv ID: oai:arXiv.org:2405.02355v2

摘要

利用大型语言模型生成代码在软件开发革命中展现出巨大的潜力。尽管通用大型语言模型展现出智能,但由于自然语言和不同编程语言之间存在的语法差距和词汇不匹配,它们在代码生成方面的特异性仍有提升空间。本文提出 CodeGRAG,一个图形检索增强代码生成框架,旨在提升大型语言模型的性能。CodeGRAG 基于代码块的控制流和数据流构建代码块的图形视图,以弥合编程语言和自然语言之间的差距,从而帮助基于自然语言的大型语言模型更好地理解代码语法,并作为不同编程语言之间的桥梁。为了将提取的结构化知识纳入基础模型,我们提出了 1) 一个硬元图提示模板,将具有挑战性的图形表示转换为信息丰富的知识,用于无调优模型;以及 2) 一个软提示技术,通过使用预训练的 GNN 专家模型微调模型,将编程语言的领域知识注入模型参数中。在包括 C++ 和 Python 语言在内的四个数据集上进行了各种实验和消融研究,以验证硬元图提示、软提示技术以及预训练 GNN 专家目标的有效性。CodeGRAG 提高了大型语言模型的代码生成能力,甚至可以为跨语言代码生成提供性能提升。该实现可在 https://anonymous.4open.science/r/Code-5970/ 获取。