随着大语言模型(LLM)在代码生成领域的广泛应用,机器生成的代码与人类编写的代码之间的界限日益模糊,这引发了关于作者身份、学术评估完整性以及软件供应链信任的严重担忧。为应对这一挑战,SemEval-2026会议设立了任务13,其中子任务A专注于机器生成代码的检测问题,将其形式化为一个二元分类任务,对代码片段进行判断。该任务特别强调分布外(OOD)泛化能力,即模型需要能够处理训练阶段未见过的编程语言和应用领域,例如从Python和Java等常见语言泛化到Rust或Kotlin等较少见的语言,或者从网页开发领域泛化到嵌入式系统领域。
来自Dream团队的研究人员提出了一种名为SALSA(单次自回归大语言模型结构化分类)的新颖方法。与传统的基于手工特征或决策规则的检测技术不同,SALSA将分类任务直接委托给大语言模型本身。具体而言,该方法为每个类别(机器生成或人类编写)分配一个专用的输出标记,并训练模型在生成结构化响应时仅输出一个单一的标记来表示分类结果。这种设计避免了复杂的特征工程,充分利用了LLM的语义理解能力,能够捕捉代码中的细微风格差异。
为了提升模型在OOD场景下的鲁棒性,研究团队采取了多项策略。首先,他们在训练数据中实施了跨语言的平衡采样,确保模型不会偏向于某些常见语言,例如在包含多种语言的混合数据集中,对每种语言进行等量采样。其次,他们采用了参数高效的微调方法(如LoRA),仅调整模型的一小部分参数,从而降低过拟合风险。同时,他们使用了保守的训练策略——包括较低的学习率和仅一个训练周期——以防止模型过度记忆训练数据中的特定模式。这些技术的结合使得模型能够更好地泛化到新的语言和领域。
在SemEval-2026任务13的官方排行榜上,SALSA系统取得了OOD F1分数0.789的优异成绩,大幅超越了作为基线的CodeBERT模型(F1=0.305)。这一结果证明了基于LLM的端到端分类方法在机器生成代码检测任务中的有效性,尤其是在跨语言和跨领域的泛化方面。该研究已被ACL 2026的SemEval研讨会接收,论文由Ruslan Berdichevsky等人撰写,于2026年6月23日提交至arXiv。