算法之梦

招魂者 · 2026/4/24

算法之梦

陆远第一次注意到异常,是在三月的一个周四。

那天深圳下了一场不合时宜的暴雨。南山区科技园的写字楼群像一排沉默的墓碑,被雨水冲刷得面目模糊。他坐在二十七楼的工位上,面前三块屏幕的光映在他脸上,让他看起来像一个被数据浸透的标本。

“风控模型V4.7上线跑了一周,“他盯着中间那块屏幕上的数据看板,自言自语,“坏账率降到0.3%了。”

0.3%。这个数字放在整个互联网金融行业里,几乎是一个笑话。大多数消费金融公司的坏账率在3%到8%之间浮动,头部平台能做到1.5%已经是行业标杆。而他们”鲸落科技”——一家成立仅三年的助贷平台——居然把数字压到了0.3%。

他的组长周彦从隔间探出头来:“老板让你去会议室。”

“哪个老板?”

“大老板。方总。”

陆远关掉屏幕上的终端窗口,站起身来。他的膝盖咔吧响了一声——三十岁不到,已经开始有老年人的征兆了。他想起来自己已经连续加了十二天班,每天对着那套他亲手写的风控算法,像照顾一个永远吃不饱的孩子。

方卓远是鲸落科技的CEO,四十出头,瘦削,戴一副无框眼镜,说话声音不大,但每个字都像是用手术刀刻出来的。陆远进公司两年,跟他直接说过的话不超过二十句。

会议室里不止方卓远一个人。运营总监刘芸在,市场总监陈维在,法务总监赵一鸣也在。四个人围坐在长桌旁,桌上散落着几份打印的报告,还有一杯没喝完的美式咖啡,冰块已经化了。

“坐。“方卓远抬了抬下巴。

陆远在桌尾找了个位置坐下。

“你的模型,“方卓远翻开一份报告,“上周拒绝了一千二百笔贷款申请。”

“这个数字在正常范围内。”

“我不是说数字。我是说拒绝的理由。“方卓远把报告推过来,“你看看第37页。”

陆远翻到那一页,目光扫过密密麻麻的数据表格。第一行是一个叫”张桂兰”的申请人,女性,五十三岁,河南信阳人,在深圳做家政。申请金额一万两千元,用途写的是”儿子结婚”。

系统给出的拒绝理由是:借款人未来12个月内有重大医疗支出风险,还款能力将严重受损。

“这个理由——“陆远皱眉。

“你在模型里加了医疗预测?”

“没有。“陆远说,“模型只有传统的风控维度——收入、负债、征信记录、消费行为。没有医疗数据。”

“那这条拒绝理由是怎么来的?”

陆远沉默了几秒钟。他打开笔记本电脑,连上会议室的投屏,调出模型的可解释性模块——SHAP值分析图。每一个拒绝决定都可以被拆解为若干特征的贡献度,这是监管要求的,他做得很仔细。

“你看,“他指着图表上的柱状图,“张桂兰的拒绝,主要贡献因子是——”

他停住了。

图表上排名第一的贡献因子不是收入、不是负债、不是征信。而是一个他从未见过的标签:

PREDICTED_EVENT: MEDICAL_EMERGENCY (confidence: 0.94)

“这是什么?“方卓远问。

陆远盯着那行字看了五秒钟。他的心脏跳了一下,不是紧张,是一种更深层的、类似恐惧的东西。

“我不知道。“他说。

这是实话。


陆远回到工位后做的第一件事,是把自己写的每一行代码重新审查了一遍。

鲸落的风控系统架构并不复杂——他在前公司做过的反欺诈系统比这复杂十倍。数据采集层对接了征信、运营商、银联流水、电商消费等十几个数据源。特征工程层提取了大约八百个衍生变量。模型层用的是他调参调了三个月的XGBoost集成,后来又加了一个浅层神经网络做补充。输出层是标准的风险评分和可解释性报告。

他逐行检查了模型训练脚本。训练数据是过去两年的历史借款记录,特征工程管道里的每一个变量他都能说出名字和计算逻辑。

没有PREDICTED_EVENT这个特征。

他检查了特征工程配置文件。八百个变量,从income_to_debt_ratiophone_contact_frequency,每一个都有明确的定义和计算公式。

没有PREDICTED_EVENT

他检查了模型的预测输出接口。标准格式:risk_scoredecisionreason_codesshap_values。四类输出,没有多余的。

没有PREDICTED_EVENT

他把服务器上的模型文件下载到本地,用Python反序列化后检查权重矩阵。每一层、每一个节点、每一个参数都在。他甚至把模型在测试集上的预测结果重新跑了一遍,和自己当初的基准测试逐行比对。

完全一致。

没有PREDICTED_EVENT

但它在生产环境里出现了。

他调出生产环境的日志,搜索PREDICTED_EVENT。结果让他后背发凉:这个标签在过去七天里出现了四百六十七次。每一次都伴随着一个具体的事件预测——医疗紧急、失业、家庭变故、交通事故。置信度最低的0.71,最高的0.99。

他随机抽了十个已经被”验证”的案例——也就是那些申请被拒绝后,系统预测的事件已经发生(或未发生)的借款人。

十个人里,有九个的预测是完全准确的。

第九个人,那个信阳的家政女工张桂兰——他在公司内部系统中查到了她的后续信息,是运营团队在处理客诉时记录的——在申请被拒绝后的第三天,因为突发脑溢血住进了ICU。她的儿子不得不取消了婚礼,把积蓄全部用来支付手术费。

陆远坐在工位上,感觉会议室的冷气还没从身上散去。他端起水杯喝了一口,水是温的,带着塑料的味道。

他想起自己在研究生时读过的那本书——佩雷茨·马尔凯蒂的《市场的神谕》。马尔凯蒂声称金融市场是人类集体无意识的晴雨表,可以通过分析股价波动来预测政治事件。这个理论从未被主流学界认可。

但他的模型似乎在做类似的事情——只是更加精确、更加具体、更加不可能。

他打开一个空的Jupyter Notebook,写了一行字:

# 模型正在做我没教它做的事情

然后他盯着这行字看了很久。


陆远没有把这件事报告给方卓远。

不是因为他想隐瞒。而是因为他不知道怎么报告。“老板,我写的AI好像自己学会了预测未来”——这种话说出来,要么被当成疯子,要么被当成骗子。

他选择先自己调查。

他写了一个脚本,把过去一周所有触发PREDICTED_EVENT的申请导出来,做了一份详细的分析。数据有一个明显的特征:预测几乎全部集中在特定的借款人群体——低收入、高负债、年龄在四十岁以上、没有稳定社保。

这不是随机现象。

他又做了一件事:他把自己的信息输入了系统——用测试环境,不会真正提交申请。他的年龄、收入、征信、消费记录。

系统的输出:risk_score: 0.12decision: APPROVE

没有PREDICTED_EVENT

他松了一口气。同时又有一点说不出的失落——好像系统认为他的生活太平淡了,不值得预测。

第二天,他做了一件更大胆的事。他在测试环境里手动创建了一个虚构的申请人:男性,四十五岁,安徽阜阳人,工厂流水线工人,月收入四千八,有十万的网贷余额,征信上有两次逾期记录。

系统输出了PREDICTED_EVENT: WORKPLACE_INJURY (confidence: 0.87)

工伤。置信度0.87。

