编程概念和神经元如何在代码语言模型中共享

发表
Amir Hossein KargaranAmir Hossein Kargaran 提交
作者: Amir Hossein KargaranAmir Hossein Kargaran, Yihong LiuYihong Liu, François Yvon, Hinrich Schütze

摘要

多项研究探索了大型语言模型(LLM)在编码任务中的机制,但大多数集中于单语环境下的编程语言(PLs)。本文研究了LLM概念空间中多种PL与英语之间的关系。我们使用两个基于Llama的模型对21对PL执行了少样本翻译任务。通过解码此任务中中间层的嵌入,我们观察到概念空间更接近英语(包括PL关键字),并在中间层的后半部分赋予英语标记高概率。我们分析了11种PL和英语的神经元激活,发现虽然特定语言的神经元主要集中在底部层,但那些每种PL独有的神经元往往出现在顶部层。对于与多种其他PL高度对齐的PL,识别特定语言的神经元是不可行的。这些PL也往往比其他PL具有更大的关键字集,并且无论在翻译任务中输入/输出PL是什么,都更接近模型的概念空间。我们的发现揭示了LLM内部如何表示PL,揭示了模型概念空间中的结构模式。代码可在 https://github.com/cisnlp/code-specific-neurons 获取。
查看 arXiv 页面查看 PDF
编程概念和神经元如何在代码语言模型中共享

评论

Amir Hossein KargaranAmir Hossein Kargaran
论文作者
论文提交者

在编码任务中,对多种编程语言和英语进行预训练如何影响大型语言模型(LLM)的概念空间?

更具体地说:

RQ1. LLM是否将英语或某种编程语言作为一种枢纽语言(pivot language)来使用?

RQ2. 我们能否识别出针对编程语言和英语的特定语言神经元?编程语言和英语之间是否相互影响,它们之间是否存在共享神经元?