下一章 上一章 目录 设置
2、数据的指纹 数据标注组 ...
-
三月十四日,上午九点四十五分。
深圳的雨季比往年来得更早。三月的第二周,整座城市被一场连绵的春雨笼罩,湿气从每一个缝隙里渗透进来,包括深维AI大楼的中央空调系统。林乐文坐在数据标注组的小隔间里,面对着三块屏幕,手指在键盘上快速敲击。
她的工位在九楼东南角,是一个被玻璃墙围起来的独立隔间——不是因为她的职级高,而是因为她的工作需要安静,需要专注,需要一整面墙的屏幕来显示那些密密麻麻的数据标签。
二十六岁,专科毕业,数据标注组组长。
这个配置在深维的技术序列里算是"异类"。深维的招聘门槛是出了名的严苛——985硕士起步,海外背景加分,论文数量是硬通货。林乐文入职的时候只有专科学历,是被当作"特殊技能人才"特批进来的。原因是:她对数据分布有某种难以解释的直觉。
不是统计学意义上的直觉,是某种更原始的东西——她能在看到一堆杂乱的数据时,一眼分辨出"正常"和"不对劲"。
这种能力没有名字,没有学术定义,但真实存在。
深维数据标注组的日常工作是这样的:他们负责给训练数据打标签,告诉AI什么是"好简历",什么是"差简历",什么是"应该通过",什么是"应该淘汰"。这个工作听起来简单,实际上极其枯燥——每天要看几百份简历,每份简历要标注十几个维度,错误率要控制在千分之五以下。
林乐文是这个组里效率最高的。她每天能标注四百份简历,错误率低于千分之二。其他人需要六个小时完成的任务,她三个小时就能做完。剩下的时间,她用来"看"数据。
不是标注,是看。
看数据的分布,看数据的结构,看数据里那些不易察觉的规律。
这是她今天早上在做的事——看最近三个月的招聘AI训练数据。
这批数据是深维招聘AI第三代系统的训练材料,从去年12月到今年2月,一共处理了约八万份简历。她调出了这批数据的全量分布报告,准备做一次常规的抽样检查。
然后她发现了不对劲。
统计学上,招聘AI的训练数据应该呈现某种"自然分布"——学历、工作年限、行业背景、年龄等维度的分布,应该与实际投递简历的人群分布基本一致。如果某个维度的分布出现了明显的"断层"或者"偏移",通常意味着两个可能:一,数据采样出了问题;二,数据被人为干预过。
林乐文盯着屏幕上的数据分布图,看了三十分钟。
她的眼睛从屏幕移开,又移回去,看了三遍。
然后她把一张截图发给了她的下属,一个刚入职三个月的实习生。
"小陈,你帮我看一下这份数据——我觉得有点问题,但我不太确定。"
截图里是一张性别维度的分布图。横轴是月份,纵轴是通过率。图表显示:从今年1月开始,简历库中女性候选人的通过率出现了系统性下降,从去年12月的47%降到了今年1月的39%,再到今年2月的36%。
这个下降幅度很大。
大到不正常。
小陈回复得很快:"乐文姐,我看了一下,这个下降幅度确实不小,但会不会是季节性因素?比如年初求职的的女性本来就少?"
林乐文看着这个回答,想了想。
季节性因素。她想过这个可能。
但不对。
她调出了过去三年的同期数据,做了一个对比。结果显示:过去三年的一二月,女性候选人的通过率基本保持稳定,最高波动不超过两个百分点。而今年,同一时期下降了十一个百分点。
十一个百分点的波动,不是"季节性因素"能解释的。
她又调出了另一个维度的数据——地域。
结果显示:从今年1月开始,来自特定几个省份的候选人,通过率也出现了系统性下降。这几个省份的特点是:经济相对欠发达,高等院校数量相对较少,人口基数大。
这不是巧合。
林乐文盯着屏幕,手指无意识地在桌面上轻轻敲击。她的大脑在快速运转,试图给这个异常找到一个合理的解释。
数据污染。
她的第一反应是这个词。
数据污染指的是:在训练数据的采集、清洗、标注过程中,有意或无意地引入了一些"杂质",导致数据不能真实反映现实世界的分布。在算法领域,数据污染是一个常见的作弊手段——如果想让AI对特定群体产生偏见,只需要在对这群体的数据进行"特殊处理"即可。
处理的方式包括但不限于:降低权重、减少样本量、修改标注结果、引入噪声数据……
林乐文不知道自己想到的对不对。但她知道,如果她的猜测是对的——这个问题的严重程度将远超她的职责范围。
她需要找一个人。
一个她信任的人。
她想到了苏澄。研发VP,MIT背景,是深维内部少数真正懂算法的人。
但她跟苏澄不熟。苏澄是高层,她是基层,两人之间隔着三层管理架构。她不确定苏澄会不会认真对待一个"标注组长"的发现。
她又想到了陆鹤宁。
那个昨天在发布会上引起全场轰动的MIT博士。
林乐文昨天看了发布会的直播。她坐在工位上,戴着耳机,把发布会从头听到尾。陆鹤宁在台上说的那些话,她一个字不漏地记下来了。
"算法没有偏见,但算法背后的数据和设计者有。"
这句话让她印象深刻。不是因为它有多精妙,而是因为它说得太直白了。直白到让人不舒服。
在深维这种地方,说这种话是需要勇气的。
她不知道陆鹤宁是不是一个值得信任的人。但她知道,在深维内部,如果有人会认真对待"数据可能有问题"这个发现,那个人大概率是陆鹤宁。
她没有苏澄的联系方式。但她有陆鹤宁的。
昨天发布会结束后,内网通讯录里更新了陆鹤宁的联系方式——职位是"算法公平性顾问",邮箱和手机号都挂在上面。林乐文不知道为什么自己要存下这个联系方式,也许只是职业习惯——在数据标注这一行,记住每一个可能有用的联系人,是一种本能。
她打开了通讯录,找到了陆鹤宁的邮箱。
然后她开始写邮件。
---
陆鹤宁收到林乐文的邮件时,正在九楼的算法评审会现场。
评审会的议题是深维招聘AI第三代系统的性能优化。参会的人有十二个,包括产品团队、研发团队、数据团队、以及鹤宁这个"算法公平性顾问"。会议已经进行了四十分钟,主要讨论的是系统的响应速度和并发处理能力——两个与公平性无关的指标。
鹤宁坐在长桌的最末端,听着产品经理和数据工程师来回争论,表情没有任何变化。
她的手机在桌下震动了一下。她低头看了一眼——是内网邮箱的推送通知。
发件人:林乐文。标题:关于最近批次训练数据的异常。
她点开邮件,快速浏览了一遍。
正文很短,只有三百多字:
> 陆博士您好,
>
> 我是数据标注组的林乐文。昨天发布会上听了您的演讲,很受触动。我最近在例行检查训练数据分布时,发现了一些异常,想请教您。
>
> 具体问题是:今年1-2月的招聘数据中,女性候选人和来自特定省份的候选人,通过率出现了显著的系统性下降。这个下降幅度超出了正常范围,也与过去三年的同期数据不符。
>
> 我不确定这是否是数据污染导致的问题,想请您帮忙看一下。
>
> 如果方便的话,我可以把原始数据发给您。
>
> 谢谢。
>
> 林乐文
鹤宁盯着这封邮件看了十秒。
她的表情没有变化,但手指在屏幕边缘轻轻敲了一下——这是她思考时的习惯动作。
数据标注组的组长,发现了数据异常,主动联系她。
这个时间点太巧了。
昨天发布会,今天她就收到了关于数据异常的报告。这两件事之间有没有关联?她不确定。
但有一点她很确定:如果是别人转发的这封邮件,她可能会当成普通的技术咨询处理。但现在是发件人直接联系她——一个数据标注组的组长,愿意越过三层管理架构,直接给一个刚入职的"顾问"发邮件,说明她要么是真的不懂规矩,要么是发现了足够严重的问题,以至于顾不上规矩。
鹤宁在会议桌下快速回复了一封邮件:
> 林乐文,你好。
>
> 感谢你的反馈。请把原始数据发给我,我需要独立验证。
>
> 另外,这件事你报告给你的直属上级了吗?
>
> 陆鹤宁
发送之后,她把手机收起来,重新把注意力放回会议桌上。
此时会议已经进行到数据团队的汇报阶段。汇报的内容是过去三个月的系统稳定性数据——正常运行时间、故障率、用户投诉率。鹤宁听着这些数字,脑子里却在想另一件事。
林乐文发现的下降幅度是十一个百分点。
如果这个数字是准确的——如果数据真的存在系统性污染——那么问题的严重程度将远超她的预期。
她昨天的演讲已经放出了信号:公司内部一定有人在关注她的一举一动。她发出的任何关于"数据异常"的声音,都会被放大、被审视、被利用。
她需要谨慎。
但她也需要证据。
---
评审会结束后,鹤宁回到她的临时工位。
所谓"临时工位",是九楼的一个小隔间,原本是档案室,现在被改成了她的办公空间。不是她级别不够,而是她的岗位特殊——算法公平性顾问,不是核心研发岗,所以没有固定的工位安排。苏澄跟她说过,等新办公区装修好,会给她分配一个正式的工位。现在只能先将就。
鹤宁坐下来,打开电脑,登录了内网。
林乐文已经把数据发了过来——一个压缩包,里面有三份文件:训练数据的分布统计、标注日志、以及一份简单的分析报告。
鹤宁花了两小时把三份文件全部看完。
看完之后,她的表情比之前更冷了。
分布统计显示:今年1-2月,女性候选人的通过率确实出现了显著下降。单独看这个数字,还可以用季节性因素或样本波动来解释。但当她把地域维度和性别维度交叉分析时,发现了一个更明确的问题:
来自特定省份的女性候选人,通过率是所有群体中最低的。
这个交叉结果意味着:问题不是"某单一维度的系统偏差",而是"多维度交叉的系统性压制"。
换句话说:有人在系统性地降低特定群体的通过率。
而且这个人——或者这群人——知道自己在做什么。因为能做到"多维度交叉压制"的,不是简单的程序bug,是精确设计的算法逻辑。
鹤宁靠在椅背上,看着屏幕上的数据图表,脑子里在快速整理信息。
她需要确认一件事:这个问题,是"有意的",还是"无意的"。
如果是无意的——比如某个算法模块的参数设置出了问题——那问题相对简单,只需要找到参数、修改配置、重新训练模型就能解决。
但如果是有意的——有人故意设计了这套机制来压制特定群体的通过率——那问题就完全不一样了。这意味着公司内部有人在利用AI系统做 Discrimination(歧视),而且这件事可能已经持续了相当长的时间。
她需要更多信息。
她打开了标注日志,调出了今年1-2月的所有标注记录。
标注日志显示:这批数据的标注工作从去年12月15日开始,到今年2月28日结束。参与标注的一共八个人,分布在三个标注小组。林乐文负责的是其中一个小组。
鹤宁仔细看了林乐文小组的标注记录。在她的小组里,有一条标注数据被反复修改了十七次。
十七次。
这是不正常的。正常的标注流程中,一条数据的标注次数通常不超过三次——初标、核标、终审。超过三次,意味着中间经历了多次返工,通常是因为数据本身有争议或者标注员不确定判断标准。
但"反复修改十七次"太过分了。
鹤宁点开了那条记录的详情。
这是一份简历,来自一个女性候选人,学历是某211高校的硕士,工作年限三年,应聘的是算法工程师岗位。标注记录显示:这份简历经历了"通过→不通过→通过→不通过→待定→通过→不通过……"的反复修改,最后的结果是"不通过"。
为什么?
鹤宁调出了这份简历的原始文本。
简历本身没有任何问题——学历真实、工作经历真实、项目经验真实,而且在鹤宁看来,这个候选人的背景相当优秀:211高校硕士、三年AI领域工作经验、参与过两个省级科研项目。这样的简历,放在任何一家AI公司,都应该通过初筛。
但它被标注成了"不通过"。
而且标注的结果经过了十七次修改,最后停在了"不通过"的状态。
这不是误标。这是刻意。
鹤宁合上电脑,靠在椅背上,深吸了一口气。
她需要找林乐文谈谈。
---
下午四点三十分,鹤宁在下楼的时候,在九楼的茶水间"偶遇"了林乐文。
所谓"偶遇",其实是鹤宁主动的。她查了林乐文的工位号,推算了一下她可能会去茶水间的时间,然后提前五分钟在那里等。
林乐文走进茶水间的时候,看到鹤宁,愣了一下。
"陆……陆博士?"
"林乐文?"鹤宁的声音平静,"我看到你的邮件了。谢谢你的反馈。"
林乐文的表情有些紧张——这很正常。在深维这种地方,一个标注组长主动给高层发邮件反映"数据异常",本身就是一件需要勇气的事。她不确定鹤宁会怎么看她。
"您……您觉得我的发现……是有效的吗?"林乐文的声音有些小。
"我需要问你几个问题。"鹤宁说,"方便吗?"
"方便。"
"你发现这个问题,是偶然的还是系统的?"
林乐文想了一下:"是系统的。我每周都会做一次数据分布的例行检查,这批数据从上周开始就出现了异常。我一开始以为是样本问题,但核对之后发现不对。"
"你有没有跟其他人说过这件事?"
"没有。"林乐文摇头,"我只跟您说了。"
鹤宁的眼睛微微眯了一下。
"为什么?"
"为什么只跟您说?"
"对。为什么不报告给你的直属上级?或者数据团队的负责人?"
林乐文沉默了一秒。然后她说:
"因为我不确定他们会怎么处理这件事。"
她的声音很平静,但鹤宁能听出其中的谨慎。
"你的意思是——你不信任他们?"
"不是不信任。"林乐文想了想,"是不确定。在这个公司里,有些事情……我总觉得不对劲,但我不知道问题在哪里。所以我想先找一个我觉得可能听懂的人。"
她抬起头,看着鹤宁的眼睛。
"昨天听了您的演讲,我觉得您是那个能听懂的人。"
鹤宁看着她,没有说话。
茶水间里很安静。窗外是深圳三月的雨天,雨水顺着玻璃往下流,在玻璃上留下一道道水痕。
"你发现的这个问题,"鹤宁开口,"你觉得是bug还是设计?"
"我不确定。"林乐文说,"但我觉得是设计。"
"为什么?"
"因为如果只是bug,修复就行了,不需要反复修改标注结果。而且——"
她顿了顿。
"而且我查了一下这份数据的标注权限。这条记录的第十七次修改,是谁改的?"
"谁?"
"不是我。"林乐文的声音压得很低,"是一个叫'系统管理员'的账号。"
鹤宁的眼神变了。
"系统管理员"账号,是一个可以覆盖任何标注结果的超级权限。在深维的数据标注系统里,这个账号的持有者是有限的,通常是数据团队的负责人和产品技术负责人。
这个账号不应该被用来修改一条具体的标注记录。
除非——有人故意要改变这条记录的标注结果。
"你是什么时候发现这个情况的?"鹤宁问。
"今天上午。"
"你有没有留存任何证据?"
林乐文点头,从口袋里掏出一个U盘。
"原始数据、标注日志、修改记录、分析报告——全部在这里。我做了三个备份,一个是这个,一个在公司的云盘,还有一个是家里。"
鹤宁接过U盘,看了它两秒。
"你知道这件事一旦被公开,你可能会成为靶子吗?"
林乐文沉默了一下。然后她说:
"我知道。"
"你为什么还要做?"
林乐文抬起头,看着窗外。
茶水间外面是深维的大楼中庭,雨还在下,窗玻璃上全是水痕。她的视线穿过那些水痕,落在远处模糊的灯光上。
"因为我就是那些数据里的人。"
她的声音很轻,但很清晰。
"什么?"
"我是专科学历。我来自一个经济欠发达的省份。我的第一份工作是在一个小城市的网吧当网管。"林乐文的声音平静,"我来深维的时候,面试官问我:你觉得你凭什么能进这家公司?我说:因为我看得出来数据不对劲。"
"他觉得我在说大话。但我通过了面试。"
她转回头,看着鹤宁的眼睛。
"如果这套系统在筛选的时候,会因为地域或者学历就排除某个人——那我可能也在被排除的范围内。即使我已经进来了。"
"这就是我知道数据不对劲的原因。"林乐文说,"因为那些不对劲的数据,可能也在定义着我的人生。"
茶水间里安静了很久。
窗外的雨下得更大了。雨水打在玻璃上,发出急促的声音,像是某种信号。
鹤宁看着林乐文。
这个专科毕业、网吧网管出身的数据标注组长,在用自己的方式理解这个世界。不是通过代码,不是通过算法,是通过一种原始的、数据本身的直觉。
而这种直觉告诉她:这套系统有问题。
鹤宁把U盘收进口袋。
"谢谢你的信任。"她说,"这件事我会认真对待。"
"您打算怎么做?"林乐文问。
鹤宁没有立刻回答。她转身看着窗外,雨还在下,深圳的天色已经暗下来了。
"我需要先做一件事。"
"什么?"
"验证。"鹤宁说,"独立验证你说的这些——是不是真的存在。如果真的存在,问题有多严重,以及——"
她顿了顿。
"以及背后是谁。"
她转回头,看着林乐文。
"在我验证期间,这件事情不要告诉任何人。包括你的直属上级,包括苏澄,包括任何你认识的人。"
"为什么?"
"因为你不知道你身边的人,谁是干净的啊。"
鹤宁说完,推开茶水间的门,走了出去。
林乐文站在原地,看着她的背影消失在走廊尽头,手里还握着那个已经空了的口袋。
她不知道自己的选择是对是错。
但她知道一件事:如果她发现了问题却选择沉默,那她跟那些污染数据的人没有区别。
雨还在下。
而她相信,有人会跟她一起走到答案的终点。
即使那个人,她只见过一面。
---
鹤宁回到酒店的时候,已经是晚上七点。
她把U盘插进电脑,打开了里面的文件。
原始数据、标注日志、修改记录——所有的信息都在这里。她开始一条一条地核对,一条一条地分析。
窗外是深圳的雨夜。雨水打在窗户上,声音忽大忽小,像是某种无法破译的密码。
鹤宁坐在电脑前,开始工作。
她不知道的是——在某个她还不知道的地方,有人已经在看她的邮件记录了。
她也不知道的是——明天早上,苏澄会来找她。
而她更不知道的是——那个叫"系统管理员"的账号,已经在今晚被注销了。
所有的痕迹,都在消失。
而她手里的U盘,是唯一留存下来的证据。