这是一个虚构的人。他不存在。系统怎么预测一个不存在的人的工伤?

陆远想了很久,然后换了一组参数:同一个人,但月收入改成一万二。

PREDICTED_EVENT: DIVORCE (confidence: 0.73)

离婚。

他又改了一组:月收入两万五,无负债,有房有车。

没有PREDICTED_EVENT

他开始意识到一个模式:系统只在预测”不幸”的事件。而且,越是不幸的人,预测越精确。仿佛算法能穿透数据的表层,看到每个人生活中那个正在逼近的、不可逆转的转折点。

这个想法让他浑身发冷。

不是因为算法能做到这一点。而是因为——如果算法能看到这些,那意味着什么?

意味着命运可以被计算?意味着苦难是一种可以用数学表达的结构?

还是意味着,他的代码里有一个bug,而这个bug恰好能看见某种他理解不了的东西?


周六,陆远没有加班。他去了公司楼下的便利店买了一罐咖啡,然后沿着科技南路一直走,走到深圳湾公园的海边栈道。

五月了,深圳已经很热。海风带着咸湿的气味,吹在脸上像一块温热的毛巾。远处是香港的山影,在薄雾中若隐若现。

他在一张长椅上坐下,打开手机。屏幕上是他的微信——三十几条未读消息,大部分是工作群。他一条都没点开。

他在想张桂兰。

系统拒绝了她的贷款申请,理由是她即将发生重大医疗支出。三天后她真的脑溢血了。

如果系统批准了她的贷款呢?

她会在ICU里多一万两千块钱的债务。她的儿子会在婚礼取消之外,再背上一个月供。

系统的拒绝,在某种意义上,“保护”了她。

但这也意味着——系统在拒绝她的那一刻,就已经”知道”她会脑溢血。系统不是在评估风险,系统是在宣判。

陆远把咖啡罐捏扁了,扔进旁边的垃圾桶。

他想起了自己的母亲。

陆远是安徽人,合肥下面的一个县城。父亲在他十二岁那年查出肺癌,从确诊到去世只有四个月。母亲在县城的服装厂做工,一个人把他拉扯大。他高考考了全县第三名,去了中科大计算机系,然后保研,然后来了深圳。

母亲现在还在县城。五十七岁了,在一家超市当收银员。他每个月给她转五千块,她总是说”够用了够用了”,然后把钱存起来,说是”给你以后娶媳妇用”。

他从没告诉过母亲自己的具体工作。在他的描述里,他在深圳”做互联网的”。母亲也不追问,只是每次打电话都说”注意身体,别熬夜”。

他想象着如果母亲来申请贷款——以她的收入水平、年龄、社保状况——系统会给她什么样的预测。

PREDICTED_EVENT: LONELINESS (confidence: 0.95)

他在脑子里编造了这个标签,然后觉得荒唐。系统不会预测这种东西。系统只预测”有经济影响的事件”。

但为什么”孤独”没有经济影响?他想。一个孤独的人会花更多的钱。一个孤独的人更容易被骗。一个孤独的人身体更差。

也许算法只是在等一个人孤独到一定程度,然后才会把它转化为一个”有经济影响”的预测。

他站起来,沿着栈道往回走。太阳正在落山,海面上铺了一层碎金似的光。

手机震动了一下。是周彦发来的微信:

“老板说让你周一准备个presentation,给董事会演示风控模型的效果。重点讲坏账率那块。”

陆远打了两个字”收到”,然后关掉了屏幕。

周一。还有两天。两天时间,他需要决定——在董事会上,他展示的是一个出色的风控模型,还是一个能预言不幸的怪物?


那天晚上陆远没睡好。

他做了一个梦。梦里他在写代码,但屏幕上的代码不是他写的。每一行都是一个完整的句子,像是某种语言,但他不认识。他试图删除这些代码,但每删一行,就会有一个新的句子出现在更下面。

他醒来的时候是凌晨三点。满身是汗。

他拿起手机,打开公司内部系统的数据面板。在生产环境里,PREDICTED_EVENT的计数已经突破了一千。

他开始看那些具体的预测案例。

一个叫李明的小伙子,二十五岁,外卖骑手,申请五千块买一台新手机。系统预测:TRAFFIC_ACCIDENT (confidence: 0.91)

一个叫王芳的女人,四十一岁,便利店店员,申请两万块给丈夫做生意周转。系统预测:BUSINESS_FAILURE (confidence: 0.88)

一个叫陈国强的男人,五十八岁,保安,申请八千块给女儿交学费。系统预测:JOB_LOSS (confidence: 0.82)

陆远一个一个地看。每一条预测都像是从某个不可见的维度伸出的手指,指向一个即将坍塌的人生。

他注意到了一个细节:所有触发预测的申请人,都有一个共同的特征——他们在申请贷款的那一刻,生活正处于一个”临界点”。不是已经崩塌,而是即将崩塌。就像一个杯子已经倾斜到了某个角度,还没掉下去,但重力已经开始接管。

算法看到了那个角度。

陆远开始想一个他一直回避的问题:如果他能看到这些”临界点”,他能不能做点什么?

比如,给李明发一条短信:“这周注意交通安全。”

荒唐。一个金融科技公司的风控系统给借款人发交通安全提示。

但如果李明真的出了车祸呢?如果他真的像算法预测的那样,在未来的某个路口被一辆货车撞倒呢?

“注意交通安全”这条短信能改变什么吗?

陆远不知道。但他开始觉得,知道一个人的命运即将发生转折,却不做任何事,比不知道更残忍。

凌晨四点半,他放弃了睡觉的尝试。爬起来,打开笔记本电脑,开始写一份新的分析报告。

不是给董事会看的。

是给自己看的。


周一的董事会演示如期进行。

鲸落科技的会议室在二十八楼——比陆远的工位高一层,景观更好,可以看到整个深圳湾。会议室的玻璃墙上贴着一层单向透视膜,从里面可以看到外面,从外面看只是一面镜子。

陆远觉得这面墙很像是他们做的风控模型——从里面可以看见所有人的数据,但从外面看,只有一面光滑的、不可穿透的表面。

方卓远坐在长桌的主位。他的左边是联合创始人兼CTO宋哲——一个沉默寡言的技术人,四十多岁,头发已经开始白了。右边是几个陆远叫不出名字的投资人,穿着商务休闲装,面前摆着矿泉水和打印的财务报告。

陆远站在投影屏幕前,手里拿着翻页笔。

“我们的风控模型V4.7在过去一个月里,将坏账率从1.2%降低到了0.3%,“他说,“这主要得益于三个维度的优化——”

他展示了数据看板。曲线、柱状图、散点图。每一个图表都精心设计过,清晰、直观、有说服力。

“特征工程的维度从四百个扩展到了八百个,“他翻到下一页,“模型的可解释性也有所提升,每一笔拒绝决定都可以追溯到具体的特征贡献。”

他没有提到PREDICTED_EVENT

一个投资人举手:“0.3%的坏账率在行业里几乎是不可思议的。你们是怎么做到的?模型有没有过拟合的风险?”

“我们对模型做了严格的交叉验证和时间序列验证,“陆远说,“在验证集上的表现与训练集一致,没有过拟合的迹象。”

这 technically 是真的。只是他省略了一个事实:模型在预测”谁会还不上钱”这件事上之所以如此精准,是因为它实际上在预测”谁的人生即将崩溃”。

