SemEval(International Workshop on Semantic Evaluation)系列研讨会由ACL(Association for Computational Linguistics、国际计算语言学协会)下设的SIGLEX特别兴趣小组每年赞助并举办,其宗旨是提高自然语言语义分析领域的SOTA水平、并协助创建相关领域的高质量数据集。

SemEval每年组织计算语义分析方面的一系列竞赛;来自世界各地的参赛团队展示并比较各自的参赛系统。竞赛结果于每年的SemEval会议上进行交流总结。
SemEval 2026的各项竞赛已经结束。今年的竞赛包括13个任务(Tasks,可以理解为竞赛分项);多数任务中还包括多个子任务(Subtasks/Tracks,可以理解为竞赛小项)。
本文简要回顾一下SemEval 2026中任务13的赛题和竞赛结果。
识别AI生成的文本已经得到不少研究,但如何识别AI生成的软件代码,相关的研究还不是很多。准确地识别AI生成的软件代码,对于教育场景中学生编程作业的评判、工作面试场景中求职人员提交代码的评测、开发场景中软件代码质量和安全性的保障等无疑会起到关键作用[1]。
识别AI生成的代码过去常依靠查看代码中的命名、格式等,然而较新的代码生成模型可以模仿人在代码命名、代码格式、代码注释、代码结构等方面的风格,从而使得过去比较简单的识别手段难以奏效。
在这样的背景下,SemEval 2026中的任务13围绕AI生成软件代码的自动识别,设立了以下三个子任务[1]。
子任务A(Subtask A)
子任务A要求自动判断一段软件代码是AI生成的、还是人编写的。
该子任务中的代码数据不仅涉及C++、Python、Java等多种编程语言,还包含算法代码(类似于LeetCode的解题代码)、通用代码等多种类型的代码。评测阶段的代码数据相比开发阶段,覆盖更多种编程语言及更多种类型的代码,以检验参赛系统应对新的代码数据的能力。
子任务B(Subtask B)
子任务B要求自动判断一段代码是人编写的、还是哪个系列的模型生成的;需要识别的模型系列包括DeepSeek、Qwen、Yi(即“01”系列)、BigCode(即“StarCoder”系列)、Gemma、Phi、LLaMA、IBM-Granite、Mistral、以及OpenAI(即“GPT”系列)。
评测阶段的代码数据相比开发阶段,在每个模型系列中采用了更多版本的模型来生成代码。
子任务C(Subtask C)
子任务C要求自动判断一段软件代码属于以下哪一类:(1)完全由人编写的代码、(2)完全由AI生成的代码、(3)由人编写但由AI部分完成或重写的代码、(4)由AI模型基于提示语或强化训练而生成的、近似于人的编写风格的代码。
以上3个子任务的评测指标均采用Macro-F1。该指标首先计算每个数据分类的F1,然后取各个数据分类F1的平均值。
任务13的3个子任务均发布在了Kaggle竞赛平台上。3个子任务分别吸引了81个、34个和32个团队参赛。
任务13的比赛结果、以及参赛团队的解题思路都是怎样的?敬请阅读本文的下半部分。
[1] SemEval-2026 Task 13: Detecting Machine-Generated Code with Multiple Programming Languages, Generators, and Application Scenarios
https://aclanthology.org/2026.semeval-1.445/
文献使用许可协议:CC BY 4.0
https://creativecommons.org/licenses/by/4.0/