- 简介编程语言具有丰富的语义信息,如由图形表示的数据流,而这些信息并不在源代码的表面形式中。最近的代码语言模型已经扩展到数十亿个参数,但是仅将源代码模型化为文本标记,而忽略了任何其他结构信息。相反,对编码代码的结构信息进行编码的模型对Transformer架构进行了修改,限制了它们的规模和与预训练LLM的兼容性。在这项工作中,我们通过GALLa-Graph Aligned Large Language Model兼顾两者的优点。GALLa利用图神经网络和跨模态对齐技术,在微调期间将代码的结构信息作为辅助任务注入到LLMs中。该框架既不依赖于特定的模型,也不依赖于特定的任务,因此可以应用于任何代码LLM以及任何代码下游任务,并且只需要在训练时从与微调数据无关的语料库中获取结构图数据,而在基线LLM上不会产生推理时间上的额外成本。在五个代码任务上进行的实验,使用了大小从350M到8B的四个不同基线LLM,验证了GALLa的有效性,即使对于像LLaMA3这样强大的模型,也能持续改进。
- 图表
- 解决问题GALLa试图将代码的结构信息注入到大型语言模型中,以提高代码下游任务的性能。
- 关键思路GALLa使用图神经网络和跨模态对齐技术作为辅助任务,将代码的结构信息作为输入注入到预训练的大型语言模型中,从而提高代码下游任务的性能。
- 其它亮点GALLa是一个模型无关且任务无关的框架,可以应用于任何代码下游任务和任何代码语言模型。在五个代码任务上进行的实验验证了GALLa的有效性,并且即使对于像LLaMA3这样的强大模型,也能够提高性能。
- 最近的相关研究包括CodeBERT、GraphCodeBERT和CodeXGLUE等。
沙发等你来抢
去评论
评论
沙发等你来抢