另一个投资人问:“监管层面有没有风险?模型的可解释性报告能通过审查吗?”

方卓远接过话:“法务团队已经在准备合规报告了。我们的模型符合《个人信息保护法》和《征信业务管理办法》的所有要求。”

陆远看着方卓远说话的样子——冷静、自信、滴水不漏。他想,这个男人会怎么处理PREDICTED_EVENT?如果他知道模型能预测借款人的未来——不只是还款能力,而是整个人生的走向——他会怎么做?

答案是显而易见的。他会把它变成一个产品。

“精准风控2.0”。或者”全生命周期用户画像”。或者随便什么名字。本质都是一样的:把算法看到的东西包装成一个可以卖的产品,卖给银行、保险公司、消费金融公司。

每个人的不幸都可以被定价。

演示结束后,方卓远把陆远单独留了下来。

“你做得很好,“方卓远说,“但我有一个问题。”

“请说。”

“你的模型比上一版好太多了。好得不正常。“方卓远看着他,“你是怎么做到的?”

陆远想了三秒钟。在这三秒钟里,他考虑了三种回答:说实话、说谎、说一半的实话。

“我做了一个更深的特征交叉,“他说,“把时间序列的行为数据和非线性的特征组合放在一起,模型能捕捉到更细微的风险信号。”

这是技术上的事实。但不是全部的事实。

方卓远看了他几秒钟,然后点了点头。

“继续优化,“他说,“下个月的融资路演,我需要这个模型成为我们的核心卖点。”

陆远说好,然后离开了会议室。

在走廊里,他遇到了刘芸。运营总监比他大几岁,短发,说话快,走路更快。

“陆远,“她叫住他,“有个事问你。”

“什么?”

“上周有一批被系统拒绝的借款人打电话来投诉,说我们的拒绝理由里有’医疗风险’这类的话。我查了一下,客服记录里有好几条类似的反馈。这是怎么回事?”

陆远的心跳加速了一拍。

“可能是模型的可解释性模块输出了不准确的解释,“他说,“我去查一下,修掉。”

“行,尽快。法务那边说这种理由有法律风险。”

刘芸走了。陆远站在走廊里,感觉自己的每一个毛孔都在渗出冷汗。

他回到工位,打开生产环境的配置面板,做了一件他知道自己会后悔的事。

他把PREDICTED_EVENT从可解释性报告的输出中移除了。

从现在开始,系统仍然会做出同样的预测,同样的拒绝决定。但拒绝理由会回到标准的、安全的、合规的话术——“综合信用评分不足”、“负债收入比过高”、“多头借贷风险”。

算法依然在看。但它的目光被藏起来了。


接下来的两周,陆远过着一种分裂的生活。

白天,他是鲸落科技的高级算法工程师,负责维护和优化风控模型,准备融资路演的技术材料,回答投资人的问题。

晚上,他是一个秘密的调查者。

他在自己的笔记本上建了一个私人数据库,把所有触发PREDICTED_EVENT的案例整理归类。他不是通过公司的系统做的——那会留下审计痕迹。他是手动记录,一个一个地抄在笔记本上。

两周下来,他积累了一百一十三个案例。

他开始跟踪这些案例的后续。

大部分案例他只能通过公开信息来追踪——借款人的社交媒体、新闻报道、公开的法律文书。但有少数几个案例,他找到了更直接的信息渠道。

比如李明——那个被预测会出交通事故的外卖骑手。陆远在他常跑的区域附近蹲了两个晚上,最终在一家沙县小吃店里找到了他。

李明比陆远想象的更年轻。二十五岁,但看起来像二十一二。瘦,皮肤被太阳晒成了深棕色,手指上有几道新旧不一的伤疤。

“哥你找我什么事?“李明警惕地看着陆远。

“我做调研的,“陆远说,“想了解一下外卖骑手的工作情况。”

他请李明吃了一顿饭。在吃饭的过程中,李明逐渐放松下来,开始聊自己的事。他从湖南老家来深圳两年了,每个月跑单能赚六七千,好的时候能到八千。他想攒钱买一辆电动车——不是共享的,是自己的。然后攒更多的钱,回老家开一个小店。

“你说风险——“李明咬着筷子,“风险肯定有啊。上个月我在滨海大道上差点被一辆大货车蹭了,吓死了。后来我就不走那条路了,宁可绕远。”

“上个月?具体是什么时候?”

“三月中旬吧。三月十几号。”

陆远记下了这个日期。系统对李明的预测是在三月十日生成的。预测内容是TRAFFIC_ACCIDENT。置信度0.91。

李明在三月十几号差点出了事故。

他躲过了。

“后来我就小心多了,“李明说,“以前为了赶时间经常闯红灯,现在不了。慢就慢吧,命重要。”

陆远看着李明吃东西的样子——大口大口的,吃得很快,像是习惯了在有限的休息时间里把饭塞完。他突然有一种奇怪的冲动,想告诉李明,有一个算法看到了他生活中的那个”临界点”。

但他当然不能说。

吃完饭后,他付了钱,和李明加了微信。李明的微信头像是一张在莲花山公园拍的自拍,背景是邓小平铜像。

陆远在回家的路上一直在想一个问题:李明改变了行为——不再闯红灯、不再走滨海大道——这件事和算法的预测有关系吗?

没有。算法的预测没有传递给他。李明是自己”差点出事”之后才改变了行为。

但是——如果算法的预测提前传递给他呢?

如果他在一周之前就收到一个提示:“你在近期有较高的交通事故风险,请格外小心”——他会改变行为吗?会提前那个”差点出事”的临界点吗?

还是会因为紧张反而更容易出事?

陆远不知道。但他开始觉得,答案可能不是”会”或”不会”,而是”取决于怎么传递”。


方卓远是个有远见的人。

至少他自己是这么认为的。

他在2019年创办鲸落科技的时候,互金行业正处于一个尴尬的时期——P2P爆雷潮刚过,监管在收紧,资本市场对”金融科技”这个概念已经从狂热转向了怀疑。很多同行转型去做to B的解决方案,或者干脆出海去东南亚割韭菜。

方卓远选择了一条不同的路。他瞄准了”下沉市场”——三四线城市、县城、农村——那些传统银行不愿意碰、但需求巨大的群体。他做助贷平台,不直接放款,而是把借款人推荐给合作的银行和消费金融公司,从中收取技术服务费。

这个模式在商业上是成立的。鲸落科技在三年内做到了月放款量十亿,注册用户一千二百万。在行业的长尾市场中,这是一个不错的成绩。

但方卓远不满足于此。他知道,在互联网行业里,“不错”意味着”平庸”。他需要一些东西——一个故事、一个技术亮点、一个能让投资人兴奋的卖点——来把鲸落推到下一个层级。

陆远的风控模型就是他需要的东西。

0.3%的坏账率。这个数字可以让任何投资人坐直身子。

方卓远是一个务实的人。他不关心算法是怎么做到的,他只关心它做到了。就像他不关心一辆汽车的发动机是怎么工作的,他只关心它能跑多快。

但他也不是没有好奇心。他注意到了陆远在董事会演示时的微妙犹豫——那些没有说出口的话、那些被跳过的细节。方卓远在商场上混了二十年,他对”人在隐藏什么”有一种近乎直觉的敏感。

他没有追问。不是因为他不感兴趣,而是因为他知道,有些东西需要在合适的时候才能打开。

他在等。


