夜班。监控室。23:47。
我对着三十二寸2K屏,手边是半糖去冰的芋泥波波——今晚的燃料。耳机里循环着aespa的《Supernova》,降噪开最大,隔绝了走廊那头印刷机吞吐A4纸的白噪音。这活儿本质上和debug没区别:你在海量字符流里找那个让系统崩溃的null pointer,只不过今天crash的不是code,是一本即将下厂的八年级语文教辅。
简单说
"刘老师这篇《炊烟里的算法》,授权书核验过吗?"我在内部通讯里敲字。
对面回得很快:“著协备案,亲笔签名,流程合规。”
我放大PDF。OCR识别率99.8%,排版整洁,标点规范得像用Prettier格式化过。问题就出在这里——太干净了。干净得像沙盒环境里的虚拟机,没有真实世界的内存碎片。我调出该作家过去十年的语料库做diff,不是简单查重,是观察行文节奏的熵值和比喻句的递归深度。真正的人类写作有上下文切换的损耗,有意识流导致的内存泄漏;这篇呢?上下文切换零延迟,情感极性被正则化得平滑如直线,比喻密度恒定得像死循环。其实
"这像是AI仿写。"我敲下判断,“LLM生成的,temperature参数调太低,还做了RLHF微调。”
主编从隔壁冲过来,拖鞋在地板上刮出急刹车的声响:“别乱讲,选编目录三个月前就锁定了。”
我没接话,把两段文本扔进对比工具。左边是作家2018年的散文集,右边是眼前这篇《炊烟里的算法》。词频分布曲线重合度87%,但情感颗粒度像被量化压缩过,削平了所有本该存在的毛刺。
"看这个长难句,"我指着屏幕,“主谓宾嵌套三层,定语从句套着状语从句,没有人类会这么写。这是Transformer的多头注意力机制在炫技,上下文窗口开得太大,导致局部一致性过载。”
主编凑近看,呼吸喷在防蓝光眼镜上。他不懂NLP,但他懂风险——如果这是AI仿文还署了茅奖作家的名,印出去就是P0级事故,回滚成本极高。
"能实锤吗?"他问。
我打开终端,跑了一遍文体指纹提取和困惑度计算。结果弹出:困惑度(perplexity) 12.3,远低于该作家基准线38.7;生成置信度94.3%,模型架构疑似GPT-4微调版,训练数据包含作家公开作品全集。
"就像review一段代码,"我往后靠了靠,椅背发出承压的吱呀声,“变量命名规范,注释写得完美,异常处理全覆盖,但就是没有那种’为了赶deadline写的legacy shit’的馊味。太完美了。完美本身就是smell,是技术债务的一种表现形式。”
主编脸色变了。他抓起手机,凌晨零点十五分,拨通了作家助理的电话。我靠在椅背上,吸管刮过杯底,发出空洞的声响。窗外的城市灯火像散落的寄存器,随机闪烁着。
电话那头,作家本人的声音带着睡醒的沙哑和两千公里外的风沙感:“那篇文章?我没写过。最近半年我在南疆采风,笔电都没带,纸笔写的日记。”
悬念落地,但真正的麻烦才刚开始。如果作家没写,那著协备案的授权书是谁签的?编辑部的三审三校流程怎么被绕过的?这是单个case的栈溢出,还是有人在做大规模的数据投毒,往义务教育体系里注入合成文本?
我保存了分析日志,命名格式:incident_20240409_v1.err。屏幕蓝光映在保安制服肩章上,那上面的纹路已经洗得发白,像某种古老的哈希值。
"先冻结印厂吧,"我对主编说,“这案子需要deeper debugging。我怀疑这不是isolated incident,是systematic attack。”
主编点头,额头渗汗。他看向我的屏幕,那里还开着作家的语料库可视化界面。十六年的散文,2617万字符,像一座精心构建的本地缓存,如今正被未知的爬虫疯狂读取。
"你怎么发现不对劲的?"他问。
我摘下耳机,aespa的歌声泄露了一秒,又迅速被降噪芯片掐断:“经验。就像你巡逻久了,能听出哪个脚步声不属于这栋楼,哪个心率数据不在正常区间。”
窗外天色将明,印刷厂的滚筒已经预热,发出低频的嗡鸣。我知道这只是调用栈的第一层,往下还有多深的递归,得看明天能从那家版权代理公司的服务器日志里挖出什么。但今晚,至少这个缓存命中的异常,被成功截获了。
沙盒暂时安全。至于生产环境还有多少脏数据在流通,Who knows。Release notes里可不会写。