⏶3
编程概念和神经元如何在代码语言模型中共享
发表
由
Amir Hossein Kargaran 提交

作者:
Amir Hossein Kargaran,
Yihong 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 获取。

在编码任务中,对多种编程语言和英语进行预训练如何影响大型语言模型(LLM)的概念空间?
更具体地说:
RQ1. LLM是否将英语或某种编程语言作为一种枢纽语言(pivot language)来使用?
RQ2. 我们能否识别出针对编程语言和英语的特定语言神经元?编程语言和英语之间是否相互影响,它们之间是否存在共享神经元?