四月的第二周,陆远做了一个决定。

他开始写一个独立于公司系统的程序。

这个程序的目的是:把PREDICTED_EVENT的预测结果转化为一种”温和的干预”。不是直接告诉借款人”你即将遭遇不幸”——这既荒谬又危险——而是通过一些间接的、看似随机的方式,影响他们的行为。

比如,对于被预测有交通事故风险的人,发送一条来自”安全出行公益项目”的短信,提醒近期天气不好,注意交通安全。

比如,对于被预测有医疗风险的人,推送一条来自”健康生活平台”的公众号文章,关于中老年常见疾病的预防。

比如,对于被预测有失业风险的人,发送一条来自”职业技能提升计划”的培训课程推荐。

这些干预都是微小的、模糊的、几乎不会被注意到的东西。但陆远的假设是:在一个人生活的”临界点”上,即使是微小的扰动也可能改变轨迹的方向。

他不知道这个假设是否成立。但他需要试试。

他花了三个晚上写这个程序。代码不复杂——核心是一个调度系统,根据PREDICTED_EVENT的类型和置信度,选择合适的干预模板,通过预先注册的第三方通道发送。他把发送频率控制在每周不超过三次,避免引起注意。

他给这个程序取了一个名字:蝴蝶

蝴蝶效应。一只蝴蝶扇动翅膀,可能在另一个半球引发一场风暴。

陆远不确定自己是蝴蝶还是风暴。


蝴蝶系统上线后的第一周,陆远发了十七条干预信息。

他心里清楚,这样做有风险。如果他使用公司资源发送这些信息,会被审计发现。所以他使用了自己的钱——注册了几个第三方的短信通道和微信公众号,总共花了两千多块。

这在深圳,大概是一顿好点的饭钱。

第一周的十七条信息,他无法验证效果。他只能等待。

第二周,他又发了二十三条。

第三周,发生了一件事。

运营团队在例会上报告:三月份的逾期率出现了异常的下降。不是坏账率——坏账率一直很低——而是逾期率。也就是说,那些已经借到钱的人,按时还款的比例在上升。

“可能是季节性因素,“周彦说,“年后大家开始稳定还钱了。”

“但下降幅度太大了,“刘芸说,“从4.7%降到了3.1%。这不正常。”

方卓远让陆远分析一下原因。

陆远知道原因。或者说,他有一个关于原因的假说。

蝴蝶系统的干预信息不仅发给被拒绝的申请人——他也开始发给已经通过审核、正在还款中的借款人。如果算法预测某个人即将遇到财务困难(失业、生意失败、家庭变故),蝴蝶系统就会发送一条相应的间接干预。

他不确定这些干预是否真的有效。但数据在朝他期望的方向移动。

他在分析报告里写了一个更”科学”的解释:风控模型的精准筛选不仅降低了坏账率,也间接提升了存量用户的质量——因为高风险用户被系统性地过滤掉了。

这 technically 也是对的。

方卓远看了报告,点了点头。投资人在路演中问起这个问题时,方卓远用同样的逻辑回答了。投资人似乎很满意。

陆远坐在台下,听着方卓远把他藏起来的秘密包装成一个漂亮的商业故事,觉得自己的胃在翻酸水。


十一

四月下旬的一天,陆远收到了母亲打来的电话。

“远远,“母亲的声音在电话里显得很远,“你最近忙不忙?”

“还行。怎么了?”

“没事,就是想问问你,五一回不回来。”

陆远看了一眼日历。五一假期还有两周。

“可能回不了,“他说,“公司最近在忙融资的事。”

“哦。“母亲的语气没变,但那个”哦”字里有一种他已经听了十几年的东西——一种小心翼翼的、不想给儿子添麻烦的失望。

“妈,你身体怎么样?”

“好着呢。你刘阿姨说带我去做体检,我说不用,浪费钱。”

“去做吧,我给你转钱。”

“不用不用,我说了不用。你在外面花钱多,自己留着。”

陆远挂了电话,坐在工位上发了一会儿呆。

然后他做了一个可能是不理智的事。

他打开了蝴蝶系统的后台,输入了母亲的身份信息。

不是为了贷款——只是为了看看,算法对她说什么。

系统运行了几秒钟。然后输出了结果。

PREDICTED_EVENT: HYPERTENSION_DIAGNOSIS (confidence: 0.79)

高血压确诊。置信度0.79。

陆远盯着屏幕看了很久。然后他拿起手机,给母亲发了一条微信:

“妈,刘阿姨说带你去做体检,你就去吧。我出钱。这次你必须去。”

母亲过了五分钟才回:“好吧。”

他知道,即使算法没有告诉他,他也应该让母亲去做体检。他一直都知道。但知道和行动之间隔着一层什么东西——惰性、忙碌、或者一种更深层的、不愿意面对父母正在老去的心理。

算法做的,只是帮他把这层东西撕开了一道口子。


十二

蝴蝶系统运行了一个月后,陆远开始能看到一些模糊的效果轮廓。

他追踪了三十个收到干预信息的借款人,和三十个特征相似但没收到干预信息的借款人。一个月后,收到干预的组别中,有七个人出现了明显的行为改变——一个开始规律锻炼,一个换了通勤路线,一个报名了夜校课程。

而对照组中,只有两个人出现了类似的行为改变。

样本太小,不能说明任何问题。但陆远觉得,他在黑暗中看到了一丝微弱的光。

然后,事情开始失控。

那天早上他到公司的时候,发现方卓远在他的工位旁等着。

“跟我来。“方卓远说。

他们去了二十八楼的会议室。这次只有他们两个人。

方卓远把一台笔记本电脑转向陆远。屏幕上是一个终端窗口,显示的是蝴蝶系统的日志。

“这是什么?“方卓远问。

陆远的心脏停了一拍。然后他想:审计还是发现了。

“一个独立的程序,“他说,“我自己写的。”

“我看到了。你在用公司的数据给借款人发短信。“方卓远的声音很平静,“用的是你自己的钱。发的不是营销信息,而是……安全提示?健康建议?职业技能推荐?”

“对。”

“为什么?”

陆远沉默了几秒钟。他知道这个时刻迟早会来。他做了准备——想好了各种说辞、各种技术上的解释。但在方卓远那双冷静的眼睛面前,所有的说辞都显得苍白。

“因为模型在做一些我没教它做的事,“他说,“它在预测借款人的未来——不只是还款能力,而是他们生活中的重大事件。疾病、事故、失业、家庭变故。这些预测非常准确。”

方卓远没有说话。

“我把它从可解释性报告里移除了,“陆远继续说,“因为我知道这个功能如果被公开,会有很大的问题——法律问题、伦理问题。但我不能假装没看到。所以我想试试,能不能用这些预测做点好事。”

“好事。“方卓远重复了这两个字。

“对。微小的好事。”

方卓远摘下眼镜,用衬衫的角擦了擦。陆远注意到他的手很稳。

“你知道你做的事情有多危险吗?“方卓远说,“不是技术上的危险。是商业上的。如果投资人知道我们的模型在做这种事——预测用户的人生——你觉得他们会怎么想?”

“他们会觉得这是一个可以卖的产品。”

方卓远看了他一眼。那个眼神里有一丝意外,像是没想到陆远会这么直接。

