我们考察了当前商业大语言模型(LLM)在零样本条件下能否辨认出自己生成的代码。五个模型分别在 MBPP、HumanEval 和 DS-1000 基准上生成解答,另外七个模型仅在 MBPP 上生成。随后这些模型被用作评估者,完成四类任务:
- 在两段解答中挑选出自己的那一段;
- 判断单个解答是否为自己写的;
- 在两段解答中识别出指定模型的作品;
- 在盲评条件下对代码质量进行打分。
单解答任务的平衡准确率在 49%‑58% 之间,原始准确率 38%‑67% 主要反映模型倾向于声称自己是作者的程度。配对任务的准确率在 14 种评估‑对手组合中与评估者解答长度的差异呈现 $r=0.93$ 的高度相关性。对指定模型的归属在部分配对上成功,而在另一些配对上则系统性地出现相反结果。
我们设计了一套基于规则的归一化流程,去除文档字符串、注释、类型提示以及局部变量名。该流程在保持 Pass@1 指标的同时,使 12 组实验中有 10 组的结果回落至随机水平;剩余两组的表现仍可由长度差异解释,尽管训练的分类器仍能在大多数归一化后配对中区分出差异。Claude Haiku 在自我偏好上的优势也随归一化消失。
建议:报告平衡准确率、提供启发式基线并检查标签一致性,以避免误解模型的自我归属能力。
点评:本研究揭示了 LLM 在代码归属任务中更多依赖表面特征(如代码长度)而非深层语义,提示评估框架需慎重设计,防止模型间的潜在协同或自我偏好误导。