从Token到文件:多粒度检测AI参与代码的新框架

双LoRA在token级计算似然比,实现行、块、文件多粒度AI代码溯源。
文章介绍了一种在token级别建模AI作者身份的代码溯源框架。传统方法将整个文件压缩为单一分数,当仅少数代码块由AI生成时证据会被平均稀释,且依赖表面风格特征易受格式化干扰。新框架冻结代码语言模型,配备分别在人写与机器写数据上训练的两个LoRA适配器,对每个token计算对数似然比作为局部证据,再由轻量预测头在行、块、文件三个粒度聚合,并利用上下文修正。训练数据通过续写和填充中间方式构造混合作者文件。内部测试在1%假阳性率下达到72.4宏F1;外部基准HybridCodeAuthorship零样本行级F1达62.5,超过原最佳结果;在19,445个真实人类文件上假阳性率稳定在0.55%-0.81%。文章也讨论了计算开销、跨语言泛化及微小重构检测等局限。

大语言模型生成代码已成常态,但如何区分纯人类编写的代码与AI参与过的代码(即文件中任何部分——哪怕极小——由模型生成或大幅修改)仍是难题。更棘手的是,我们不仅需要标记出这类文件,还要定位到具体哪些行或代码块由AI贡献。现有方法往往将整个文件压缩成一个分数,依赖表面风格特征或全局代码表示,当只有少数代码块涉及AI时,这种平均化处理会稀释证据。最近一篇论文提出了一种新框架,在token级别建模AI作者身份,并能在行、块、文件三个层级进行预测,为代码溯源提供了更精细的视角。
现有方法的局限:全局分数为何失效
传统AI代码检测方法通常将整个文件作为输入,输出一个二分类结果或概率分数。这种“文件级”判断在AI参与度较高时或许有效,但当一份文件只有几行由AI生成(例如补全或填充中间部分),全局特征会被大量人类代码淹没。论文指出,压缩为单一分数会“平均掉”关键证据,导致漏报。此外,基于表面风格特征(如变量命名、注释风格)的方法容易受到代码格式化工具或开发者习惯的干扰,鲁棒性不足。
另一个问题是,许多检测器在训练时使用完全由AI生成或完全由人类编写的文件,缺乏混合作者场景的样本,导致在实际协作编辑中表现不佳。论文作者认为,需要一种能够捕捉局部AI痕迹的方法,而不是依赖全局摘要。
核心思路:token级证据与多粒度聚合
该框架的核心是“在token级别建模AI作者身份”。具体来说,研究者使用一个冻结的代码语言模型,并为其配备两个低秩适配器(LoRA),分别在人写文件和机器写文件上单独训练。对于每个token,计算两个适配器下的对数似然比,这个比值提供了该位置由AI生成或修改的局部证据。
得到token级信号后,轻量级预测头在行和块级别聚合这些证据,并利用周围代码上下文进行修正。最终,局部预测被聚合为文件级决策。这种设计允许模型在多个粒度上输出结果:文件是否涉及AI、哪些行涉及AI、哪些代码块涉及AI。论文强调,这种层次化聚合避免了全局平均的弊端,尤其适合混合作者文件。
训练数据方面,研究者构建了混合作者文件:以人类原始代码为基础,生成对应的AI生成或AI修改版本,覆盖续写(continuation)和填充中间(fill-in-the-middle)等场景。这种数据构造方式更贴近真实开发中AI辅助编程的形态。
LoRA(低秩适配) 是一种参数高效微调技术,它冻结预训练模型的大部分权重,只在每一层注入少量可训练的低秩矩阵。具体做法是将权重更新分解为两个小矩阵的乘积,使可训练参数量降到原来的千分之一量级。在本框架中,两个LoRA适配器分别在人写代码和机器写代码上训练,共享同一个冻结基座模型,因此能以较低成本获得两套「作者风格」的参数化表示。推理时对每个token分别计算两个适配器下的对数似然,其差值即构成该位置的局部证据。相比训练两个独立模型,双LoRA方案显存占用小、切换灵活,也便于在同一基座上做受控对比。
对数似然比 是统计假设检验中的经典量,等于「AI模型下该token概率的对数」减去「人类模型下该token概率的对数」。取正说明该token更符合AI生成分布,取负则更符合人类分布。用比值而非绝对概率的好处是:它对代码中高频token(如括号、关键字)的基准概率做了抵消,从而突出真正具有判别性的位置。多个token的似然比可以累加为行级或块级分数,这也是后续轻量预测头做多粒度聚合的数学基础。
实验表现:内部测试与外部基准
在内部测试集上,该方法在11,773个AI参与文件(涵盖六种生成模式)和2,541个人类文件上评估,在1%假阳性率(FPR)操作点达到72.4的宏F1。这一结果说明,在严格控制误报的前提下,模型仍能保持较高的综合检测能力。
更值得关注的是跨数据集泛化能力。在HybridCodeAuthorship这一外部人机协作基准上(该基准没有训练集),该方法无需任何适配即达到62.5的行级F1,超过了原论文报告的56的最佳行级结果。这表明token级证据具有较强的迁移性,不依赖特定数据集的训练。
在真实人类代码上的误报控制同样关键。研究者在2022年之前创建的仓库中选取了19,445个人类编写文件,在迁移的1%阈值下,假阳性率保持在0.55%到0.81%之间。这一结果说明,该操作点在真实人类代码上能够稳定保持,不会因域偏移而大幅波动。
宏F1(macro-F1) 是先分别计算每个类别(此处的「AI参与」与「人类编写」)的F1分数再取算术平均,因此对类别不平衡不敏感,不会被数量占优的一方主导。论文在1% FPR操作点报告72.4的宏F1,意味着在把人类代码误判为AI的比例压到1%的前提下,两类判别的综合调和平均仍达到72.4(百分制)。假阳性率(FPR) 指人类编写却被判为AI参与的比例,在代码溯源场景中它直接关系到对开发者的误指风险,因此业界普遍采用固定低FPR、再看召回或F1的评价方式。外部基准HybridCodeAuthorship没有训练集,属零样本迁移评估,其行级F1达到62.5,说明token级信号学到的是较通用的作者痕迹,而非对特定数据集的过拟合。
多粒度检测的意义与挑战
多粒度检测的价值在于,它不仅能回答“这份文件是否涉及AI”,还能指出“哪里涉及AI”。对于代码审查、学术诚信、开源许可证合规等场景,定位到具体行或块比文件级标记更有用。例如,在代码审查中,审查者可以重点关注AI参与的部分,提高效率;在学术作业中,教师可以更精确地判断学生是否过度依赖AI。
然而,该方法也存在局限。首先,它依赖一个冻结的代码语言模型和两个适配器,训练和推理成本高于简单分类器。其次,token级似然比信号可能受到代码上下文和模型本身偏差的影响,对于某些编程语言或领域(如低资源语言)可能表现下降。此外,论文中的评估主要在Python等主流语言上进行,跨语言泛化仍需验证。
另一个挑战是AI修改与AI生成的区分。论文将“AI参与”定义为任何部分由模型生成或大幅修改,但实际中AI可能仅做微小重构(如重命名变量),这类修改的痕迹更弱,检测难度更大。论文的混合作者数据构造覆盖了续写和填充中间,但未明确讨论微修改场景。
未来方向与行业影响
这项研究为AI代码溯源提供了新思路:从全局分数转向局部证据,从单一粒度转向多粒度聚合。随着AI编程助手(如GitHub Copilot、Cursor)的普及,代码 authorship 的透明性将越来越受关注。多粒度检测框架有望集成到代码托管平台或CI/CD流程中,自动标记AI参与的部分,辅助开发者、审查者和合规团队。
未来工作可能包括:扩展到更多编程语言和领域;降低计算开销,使其适用于大规模代码库;结合其他信号(如编辑历史、提交模式)提升鲁棒性;以及探索对抗性场景,即开发者故意混淆AI生成痕迹的情况。
论文地址与代码尚未公开,但该框架的提出无疑推动了AI代码检测从“文件级二分类”向“细粒度定位”的演进。对于关注AI编程工具治理的研究者和工程师,这一方向值得持续跟踪。
相关推荐

Workbuddy零基础入门:桌面AI智能体如何落地工作流
Workbuddy桌面AI智能体零基础教程解读:从安装、积分领取到文件管理与自动化工作流搭建,对比CodeX的适用场景与成本差异,帮助职场人完成从AI提问者到AI管理者的思维转变。

OpenAI智能体新栈:计算机操作、决策API与超速工作流
OpenAI Dev Day发布智能体新栈:Computer Use操作速度超越普通人,Decisions API基于Luna实现极低延迟分类,Agents API开放同源计算机操作能力,GPT-6.1 Sol成本仅为Astra七分之一。本文梳理核心更新、实测数据与开发者落地要点。

梁文峰开源推理框架DeepInfo,硬刚美国禁令
DeepSeek在开源模型后再开源推理框架DeepInfo,包含GPU/CPU交叉流水线、小模型预判大模型复核、华为昇腾与英伟达芯片全面适配等技术,直面美国联邦禁令。本文解析其对AI产业落地的意义与开源策略。