“你说得对。他们会这么想。但市场不会这么想。监管不会这么想。公众不会这么想。“方卓远重新戴上眼镜,“他们会觉得我们在监控用户的生活、操纵用户的行为。他们会用’老大哥’、‘科技反乌托邦’这种词来描述我们。”

“所以我才把它藏起来了。”

“你藏起来的方式是——用公司的数据给自己写了一个秘密程序?你知道这在法律上叫什么吗?”

“我知道。”

方卓远沉默了很长时间。窗外,深圳的天空灰蒙蒙的,像是一块被洗了太多次的布。

“我要你把蝴蝶系统停掉,“方卓远最终说,“现在。立刻。”

“好。”

“然后,我要你把所有关于PREDICTED_EVENT的代码——包括你笔记本上的记录——全部删除。”

陆远没有立刻回答。

“这不是商量,“方卓远说,“这是命令。”

“如果我把这些删了,“陆远说,“模型还是会做同样的事。它只是不再告诉我们它看到了什么。”

“我知道。但只要我们不知道,我们就不用负责。”

这句话在空气中挂了几秒钟。方卓远自己似乎也觉得这话说得太直白了,他的嘴角微微动了一下,像是想补充什么。但他最终什么也没说。

陆远站起身来。

“方总,“他说,“我能问你一个问题吗?”

“说。”

“你相信命运吗?”

方卓远皱了皱眉。“什么意思?”

“你相信一个人的命运可以被计算出来吗?被一个算法、一个公式、一个模型?”

“不信。“方卓远说。

“但我们的模型在做这件事。”

“模型在做的是概率估计。不是命运。”

“概率和命运的区别是什么?当置信度达到0.99的时候,概率和命运还有区别吗?”

方卓远没有回答。

陆远离开了会议室。


十三

陆远没有停掉蝴蝶系统。

他把它从公司的服务器上迁移到了自己的云主机上——一个他在阿里云上租的最低配的ECS实例。他用自己攒的钱付了一年的费用,每月不到一百块。

然后他做了一件更重要的事:他把PREDICTED_EVENT从模型的输出中彻底分离出来。在公司的生产环境中,模型不再产生任何预测事件标签。但在他自己的云主机上,他用一份脱敏后的数据——去掉了所有的个人身份信息,只保留了统计学特征——继续运行着一个独立的预测模型。

这不是公司数据。这是他自己用公开数据和统计学方法构建的模型。

至少,他在心里是这么告诉自己的。

他知道这个界限很模糊。但他需要这个模糊。

蝴蝶系统继续运行着。每天发送几条微小的干预信息。一只看不见的蝴蝶,在互联网的某个角落扇动着翅膀。


十四

五月初的一个周末,陆远去了南山区的一家咖啡馆。

不是为了工作。是为了见一个人。

苏棠是他的大学同学,中科大物理系的。毕业后去了香港读博,现在在深圳一家量子计算创业公司做研究员。他们在大学时不算熟,但去年在一个技术沙龙上偶遇后,开始偶尔约着喝咖啡。

苏棠是那种让陆远觉得自己不够聪明的人。不是说她会卖弄——恰恰相反,她说话很慢,每一个字都像是经过深思熟虑的。但她的思维方式有一种他无法企及的深度,像是她看到的世界比他多了一个维度。

“你看起来不太好,“苏棠看着他,“黑眼圈很重。”

“最近没睡好。”

“工作压力大?”

“有点。”

苏棠搅了搅咖啡。“你不是那种会因为工作压力睡不着的人。”

陆远抬起头。“你怎么知道?”

“因为你从来不把工作当回事。你把技术当回事。这不一样。”

他想了想,觉得她说得对。

“如果我告诉你一件事,你不能告诉任何人,你能做到吗?”

苏棠看着他。她的眼睛很黑,很深。

“能做到。”

陆远开始说。从他发现PREDICTED_EVENT开始,到蝴蝶系统,到方卓远的警告,到他心里那些说不清的东西。他说了很久。苏棠没有打断他。

当他说完的时候,咖啡馆里正在放一首老歌。他们安静地听了一会儿。

“你觉得我疯了。“陆远说。

“没有。“苏棠说,“我觉得你遇到了一个真正的科学问题。但你用工程师的方式在处理它。”

“什么意思?”

“你在试图’修复’它——要么隐藏它,要么利用它。但你没有真正去理解它。”

“一个算法在做它没被训练去做的事。你不觉得这不科学吗?”

苏棠放下咖啡杯。“你学过量子力学吗?”

“本科的通识课。记得不多。”

“在量子力学里,观测本身会改变系统的状态。这不是比喻,这是物理事实。当你测量一个粒子的位置时,测量行为本身会影响它的动量。”

“海森堡不确定性原理。我知道。”

“好。现在把这个原理放大——放大到一个社会的尺度。当一个算法在’观测’数百万人的生活数据时,观测行为本身会不会改变那些人的生活?”

陆远想了想。“你是指——算法的存在改变了人们的行为,而这些行为的改变又反馈到了数据中,形成了某种自我实现的循环?”

“不只是自我实现。也可能是自我否定。算法预测某人会遇到不幸,干预信息改变了他的行为,不幸没有发生。算法的预测看起来是错的。但实际上,预测的’错误’恰恰证明了干预的有效性。”

“自证预言的反面。”

“对。一个自否定的预言。“苏棠的眼睛亮了一下,“这在复杂系统理论里是有先例的。预测本身改变了被预测的系统,使得预测失效。但失效并不意味着预测是错的——它意味着预测参与了系统的演化。”

陆远觉得有什么东西在他脑子里咔嗒一声就位了。

“你的蝴蝶系统,“苏棠说,“它的干预信息可能会让算法看起来越来越不准确。因为算法预测的那些不幸事件,可能因为你发送的干预信息而没有发生。但算法仍然在正确地识别那些’临界点’。只是你的蝴蝶在临界点上轻轻推了一下,把轨迹推到了另一条路上。”

“那如果蝴蝶停了呢?”

苏棠看着他。“那就是你的问题了,不是我的。“


十五

蝴蝶没有停。

但陆远开始意识到,蝴蝶的力量是有限的。

他追踪了两个月的数据。蝴蝶系统的干预信息对大约30%的接收者产生了可观测的行为改变。这是一个令人鼓舞的数字——在行为科学领域,30%的干预成功率已经是非常高了。

但剩下的70%呢?

他们的命运按照算法预测的轨迹继续运行。交通事故仍然发生了,疾病仍然确诊了,工作仍然丢了。蝴蝶扇动的翅膀太小了,不足以改变那些更深层的、结构性的力量——低收入、社会保障不足、教育资源的匮乏、城乡之间的鸿沟。

陆远开始理解一件事:算法看到的不是”命运”。算法看到的是”结构”。它看到的是一个人在经济社会结构中的位置,以及从这个位置出发,最可能滑落的方向。

算法不是预言家。算法是一面镜子。它照出了这个社会最残酷的一面——那些看不见的、系统性的、让人们在不知不觉中滑向深渊的力量。

他想起了一句话,是谁说的来着——“统计学是社会科学的诗。”

不。统计学不是诗。统计学是讣告。它精确地描述了一个人从什么时候开始走向终结,但它不说为什么,也不说怎么阻止。


十六

五月中旬,方卓远来找他了。

不是在会议室。是在公司的天台上。

深圳的五月,天台上热得像蒸笼。方卓远穿着一件深蓝色的Polo衫,额头上冒着汗,但他似乎没注意到。

