这篇论文研究代码语言模型在提示未指定语言时倾向于生成Python这一行为的机制成因,探讨该偏好是否由模型内部一小群可定位的组件所产生。作者对十种开源代码模型(五种基础版、五种指令微调版)、三种目标语言、两套提示集和两种组件预算,共55种模型—语言组合运行了统一的因果分析流程。五项主要发现包括:该偏好随模型规模增大而增强,且在指令微调后平均提升12%;其测量幅度很大程度上取决于探测方式,换用平行语料后同一测量从约1.6降至约0.01;偏好是否显得局部化取决于搜索允许保留的组件数量,预算为12时仅15种设置中1种通过随机对照检验,预算为40时升至6种;小预算研究认为无效的干预有时实际有效;而效应显著却指向目标语言之外的电路均来自提取失败的设置,可作为诊断信号。其核心意义在于,关于某种行为是否局部化的结论,往往取决于论文通常不予报告的分析选择。
| CodeLMs | 代码语言模型,指专门用于处理编程代码的预训练语言模型。 |
| mean ablation | 均值消融,一种通过将组件激活替换为其均值来评估组件重要性的干预方法。 |
| activation patching | 激活修补,一种通过替换模型内部激活来测试因果关系的技术。 |
| greedy circuit extraction | 贪心电路提取,一种逐步选择对特定行为最重要的组件的算法。 |
| activation steering | 激活引导,通过添加方向向量来改变模型内部激活从而控制其输出的方法。 |
📱 每天一份 AI 前沿日报
关注公众号,每天 09:00 推送 · 不错过任何重磅