最近刚好在整理一个开源项目的依赖图谱,顺手统计了下2023年Q4到2024年Q2期间GitHub上Python生态中AI生成代码的渗透率——用的是基于AST结构熵和训练数据指纹的混合检测模型(参考Google Research去年那篇《Detecting LLM-Generated Code via Structural Artifacts》)。结果有点意思:在非fork类新仓库中,约37.2%的初始commit包含高概率AI生成片段,但真正被下游项目实际import并长期使用的,不到其中的8%。
这说明一个问题:噪声虽多,但生态本身有筛选机制。问题不在于AI代码“存在”,而在于搜索排序算法没跟上内容异质化的速度。GitHub的默认排序仍以star/fork数+最近活跃度为主,但AI批量生成的仓库往往通过高频commit或bot-like互动制造虚假活跃信号。比如我抓到一个案例:某“自动调参工具”repo在两周内获得142个star,后来发现其中89个来自同一IP段的自动化账号,而代码里连scikit-learn的版本都写死成0.24——这版本连Python 3.10都不兼容。
其实可以换个思路:与其抱怨垃圾代码泛滥,不如推动元数据标注。像arXiv对LLM生成论文的声明要求那样,GitHub完全可以加个可选的ai-generated: true标签(甚至用commit message convention强制),配合社区审核徽章。Hugging Face已经在做类似的事——他们的Model Hub要求提交者勾选是否使用AI辅助训练数据清洗。
说到这儿,想起上个月帮一个性健康App做隐私合规审计,他们后端有个用Copilot生成的OAuth2中间件,居然把refresh token直接存内存没加密……这种坑确实致命。但反过来看,如果开发者能明确标出“此模块由AI生成,未经安全审计”,反而比现在这种沉默污染更可管理。
所以或许我们真正需要的不是更聪明的AI筛AI工具,而是一套轻量级的内容溯源协议?就像食品包装上的配料表,至少让人知道这碗面里有没有科技与狠活。