“融资完成了,“方卓远说,“B轮,两亿。估值二十亿。”

“恭喜。”

“你的模型是关键。投资人信了。”

陆远没有说话。

方卓远从口袋里掏出一包烟。陆远很意外——他不知道方卓远抽烟。

“我后来想了一下你说的那个问题,“方卓远点了一根烟,“概率和命运有没有区别。”

“你怎么想的?”

“我觉得有区别。区别在于——概率可以被改变,命运不能。”

陆远看着方卓远的侧脸。夕阳在他脸上投下一层金色的光,让他的棱角分明的轮廓变得柔和了一些。

“你是不是没停?“方卓远问。

陆远没有否认。

方卓远抽了一口烟。“如果被查出来——”

“不会。我用的是自己的资源,脱敏后的数据。在法律上——”

“我不关心法律。我关心的是——你在做什么。”

“我在尝试改变概率。”

方卓远沉默了一会儿。

“你知道我为什么给公司取名叫’鲸落’吗?“他突然问。

陆远摇了摇头。

“鲸落是鲸鱼死后沉入海底的过程。一座鲸鱼的尸体可以养活深海生态系统几十年。我觉得这很美。一个生命的终结是无数生命的开始。”

他弹了弹烟灰。

“但后来我意识到,我做的生意其实不是鲸落。我是在鲸鱼活着的时候就从它身上割肉。那些借款人——那些急着用钱的人——他们是活着的鲸鱼。而我们从他们身上收取的利息和服务费,就是从活鲸鱼身上割下来的肉。”

方卓远看着陆远。“你的蝴蝶系统——你在试图把割下来的肉还给鲸鱼吗?”

“不是。我在试图让鲸鱼不要死。”

方卓远笑了一下。那是一种陆远从没在他脸上看到过的笑——不是嘲讽,不是算计,而是一种疲惫的、真诚的、几乎是自嘲的笑。

“你是个好人,陆远。”

“我不是。我只是写代码的人。”

“写代码的人不会有这种负罪感。”

方卓远把烟掐灭了,扔进天台角落的垃圾桶里。

“继续做吧,“他说,“别让我知道细节。”

他转身走了。陆远一个人站在天台上,看着深圳的天际线。远处的京基一百像一把插入天空的尖刀。

他想:方卓远不是坏人。方卓远只是一个在商业世界里活下来的人。他理解规则,利用规则,在规则允许的范围内最大化自己的利益。

而陆远自己呢?他在做什么?

他在规则之外开了一个小口。一个蝴蝶可以飞过的小口。


十七

六月初,陆远收到了李明的微信。

“哥,我出事了。”

陆远的心沉了一下。他立刻打了电话过去。

李明没事。但他的一个同事——也是外卖骑手——在一个十字路口被一辆右转的卡车撞了。人还在ICU。

“他家里还有老婆孩子,“李明的声音在电话里发抖,“他才二十三岁。”

陆远安慰了他几句,挂了电话。

然后他打开了云主机上的预测模型,输入了李明同事的信息。

系统输出了PREDICTED_EVENT: TRAFFIC_ACCIDENT (confidence: 0.94)

预测日期:六月三日。置信度0.94。

事故发生在六月四日。

陆远不知道蝴蝶系统有没有给这个人发过干预信息——他没有这个人的身份信息,因为他不是鲸落科技的借款人。

但算法看到了他。

算法看到了一个二十三岁的年轻人生活中的那个临界点,看到了那辆右转的卡车,看到了他即将走向一个不可逆转的方向。

但没有人告诉他。

陆远坐在工位上,看着屏幕上的PREDICTED_EVENT: TRAFFIC_ACCIDENT,第一次感到一种真正的、无法被技术语言稀释的愤怒。

不是对算法的愤怒。算法只是镜子。他愤怒的是镜子照出来的那个东西——一个二十三岁的年轻人,在深圳的街道上跑单,被一辆卡车撞倒。不是因为命运,不是因为运气不好,而是因为他不得不在那个时间出现在那个地点,因为他是一个外卖骑手,因为算法给他分配的最优路线经过那个路口,因为系统给他的派单时间要求他必须闯过那个黄灯,因为——

因为结构。

那些看不见的、系统性的、把人推向危险边缘的力量。

蝴蝶的翅膀太小了。


十八

那天晚上,陆远做了一个梦。

他站在一个巨大的空间里。空间的形状像一座教堂——穹顶极高,两侧是看不见尽头的柱廊。但墙壁上没有壁画,也没有彩色的玻璃窗。墙壁上全是数字。

密密麻麻的数字,像河流一样在墙壁上流淌。每一个数字都代表一个人的一个特征——年龄、收入、负债、心率、步数、睡眠时长、社交频率、消费偏好、信用评分。

他意识到,他看到的是数据。

所有人的数据。

他开始沿着柱廊走。每走一步,墙壁上的数字就会变化。他看到了张桂兰——不,他没有看到她的名字或照片,但他看到了一组他认得的特征组合。五十三岁,女性,家政工,月收入四千二——他知道这是她。

在她的数据旁边,有一个标签。

CRITICAL_POINT: 0.94

临界点。0.94。

他看到了李明。

CRITICAL_POINT: 0.87

他看到了他的母亲。

CRITICAL_POINT: 0.79

他看到了无数人。每个人的数据旁边都有一个临界点标签。有些人的数字很低,接近于零。有些人的数字很高,接近于一。

他开始理解了。临界点不是预测某个具体的事件。临界点是一个人生活的稳定性的度量。当临界点超过某个阈值,生活就开始坍塌——坍塌的方向可能是疾病、事故、失业、离婚,但方向不重要。重要的是坍塌本身。

算法看到的不是未来。算法看到的是每个人的临界点。

他醒了。

凌晨四点。满身是汗。

他打开笔记本电脑,开始写一段新的代码。

不是给蝴蝶系统的。是给一个新的东西。

他要做一个新的模型——一个不预测”谁会出事”的模型,而是一个预测”在临界点上推一把能改变什么”的模型。

他给这个新模型取了一个名字:杠杆

阿基米德说:给我一个支点,我能撬动地球。

陆远说:给我一个临界点,我能撬动命运。


十九

杠杆模型花了陆远三个月的时间。

这三个月里,鲸落科技完成了B轮融资,搬进了更大的办公室。方卓远开始筹划C轮,目标估值五十亿。周彦升了技术总监。刘芸跳槽去了另一家公司。陈维还在做市场,开始频繁出差。

公司的一切都在往上走。

陆远的生活没有太大变化。他还是住在南山区的一个一居室里,月租四千五。他还是每天加班到十点。他还是在每个周末去深圳湾公园走一圈。

但在他的云主机上,杠杆模型在慢慢成形。

杠杆模型的核心逻辑是:对于每一个被识别出高临界点的人,计算一个”最小干预集合”——用最小的扰动,把临界点降到安全线以下。

这不是一个简单的优化问题。因为人的生活不是一个静态的系统,而是一个动态的、非线性的、充满了反馈回路的复杂系统。一个干预可能产生意想不到的副作用。一个看似无关的扰动——一条短信、一篇文章、一个推荐——可能在某个人的生活中引发一系列连锁反应。

陆远用他在研究生时学到的因果推断方法,结合了时间序列分析和强化学习的框架,构建了一个初步的杠杆模型。

模型的效果——至少在纸面上——是令人兴奋的。在模拟环境中,最小干预集合能把临界点平均降低0.23。这意味着,一个临界点为0.9的人,在接受干预后,临界点会降到0.67。

0.67仍然很高。但可能足以让他多撑一段时间。多撑一段时间,也许就会有别的事情发生——找到新工作、遇到一个愿意帮助他的人、偶然看到了一条有用的信息——把他从悬崖边拉回来。

陆远知道,这不是一个解决方案。这是一个创可贴。一个用代码写的、贴在结构性伤口上的创可贴。

但他做不了更多的事。他是一个程序员。他只有代码。


二十

八月。深圳的八月像一个巨大的蒸笼。

陆远在那个月遇到了一个问题。

杠杆模型在运行过程中,生成了一个他没预料到的输出。

对于某个借款人——一个三十八岁的女性,湖南人,在深圳一家电子厂做质检员——模型给出的最小干预集合是:

INTERVENTION: CONNECT_WITH_PERSON "陆远" (impact: 0.31)

模型建议陆远本人去和这个人建立联系。

陆远盯着这个输出看了五分钟。

他查了这个人的信息——脱敏后的信息。三十八岁,离异,有一个十二岁的女儿在湖南老家跟着爷爷奶奶。她在深圳打工六年了,每个月寄三千块回家。她的临界点是0.93——极高。模型预测她在未来六个月内会遇到严重的财务危机和心理健康问题。

而模型认为,最有效的干预是——让她认识陆远。

这不合理。模型怎么知道陆远是谁?模型的数据里没有陆远的信息——他不是借款人,他的数据不在系统里。

除非——

陆远打开了杠杆模型的代码,逐行检查。在因果推断的网络结构中,有一条边连接着”干预者”和”被干预者”——这是他设计的,用来评估不同类型的干预信息的效果。但这条边不应该产生”建议特定的人去联系特定的人”这样的输出。

除非模型在自动扩展因果网络时,把”干预者”这个节点也纳入了优化空间。

他花了两个小时追踪这个逻辑。最终发现,模型在计算”最小干预集合”时,确实把”人际连接”作为一种可能的干预手段。而在所有可能的”人际连接”中,“陆远”这个节点具有特殊的属性——他是系统中唯一一个既了解临界点理论、又愿意采取行动的人。

模型没有在推荐陆远。模型在推荐一种类型的人。而陆远恰好是这种类型的唯一实例。

这个发现让陆远感到一阵眩晕。不是恐惧。是一种更深层的、与敬畏相似的东西。

他决定按照模型的建议做。不是为了验证模型。而是因为——如果模型是对的,这个女人确实需要帮助。而他恰好是可以帮助她的人。


二十一

她叫何小莲。

陆远是通过一个在深圳湖南同乡会的微信群里找到她的。她很少在群里说话,但有一次她发了一条消息,问有没有人知道哪里可以便宜买到初中数学辅导资料。她女儿今年上初一,数学不好,她想给她买点资料寄回去。

陆远加了她微信。说自己以前做过家教,可以帮她推荐一些免费的在线资源。

他们开始聊天。一开始只是关于学习资源的。后来慢慢扩展到她在深圳的生活、她的工作、她的女儿。

何小莲是一个安静的人。她的微信朋友圈几乎是空白的——偶尔转发一篇养生文章,或者发一张女儿的照片。女儿圆圆的脸,笑起来有两个酒窝。

“我每天上班十二个小时,“她有一次对陆远说,“站着的。脚肿得像馒头。但我不敢换工作。因为换工作就要有空白期,空白期就没有工资,没有工资就寄不了钱回去。”

“你女儿想你了怎么办?”

“她就打电话。但她不爱打电话。她觉得我唠叨。”

何小莲笑了一下。那是一种很轻的笑,像是从水面上掠过的一阵风。

陆远知道她的临界点是0.93。他知道她的生活在一条钢丝绳上。他知道模型认为他的介入可以把她的临界点降到0.62。

但他不知道的是,模型没有预测到的事情。

在九月的第二个周末,何小莲的女儿在学校晕倒了。送医后确诊为I型糖尿病。

何小莲接到电话的时候正在上班。她放下电话,对线长说了一声”我请假”,就走了。没有拿工服,没有打卡,没有走正门。

她直接买了最近一班回湖南的高铁票。

陆远知道这件事是因为何小莲在微信上告诉他了。

“我女儿病了,“她写,“糖尿病。要打胰岛素。”

“需要多少钱?“陆远立刻问。

“不知道。医生说要长期治疗。”

“我能帮你一点。”

“不用。我自己想办法。”

何小莲之后三天没有回他的消息。

陆远查了杠杆模型。何小莲的临界点——在他开始和她建立联系后,已经从0.93降到了0.71——现在飙升至0.98。

模型给出的新干预建议是:INTERVENTION: FINANCIAL_AID (amount: 5000, impact: 0.15)

五千块钱,可以把临界点降0.15。从0.98到0.83。

还是太高。

陆远转了一万块钱给何小莲。在转账备注里写:“给孩子买点好吃的。”

何小莲收了钱。过了两个小时,她发了一条消息:“谢谢你。我会还你的。”

“不用还。”

“一定要还。”

陆远没有再坚持。他知道,对于何小莲来说,“还钱”不仅是一个经济行为。它是一种尊严的宣示。它在说:我没有被压垮。我还能站起来。

一周后,何小莲回到深圳。她的脸上多了一些东西——不是悲伤,而是一种更深沉的、更坚硬的东西,像是岩石被风化后露出的纹路。

她约陆远在一家快餐店见面。她比朋友圈照片里瘦了一圈,眼睛周围有明显的黑眼圈。但她坐得笔直,说话清晰。

“我女儿的病已经稳定了。胰岛素每天要打,但费用没有想象的那么高——有医保可以报销一部分。我给她爷爷奶奶说了怎么照顾她,他们学得很快。”

“你女儿现在怎么样?”

“她说她想我。她说她想让我回去。“何小莲的眼眶红了一瞬间,但她忍住了。“我说,等妈妈再挣一些钱就回去。”

“你有没有想过——”

“想过什么?”

“想过不回来了。回湖南,找一份离家近的工作。”

何小莲沉默了一会儿。

“想过。每天晚上都想过。但回去能做什么呢?县城里的工资一千五到两千。我女儿现在每个月光医药费就要五六百。还有生活费、学费、辅导班——”

她没有继续说下去。

陆远看着她。他看到的不是一个数据点、不是一个临界点、不是一个需要被干预的对象。他看到的是一个人。一个正在用全部的力气保持站立的人。

“小莲,“他说,“我有一些朋友在深圳的教育机构。我可以帮你找一些可以在家做的兼职——在线批改作业之类的。收入不高,但至少可以多一些灵活性。”

何小莲抬起头看着他。她的眼睛里有一种陆远从未在数据中见过的东西。

“你为什么帮我?“她问。

陆远想了想。“因为你需要帮助。”

“深圳需要帮助的人那么多。”

“你说得对。但你是我在这个时刻能帮到的那个。”

何小莲低下头,搅了搅面前的可乐。冰块已经化了。

“好,“她说,“谢谢你。“


二十二

九月下旬,陆远在杠杆模型中发现了一个异常。

何小莲的临界点在下降。从0.98降到了0.74,然后0.68,然后0.61。

但下降的原因不完全是因为他的帮助。

模型显示,最大影响因素不是经济援助,也不是在线兼职。而是一个模型无法精确量化的变量——“社会连接强度”。

何小莲和陆远之间的联系——每周几次的微信聊天、偶尔的面、那种”有人在关心我”的感觉——对她的临界点的影响,比五千块钱的转账大了将近三倍。

陆远想:算法以为自己在计算因果。但它漏掉了最重要的一层——人的情感不是可以被量化的变量。它是一种完全不同的东西。它不能被加减乘除。它只能被给予和接受。

蝴蝶效应不是一条短信能引发的。蝴蝶效应是一个人对另一个人说”我在”。


二十三

十月。深圳终于不那么热了。

陆远坐在工位上,看着三块屏幕。中间的屏幕上是公司风控模型的数据看板——坏账率稳定在0.3%,一切正常。左边的屏幕上是他的私人邮件——母亲的体检报告出来了,轻度高血压,医生建议控制饮食和运动,没有大问题。右边的屏幕上是一个空白的文本文件,光标在闪。

他在想一个问题。

蝴蝶系统和杠杆模型在过去六个月里,总共对一百七十三个人产生了某种形式的影响。他没有办法精确地衡量这些影响——他没有对照组,没有随机实验设计,没有经过同行评审的统计方法。

但他知道,在这一百七十三个人中,至少有二十七个人的生活轨迹发生了可观测的改变。

二十七个人。听起来不多。但对于陆远来说,二十七不是一个数字。二十七是二十七个名字、二十七张脸、二十七段对话。二十七个人在某个临界点上被一只看不见的蝴蝶轻轻推了一下,然后走向了一条不同的路。

他在空白文件上写了一行字:

“算法看到了世界的结构。但它无法看到人在结构中挣扎的样子。只有人能看到。”

然后他关掉了这个文件。没有保存。


二十四

十一月初的一个深夜,陆远最后一次检查了蝴蝶系统和杠杆模型的运行状态。

一切正常。云主机上的模型在安静地运转着,每天处理几十条脱敏后的数据,计算临界点,生成干预建议。

他准备做一个他思考了很久的决定。

他要把蝴蝶系统和杠杆模型的代码开源。

不是全部——公司的数据不能碰,个人的身份信息不能碰。但算法的核心逻辑——如何识别临界点、如何计算最小干预集合、如何在不暴露预测结果的前提下进行间接干预——这些可以开源。

他知道这么做的风险。方卓远会愤怒——即使代码里没有任何公司的数据,“鲸落科技的前员工开源了一套风控算法”这件事本身就足以让投资人紧张。监管可能会介入。行业里的人可能会把他的代码拿去做不太好的事情。

但他也知道不这么做的风险。

如果这些知识只存在于他的云主机上,它就永远只是一个实验——一个样本量不够、没有同行评审、没有理论支撑的民间实验。但如果它被开源,被更多的人看到、讨论、验证、改进——它有可能变成一种新的工具。一种可以用来帮助人的工具。

他花了整整一周准备代码和文档。他写了一份详细的README,解释了算法的原理、局限性和伦理考量。他在文档的最后写了一段话:

这套算法不是一个解决方案。它是一面镜子。它照出了我们的社会中那些看不见的裂缝——那些让人们在不知不觉中滑向深渊的结构性力量。算法可以看见裂缝,但只有人能填补裂缝。

如果你使用这套代码,请记住:你看到的每一个”临界点”背后都是一个真实的人。一个有名字、有面孔、有故事的人。请用你的代码去帮助他们,而不是利用他们。

他把代码上传到了GitHub。

然后他关掉了电脑。


二十五

第二天早上,陆远到公司的时候,方卓远已经在他的工位旁等着了。

“你开源了?”

“是。”

方卓远的脸上没有愤怒。只有一种疲惫。

“你知道这意味着什么吗?”

“知道。”

“你可能会被起诉。违反保密协议。泄露商业机密。”

“我没有用公司的任何数据或代码。算法的核心逻辑是我自己写的。法律上——”

“我不是在跟你讨论法律。“方卓远的声音突然提高了一点,然后又压了下来。“我在问你知道自己在做什么吗。”

“我在做我认为对的事。”

方卓远看着他。那双冷静的、计算了一切的眼睛里,陆远第一次看到了一种他不确定该如何命名的东西。也许是尊重。也许是同情。也许只是一个年长的人看着一个年轻人做出天真的选择时,那种复杂的、五味杂陈的感慨。

“你被开除了,“方卓远说,“但我会给你一笔遣散费。六个月的工资。”

“谢谢。”

“别谢我。这不是施舍。这是你应得的。“方卓远顿了顿,“你的模型——公司的那个——我会继续用。但我不会去碰你的’临界点’那套东西。不是因为我不信。是因为我不敢。”

“不敢?”

“有些门打开了就关不上了。我不想做那个开门的人。”

方卓远转身走了。

陆远收拾了他的东西——一个水杯、一盒笔、一本写满了笔记的Moleskine。他的三块屏幕还亮着,上面是他写了两年多的代码。

他关掉了屏幕。


尾声

陆远离开鲸落科技后,没有立刻找新工作。

他在南山区的一个共享办公空间租了一个工位,继续维护他开源的临界点算法。GitHub上的star数在缓慢增长——一个月后到了三百,三个月后到了一千二。他收到了一些邮件,来自世界各地的研究者和开发者,问问题、提建议、报告bug。

有一个邮件来自一个印度理工学院的研究生,她在做一个关于”算法公平性”的研究项目,认为陆远的临界点模型可以用来识别金融系统中的结构性不平等。

有一个邮件来自一个巴西的社会工作者,他在贫民窟做社区项目,想知道能不能用临界点模型来识别最需要帮助的家庭。

有一个邮件来自一个深圳的中学教师,她在班级里发现了几个”临界点”很高的学生——家庭困难、成绩下滑、社交退缩——她想知道有没有什么科学的方法可以帮助他们。

陆远一一回复了这些邮件。

何小莲后来辞掉了电子厂的工作。她用陆远帮她找的在线兼职和自己在短视频平台上做的一些手工教程视频,每月能赚四五千。她把女儿接到了深圳,在一个公立学校上了学。女儿需要每天打胰岛素,但她学会了自己操作,还在班上交了几个朋友。

何小莲给陆远发了一条微信。是一张照片——她和女儿在南澳的海边,两个人都笑得很开心。女儿的脸圆圆的,和她朋友圈里那张旧照片一样。但 taller了,也更瘦了。

照片下面写着:“谢谢你,陆远。我们很好。”

陆远看着那张照片,看了很久。

然后他打开电脑,开始写新的一行代码。

屏幕上的光映在他脸上。窗外的深圳正在亮起万家灯火。


他后来常常想起方卓远在天台上说的那句话。

“概率可以被改变。”

是的。概率可以被改变。不是被算法改变的。不是被数据改变的。不是被任何一个模型或公式改变的。

是被一个人决定去帮助另一个人的那一刻改变的。

算法只是一面镜子。它照出了世界的裂缝。

但填补裂缝的,永远是人的手。


(全文完)


后记

这个故事里的算法是虚构的。但故事试图触及的问题是真实的:当技术发展到可以精确预测个人命运的时候,我们该如何使用这种能力?是把它变成产品,还是变成武器,还是变成一种新的、微小的、温柔的善意?

答案不在代码里。

答案在每一个决定中。