算法与树
一、开盘
二〇二七年十一月十一日,凌晨零点零分。
整座城市像被按下了某个看不见的开关,所有的屏幕在同一瞬间亮起来。手机屏幕、电脑显示器、地铁车厢里的广告屏、便利店门口的灯箱——全部被同一种颜色吞没:一种介于金色和橘红之间的颜色,像日出前的天空,又像燃烧到极致却尚未熄灭的火焰。
「凤凰金融」App的启动页面持续了整整七秒。一个由金色光点组成的凤凰轮廓缓缓展开翅膀,背景音是心跳声,低沉、规律,每一下都像敲在人的太阳穴上。
林栀站在南山区科技园的28层办公室里,透过落地窗看着远处的城市天际线。平安大厦的尖顶在夜色中亮着红色的航空灯,一明一灭,像是某种缓慢的呼吸。她身后的工位上,三十七名数据工程师和技术运营人员正盯着各自的屏幕,等待着那句口令。
「开盘。」
运营总监陈曦的声音从对讲机里传来,平静得像在宣布明天天气不错。
林栀的手指悬在键盘上方。
她知道这一刻意味着什么。凤凰金融的「梧桐」项目——一个基于行为数据和社会关系图谱的信用评估系统——从立项到现在,已经过去了两年零四个月。作为核心算法团队的技术负责人,她亲手写下了第一行代码,也亲手为它注入了那个后来被称为「信用炼金术」的核心逻辑。
梧桐系统的创新之处在于:它不仅仅评估一个人有多少资产、多少收入流水、几次逾期记录。它评估的是一个人在整个社会网络中的「存在强度」——他的社交活跃度、消费轨迹、出行规律、甚至发朋友圈的频率和点赞数。
简单来说,它想知道的不只是你有多少钱,而是你有多「活」。
这个逻辑被写成了一个深度学习模型,训练数据来自十七个外部接口——外卖平台、共享单车、短视频应用、网约车系统、社交媒体账号——以及凤凰金融自有的四千万用户基础。
上线前内测的那六个月里,梧桐系统的坏账率是传统银行风控模型的六分之一。
「零 点零一分,成交额突破一亿。」广播里传来数据播报员的声音,带着一丝压抑不住的兴奋。
办公室里的空气松动了一些。有人在工位上轻轻吹了声口哨。
林栀没有动。她的目光穿过玻璃,落在远处某个看不见的点上。梧桐系统上线前的最后一个晚上,她独自在服务器房里待到凌晨三点,盯着屏幕上滚动的训练日志,看着那个叫「信用炼金术」的模型参数一点一点收束。
她本科学的是基础数学,硕士研究的是计算社会科学。她太清楚一个深度学习模型的本质:它永远比你更了解你自己,但它永远不知道自己在做什么。
它只知道关联,不知道因果。
它能预测一个人会不会违约,但它不知道自己划出的那条信用分界线,会把一些人永远划到线的另一边。
「林工,要不要下来一起看?」旁边的后端工程师赵朗探过头来,手里举着一罐红牛。
林栀摇了摇头。
她不想下去。她不想看那些数字跳动。那些数字不是钱,是人。每一个数字背后都是一个活生生的人——那些在梧桐系统的信用评估中获得高分的借款人,会用更低的利率借到更多的钱;而那些被系统判定为「低存在强度」的人,将付出更高的利息,或者直接被拒之门外。
这不是她一个人的决定。十七个董事成员投票,十四票赞成,三票反对。
但她是那个按下确认键的人。
凌晨零点二十三分,凤凰金融的成交额突破五十亿。
同一时刻,在城市的另一端,一棵树的种子正在破土。
没有人知道它从哪里来,也没有人种下它。它就那样出现在了宝安区与光明区交界处的一片荒地上——那片被废弃的养猪场遗址,三年前因为水源污染问题被勒令停业,此后再无人问津。
第一棵嫩芽从混凝土的裂缝中钻出来,在没有任何水源和肥料的条件下,倔强地向着凌晨的星空伸展开去。
它的叶子在黑暗中泛着一种奇异的光泽,像被月光浸泡过的青铜。
二、梧桐
「林栀,你今天下午有没有空?」
周一早上九点十五分,林栀刚在工位上坐下,组长周恒就走了过来。周恒是个身材微胖的中年男人,戴着黑框眼镜,说话时总喜欢把语尾拖长一点,听起来像在撒娇,但其实是多年做项目管理养成的习惯——让任何一句话听起来都不那么像命令。
「什么情况?」
「区金融办来人了,想跟我们聊聊。」周恒压低声音,「就是那个……梧桐系统的事。有人投诉了。」
「投诉什么?」
「还能是什么,」周恒苦笑了一下,「说我们歧视,说我们的信用评估模型对低收入群体、农村用户、老年人不友好。今天下午两点半,你、我、陈曦,还有区里的一个什么……副主任。」
「叫什么?」
「好像姓方。方什么来着……」周恒翻了翻手机,「方予淳。」
林栀在心里默念了一遍这个名字。她对这个名字有一种说不清的直觉——不是好兆头的那种直觉,而是一种更复杂的东西,像你站在海边看到远处涌来的浪,你不确定它只是一道普通的浪,还是会把你的城堡全部冲走的那种浪。
「知道了。」她说。
下午两点半,林栀准时出现在凤凰金融三楼的会议室。
会议室很大,椭圆形的原木桌,能坐二十多人,但今天只坐了五个人。凤凰方面是她、周恒、陈曦,对面是一个三十五六岁的男人,穿着深灰色的夹克,戴着金属框眼镜,面前放着一个不起眼的黑色笔记本。
他身后站着一个年轻女人,二十七八岁的样子,扎着马尾辫,穿着一件样式简单的藏青色风衣,几乎没有任何多余的首饰或装饰——除了手腕上那块看起来相当旧的天美时手表,表带是皮质的,已经磨出了浅淡的裂纹。
「这位是区金融办副主任,方予淳同志。」区金融办随行的一个年轻科员介绍道。
方予淳没有站起来,只是微微点了点头,脸上带着一种淡淡的、职业性的微笑。那种微笑你在每一个坐在谈判桌对面的人脸上都能看到——不是敌意,但也不是欢迎,只是一种恰到好处的礼貌距离。
「这位是凤凰金融的技术负责人,林栀;这位是运营总监,陈曦;这位是……」
「我知道周恒。」方予淳忽然说。
会议室里的空气顿了一下。
「方主任和周总认识?」科员有些意外。
「不认识,但我研究过梧桐项目的立项材料。」方予淳翻开面前的笔记本,上面密密麻麻写满了字,「周恒是这个项目的发起人,对吧?二〇二五年三月,向董事会提交梧桐项目立项申请的,就是你。」
周恒明显愣了一下,然后笑了起来,笑容里带着一点被看穿的不自在:「方主任做功课做得挺足。」
「应该的。」方予淳合上笔记本,「我今天来,不是来挑刺的,是来学习的。梧桐系统是个好东西,我知道它帮很多人借到了银行不愿意借的钱。但好东西有时候也会出问题,出在我们意想不到的地方。」
他顿了顿,目光扫过在座的每一个人,最后落在林栀身上。
「林工,我有个问题想请教你。」
「方主任请说。」
「梧桐系统的信用评估模型,有没有一个我们外行能听懂的版本?它到底是怎么判断一个人信用好还是不好?」
林栀靠在椅背上,调整了一下姿势。
「简单来说,」她说,「我们把人看成一个点,而不是一个钱包。传统银行看的是你的钱包里有多少钱,我们看的是你这个人在整个社会网络里有多活跃、多重要。」
「怎么衡量?」
「三个维度。」林栀伸出三根手指,「第一,行为丰富度——你的消费、出行、社交、娱乐,这些数据加在一起,构成一个行为轮廓。第二,社会连接度——你跟哪些人互动多,哪些人愿意跟你做生意、跟你借钱。第三,还款意向——不是看你有没有钱还,而是看你有没有一个’在社会网络中保持良好信誉’的动力。」
「第三点很有意思。」方予淳的眼睛亮了一下,「‘还款意向’怎么量化?」
「我们有一个指标叫’社会锚点分’。」林栀说,「一个人如果在他的社交圈里处于中心位置,有稳定的家庭关系、工作关系、朋友圈子,他违约的代价就很高——他失去的不只是钱,还有整个社会身份。所以我们会给这种’锚点密集’的用户更高的信用评级。」
会议室里安静了几秒。
然后方予淳身后的那个年轻女人开口了:「那一个刚到这座城市的打工者呢?」
所有人的目光都转向她。她没有自我介绍,但她的声音有一种干净、清晰的质地,让人无法忽视。
「他可能没有任何社会锚点。他的家人在农村,他在城市里举目无亲,他住城中村,跟工友合租一张床,每个月把大部分工资寄回家。这种人在梧桐系统里,怎么评?」
林栀看着那个女人。她的目光沉静而直接,没有挑衅的意味,但有一种不容回避的认真。
「我们有一个专门的模型处理这种情况,」林栀说,「对于新市民用户,我们有三到六个月的观察期——」
「观察期内的利率是多少?」
「上浮百分之十五到二十。」
「银行利率的两到三倍。」女人说,语气没有任何起伏。
「这是覆盖风险溢价——」陈曦忍不住插话。
「我知道什么是风险溢价。」女人打断他,「我只是想知道,一个刚进城的打工者,他唯一能获得的金融支持,利率是银行的两到三倍——这件事,在座的各位有没有觉得哪里不对?」
会议室里的温度似乎降了几度。
周恒清了清嗓子:「这个问题,其实涉及到整个行业——」
「我今天来,不是来讨论行业问题的。」女人说,「我是来了解凤凰金融的情况的。」
方予淳轻轻咳了一声,像是某种信号。那个女人没有再说话,但也没有收回她的目光——她只是安静地站在那里,等着。
林栀意识到,这个女人问的问题,比任何人的提问都更接近某个被刻意回避的真相。
「我叫季南舒。」女人忽然说,像是想起了什么,「金融办综合科的。」
这是她们第一次见面。
林栀后来回想起来,总觉得那个下午是某种意义上的分水岭——不是对她个人而言的分水岭,而是对很多事情而言的。一条线在那个下午被悄悄划下,线的这边是「增长」「效率」「创新」,线的另一边是「代价」「牺牲」「那些代价是谁在付」。
那天晚上,她在回家的地铁上收到周恒的微信:「今天季南舒那个问题,你怎么看?」
她回了一条:「她问得对。」
周恒那边显示「正在输入」,持续了很久,最后发过来的只有一个字:「嗯。」
三、根
梧桐系统上线后的第一个季度,数据一路狂奔。
新增注册用户一千两百万,授信通过率从传统模型的百分之三十七提升到百分之五十八,笔均借款金额比银行消费贷低百分之二十三,但周期更短、到账更快——平均四十七分钟从申请到放款。
坏账率控制在百分之二点一,远低于行业平均的百分之四点八。
董事会发了一封通报表扬信。周恒在部门群里每人发了两百块红包。赵朗在茶水间跟人吹牛,说梧桐系统是「中国版ZestFinance,但比Zest更懂中国人」。
林栀没有参与庆祝。
她带着团队在做的事,是不断给梧桐系统打补丁——一个接一个的边缘案例被送进她的工位:农村用户逾期率偏高,修正;五十岁以上用户评估失准,修正;跨省流动人口数据缺失,修正。每一个修正都像在算法模型的某个角落塞进去一块石头,让它的滚动变得更稳一些。
但有时候她会停下来,想一想那个下午季南舒的问题。
一个刚进城的打工者,唯一能获得的金融支持,利率是银行的两到三倍——这件事,哪里不对?
她想了很久,想到的答案是:不是梧桐系统哪里不对,是整个系统——金融系统、信贷体系、城市化进程——在某个根本性的问题上,从来没有给过这些人一个公平的起点。
梧桐系统没有制造不平等,它只是精准地测量了不平等,然后把它量化成了一个数字。
这更让人不安。
二〇二八年三月,一个普通的工作日。
林栀接到前台的电话,说有人在楼下等她,没有预约,但说是她的「老朋友」。
她下楼,看到一个她以为自己再也不会见到的人。
周海洋站在大厅的旋转门后面,穿着一件洗得发白的蓝色冲锋衣,手里提着一个塑料袋,袋子里装着几个橙子。他的头发比她记忆中白了很多,脸上的皱纹像是被时间用力刻进去的。
「栀栀。」他叫她,用的是她小时候的名字。
林栀站在原地,不知道该说什么。
她上一次见到这个表哥,是六年前。在老家的县城医院里,躺在病床上的外婆正在做最后一次化疗。周海洋当时在浙江打工,请了一周的假回来帮忙照顾。他在医院走廊里跟林栀说了一句话:「我在厂里存了点钱,想搞点小生意,但现在不够。你先借我五万,等我翻本就还你。」
林栀刚工作两年,没什么积蓄,但还是从信用卡里套了三万块给他。
那三万块后来石沉大海。她打过几次电话,开始是没人接,后来是空号,最后她放弃了。她想,可能他也有他的难处。
「栀栀,我对不起你。」周海洋的声音把她从回忆里拉回来,「这钱我拖了这么久——我现在能还了。」
他说着从口袋里掏出一张银行卡,递过来。
「这是六万。多出来的那一万是利息。」
林栀看着他。她注意到他的手——那双手比六年前更粗糙了,指节粗大,指缝里有洗不干净的黑色油污。他的指甲剪得很短,但剪得不太整齐,有一两个指甲的边缘豁着。
「你做什么工作?」她问。
「现在在宝安那边,开了个小的铝合金加工店。」周海洋说,「活比在厂里累,但挣得多点。这几年攒了点钱,第一件事就是想把这个窟窿补上。」
「你怎么找到我的?」
「你妈给我的地址。她说你在深圳。」周海洋顿了顿,「栀栀,你现在过得好不好?」
这是中国人见面时最常见的一句问候,但从他嘴里问出来,有一种奇怪的重量。
林栀没有回答。她接过银行卡,在手里握了一下,然后还给他。
「钱你留着。」她说。
「栀栀——」
「留着。给我买点水果就行。」她指了指他手里那袋橙子。
周海洋愣了一下,然后眼眶忽然红了一圈。他张了张嘴,像是有一肚子的话想说,但最后只是点了点头,拎着那袋橙子,又走向旋转门。
林栀看着他走出去,在路边站了一会儿,打了个电话,然后往地铁站的方向走去。他的背影在午后的阳光里显得很瘦,肩膀有一点塌,像是被什么东西压着。
那天晚上,她给妈妈打了个电话。
「妈,表哥今天来找我了。」
「我知道,他给我打电话了。」妈妈的声音里有一种复杂的情绪,「他说他还了你钱,你没要。」
「他比我更需要那笔钱。」
电话那头沉默了一会儿。
「栀栀,」妈妈说,「你知道他现在住哪里吗?」
「不知道。」
「他住光明那边,一个城中村。说是房租便宜,一个月四百。」妈妈顿了顿,「他说他儿子下半年要上初中了,要攒钱。」
林栀忽然想起什么:「他什么时候结的婚?」
「二〇一八年。你刚走那一年。」
她沉默了一会儿。
二〇一八年。那一年她刚来深圳,在凤凰金融的前身——一个叫「钱塘小贷」的公司——做数据实习生。周海洋当时也在深圳,在宝安区一个家具厂上班。她记得有一次他约她出来吃饭,在白石洲的一家小馆子,点了三个菜,结账时他坚持付钱,还说「你在外面不容易,表哥能帮就帮」。
那是她来深圳后第一次吃到老家口味的菜。
她挂了电话,打开电脑,在梧桐系统的后台输入了周海洋的身份证号码。
系统返回了一串数字。
信用评分:四百二十三。
风险等级:C-。
建议授信额度:一千二百元。
建议利率:年化百分之二十九点四。
林栀盯着屏幕,盯了很久。
她的手指悬在键盘上方,没有动。
她可以修改这个分数吗?可以。她的权限可以进入模型底层,调整某个特征的权重,让系统给出一个不一样的结果。
但然后呢?周海洋还是拿不到真正的低息贷款,他只能拿到一个看起来更漂亮的数字,然后在一个更大的借贷平台上借更多的钱,去填一个越来越深的坑。
这不是她想要的。
她合上电脑,在黑暗中坐了很久。
那天晚上,她做了一个梦。梦见她站在一片很大的森林里,每一棵树都是一棵数据树——从主干上伸出无数条枝丫,每一条枝丫上挂着一个标签:社交关系、消费能力、出行轨迹、还款历史。这些树没有根,它们悬浮在半空中,靠着彼此的枝叶交织在一起,互相支撑着不倒下去。
她在梦里意识到一件事:算法不是根。算法是枝叶和枝叶之间的连接。它能告诉你谁是重要的,谁是活跃的,谁的价值在增长。但它不能告诉你,谁在最深的泥土里,谁在拼命地扎根。
而正是那些扎根的人,在支撑着整片森林。
四、风
二〇二八年七月,凤凰金融爆出了第一起规模性的投诉事件。
一家叫「新声劳动者」的公益组织代表了三百多名借款人,向区金融办提交了一份举报材料。材料的核心内容是:凤凰金融的梧桐系统对「外卖骑手」「快递员」「建筑工人」「餐厅服务员」等职业群体的信用评分系统性偏低,导致这些群体在申请贷款时实际承担的利率远高于系统公示的「平均利率」,涉嫌利率歧视和职业歧视。
举报材料里附了一份数据报告,是新声劳动者的人自己做的调查。他们以骑手身份在凤凰金融申请贷款,同时用软件抓取App内的利率展示数据,交叉比对了三百多个样本后发现:同一信用分数段内,「稳定职业」(如公司职员、公务员、事业单位员工)的平均借款利率比「灵活就业人员」低三个百分点左右。
「三个点。」陈曦在内部会议上说,语气里带着一点委屈,「我们对外宣传的平均利率是年化百分之十二点九,这些灵活就业人员的实际利率大概是百分之十五点九——就多了三个点,值得他们闹这么大动静?」
「三个点乘以本金,再乘以还款周期,就是几百到几千块的差别。」林栀说,「对于一个月收入五六千的人来说,这可能是两个月的生活费。」
「那你说是我们错了?」
「我没说我们错了。」林栀靠在椅背上,「我是说,我们做的事有代价。这个代价不是算法算错了,而是算法算对了,但这个’对’本身有问题。」
会议室里没人接话。
周恒清了清嗓子:「这个问题怎么解决?」
没人回答。
沉默持续了大概三十秒。陈曦开始翻手机,周恒开始喝他那杯已经不太热的枸杞茶。
最后是林栀打破了沉默。
「梧桐系统有一个底层假设,」她说,「它假设’社会锚点密集’的人违约成本更高,因此信用更好。但这个假设对白领阶层、城市中产是成立的——他们的社会身份跟他们绑得太紧了,违约意味着在同事、朋友、家人面前丢脸。但对于一个从农村来到城市的打工者来说,他的社会身份本身就是脆弱的——他没有城市户籍,没有房产,没有稳定社保,没有本地朋友圈——他在这个城市里的存在感是稀薄的。梧桐系统把这种’存在感的稀薄’翻译成了’信用风险的高企’,然后收他更高的利息。这不是算法的错误,这是算法的逻辑在一个它根本无法理解其处境的群体身上的应用。」
「所以你的意思是,」陈曦慢慢地说,「这个模型从根上就有问题?」
「不是从根上,」林栀说,「是从数据上。模型的训练数据主要来自城市白领用户——那些人打字多、点外卖多、刷短视频多、在社交媒体上发言多。他们的’数字存在’足够密集,所以模型认为他们’信用更好’。但一个建筑工人,他白天在工地上绑钢筋,晚上住在活动板房里,手机信号都没有,他在这个城市的数字存在几乎是零。模型没有足够的数据来评估他,只能用一个粗糙的代理变量——职业——然后把他归类为高风险。」
「那如果给他足够的时间和数据呢?」周恒问。
「给他时间让他在这座城市里扎根,」林栀说,「建立社交关系,积累消费记录,形成稳定的出行规律——然后梧桐系统会给他一个越来越高的分数。但问题是,很多人在这个’扎根过程’中就已经被淘汰了。他们因为缺乏启动资金而错过机会,因为利率太高而陷入债务陷阱,因为债务陷阱而不得不打更多的工、减少社交、压缩消费——然后他们的’数字存在’变得更稀薄,梧桐系统的分数变得更低,利率变得更高。这是一个死亡螺旋。」
会议室里的空气变得有些沉重。
陈曦忽然说了一句:「林工,你知道你在说什么吗?」
「知道。」
「你在说我们的核心产品从娘胎里就带着原罪。」
「我没说原罪,」林栀看着他,「我说的是偏见。算法没有原罪,算法只是数据的一面镜子。但镜子里的东西不好看,所以大家不愿意照。」
陈曦没有再说话。他站起身,走到窗边,背对着所有人站了一会儿,然后走了出去。
那天晚上,林栀又梦见了那片森林。但这一次,她看到的不再是悬浮的数据树,而是一片真正的森林——有根的树,有土的森林。她站在森林的边缘,听到远处传来一阵风穿过树梢的声音,沙沙的,像很多人在低声说话。
她走进森林里,走了很久,越走越深。她发现脚下的泥土越来越松软,有些地方甚至变成了沼泽。她试图抓住那些树的枝干往上爬,但那些树没有根——它们在她触碰的瞬间就化成了数据流,消散在空气里。
她陷进了沼泽。
就在她快要沉没的时候,她感觉到脚下的某处有什么东西在往上顶。是根。真正的根,从地底深处穿破沼泽的污泥,坚定地往上生长,像无数只手的指节张开,托住了她。
她低头看,看到那些根是从她脚下的泥土里长出来的。不是数据,是真实的、有机的泥土,带着雨后的腥气和腐叶的香味。
她在那片泥地上醒来。
醒来的时候,枕头是湿的。
她不知道自己为什么哭。
五、季南舒
八月。
深圳的夏天像一口高压锅,温度和湿度一起往上蹿,走在街上五分钟就会出一身汗。
季南舒在区金融办的办公室里处理文件,处理到一半,手机响了。是一个陌生号码,接起来,是个男声,带着一点紧张和试探。
「请问是季科长吗?我是外卖骑手,我姓马——就是那个在网上投诉凤凰金融的马骑手——他们说要我来金融办调解……」
「马师傅,」季南舒打断他,「你先别急,慢慢说。」
马骑手在电话里说了一个让她听了半小时的故事。
他在凤凰金融借了一万二千块钱,用于更换电动车的电池——那是他最重要的生产工具,没了它他就没法接单。但梧桐系统给他的信用评分很低,利率是年化百分之二十七,他咬咬牙还是借了。
他借了十二个月,每个月还一千一百多。但第四个月的时候,他出了一个小车祸,右脚踝骨折,在医院躺了两周,没法接单。这两周里他没有收入,存款又不多,还款出现了逾期。
逾期之后,梧桐系统自动下调了他的信用评分,利率从百分之二十七上浮到了百分之三十四。他的还款压力一下子大了很多,他不得不在脚还没完全好的情况下提前出院,去跑单。
但他的脚没办法让他跑得跟以前一样快。接单量下降,收入下降,还款越来越吃力,逾期越来越频繁——到第六个月,他已经累计逾期五次,凤凰金融的催收团队开始给他打电话,也给他的家人和朋友打电话。
他八十岁的老母亲在村里接到了催收电话,吓得犯了高血压,住院花了一笔钱。他老婆跟他吵了一架,回了娘家。他的上初中的儿子被同学在QQ上嘲笑:「你爸是老赖。」
「季科长,」马骑手在电话里说,声音有点哽,「我不是故意不还的。我是真的还不上。我现在一个月能挣四千多,还了凤凰金融两千多,剩下的不够一家人的生活。我老婆让我去跟平台协商,看能不能减免一点逾期费用或者延长还款期限,但他们说要按合同来,合同上怎么写就怎么执行……」
季南舒挂了电话,在办公桌前坐了很久。
她拿出那本黑色的笔记本,翻到七月的那一页,在页面的最下方写了一行字:
「梧桐。凤凰金融。骑手。马先生。利率歧视、职业歧视、暴力催收——至少三个点。」
她翻到下一页,开始写一份内部报告的草稿。写到一半,方予淳推门进来了。
「调解的事?」他看了一眼她桌上的笔记本。
「是。」
「怎么样?」
季南舒把她了解到的情况说了一遍。方予淳听完,没有立刻说话,而是在办公室里走了几步,走到窗边,看着外面南山区灰蒙蒙的天际线。
「你知道我为什么把梧桐系统的事交给你跟吗?」他忽然问。
「因为这个项目是区里的重点招商引资项目,」季南舒说,「不好随便派个小兵去盯。」
「不只是这个。」方予淳转过身,「我在立项材料里看到了一件事。梧桐项目的核心算法负责人——林栀——她外婆是季家村的人。」
季南舒愣了一下。
「你外婆叫季芳兰,对吧?」方予淳说,「我查过你们家的族谱。季芳兰是你外婆的姐姐,她嫁到了邻村,生了三个孩子,其中一个儿子叫周海城。周海城的儿子,叫周海洋。」
季南舒的呼吸停了一拍。
「你表姨家的表哥,叫周海洋,」方予淳慢慢地说,「他现在深圳宝安区开了一个铝合金加工店。他借了凤凰金融的钱,利率是年化二十九点四。你知道这件事吗?」
季南舒摇了摇头。
「现在知道了。」方予淳说,「我不是要你利用这层关系做什么——恰恰相反,我是希望你明白,这件事不是一个抽象的’金融消费者保护’问题。这是一张网,而这张网里的每一个人都是有名字的。」
他走到门口,停了停,又说了一句:「季南舒,我们这些在政府做事的人,最容易犯的一个错误,就是把活生生的人变成数字。指标、数字、增长率、投诉量——这些数字方便我们管理,但它们不是人。我们要做的,是把数字还原成人。」
他走了。
季南舒坐在办公室里,看着窗外的阳光一寸一寸地移过地板。
她拿起手机,打开微信,在通讯录里搜索「林栀」。她们在七月的那次见面后加过微信,但几乎没有说过话——只有一条验证通过的提示,和一个简单的「你好」。
她发了一条消息:「林工,我是季南舒。方便的话,想跟你聊聊。关于梧桐系统的事。」
过了大概十五分钟,回复来了。
「好的。明天下午六点,你们单位附近有家叫’老地方’的客家菜馆,听说过吗?」
「没听过,但能找到。」
「那明见。」
她把手机放下,又看了一眼窗外。天边正在聚集乌云,看起来又是一场雷阵雨。
六、雨
老地方是一家藏在一栋老旧写字楼二楼的客家菜馆,招牌很旧了,字迹都有些模糊,但菜做得确实好。老板娘是个五十多岁的客家女人,说话带着浓重的粤北口音,喜欢推荐菜——「今天土鸡很靓」「泥鳅是早上从河里抓的」——每一句都像是在邻居家串门。
林栀和季南舒在角落的一张桌子坐下,点了半只白切鸡、一份客家酿豆腐、一碟炒番薯叶、一小碗酸菜鱼汤。
菜还没上。
「我想请你先看一组数据。」季南舒从包里拿出一个牛皮纸文件袋,里面是一叠打印出来的表格,「这是新声劳动者收集的三百二十七个样本的利率分布图。按照职业类型和信用评分段做了交叉分析。」
林栀接过来翻了翻。
表格做得很细致,数据清洗得很干净,没有任何明显的统计漏洞。她注意到样本的时间跨度是二〇二七年十一月至二〇二八年六月——正好是梧桐系统上线后的第一到第七个月。
「你们是怎么拿到这些数据的?」
「骑手自己提供的。他们在申请贷款时会截图利率页面,然后上传到新声劳动者的数据库里做交叉比对。」
林栀又翻了翻,目光落在最后一行数字上:「C-级以下用户,灵活就业群体的平均利率是固定职工群体的1.23倍。」
「对。」
「你们打算怎么处理这个数据?」
「向区金融办提交正式的行政建议函,」季南舒说,「要求凤凰金融对梧桐系统的职业维度权重进行公开说明,并考虑引入’社会融入度’这一更中性的变量来替代’职业类型’这一直接变量——降低模型对职业因素的敏感度。」
「你们的要求是什么?」
「修改模型,降低灵活就业群体的实际借款利率至少一点五个百分点;建立弹性还款机制,对于因意外情况(如伤病)导致逾期的用户提供宽限期和费用减免通道;规范催收流程,禁止对借款人之外的第三方(如家人、同事)进行催收骚扰。」
林栀放下那叠表格。
「第二条和第三条问题不大,可以谈。第一条,」她顿了顿,「你知道董事会不会同意的。」
「为什么?」
「因为梧桐系统的定价逻辑是基于风险的。如果降低这部分群体的利率,就意味着要让其他群体——主要是高信用白领群体——承担更高的利率来补贴这部分风险成本。但这在商业上不可行,会导致高价值用户的流失。」林栀说,「或者另一种方案,让凤凰金融自己贴这个钱——但你觉得它愿意吗?」
季南舒没有立刻回答。
菜上来了。白切鸡装在一个白色的磁盘里,鸡皮泛着金黄色的光泽,油光锃亮。老板娘端菜上来的时候说了一句:「靓鸡,今天早上杀的,你们运气好。」
两个人沉默了一会儿,开始吃饭。
吃到一半,季南舒忽然说:「你知道我表哥的事。」
这不是一个问句,而是一个陈述。
林栀的筷子停了一下。
「你怎么知道?」
「方主任告诉我的。」
林栀放下筷子,拿起茶杯,喝了一口。茶是大麦茶,带着一股朴实的焦香。
「周海洋,」她说,「信用评分四百二十三,C-级,授信额度一千二,利率年化二十九点四。」
「我知道。」
「他想给儿子攒初中学费,想在光明买个小产权房,想把在老家的老婆孩子接过来。」林栀说,「但以他现在的信用评分,他在这座城市里几乎借不到任何一笔利率合理的钱。他能借到的最便宜的钱,是凤凰金融的年化二十九点四——这是利率的尽头,不是起点。」
「你觉得这合理吗?」
「不合理。」林栀说,「但我不知道怎么让它变合理。」
「为什么?」
「因为梧桐系统做的是概率,」林栀说,「它不是在做道德判断,不是在说这家人值不值得——它只是在算一个人违约的概率是多少。而从概率上说,一个没有城市户籍、没有固定资产、没有本地社保、社会网络稀疏、收入波动大的打工者,违约概率确实更高。这是事实。」
「事实就一定是对的吗?」
林栀没有回答。
季南舒继续说:「我表哥以前在浙江的家具厂上班,做了八年。他没换过工作,没迟到过一天,没旷工过一次。后来厂子搬走了,他才来深圳。在深圳他换过三份工作,铝合金加工是他自己学的,他花了半年时间才从一个完全不会的新手变成了一个能独立接活儿的师傅。他每天早上六点起床,晚上八点收工,中午就着榨菜吃两个馒头。他不抽烟,不喝酒,不打牌,不刷抖音。他把每一分钱都寄回家。」
她的声音很平,但平的声音有时候比高声更重。
「这样的人,在梧桐系统里是C-。」
林栀低头看着盘子里的鸡。她忽然觉得那只鸡很可怜。它被杀掉,被煮熟,被切成一块一块,摆在这个盘子里,被两个陌生人评价它的「信用」——用一种它永远无法理解的逻辑。
「我今天跟你说这些,」季南舒放下筷子,「不是要你帮我表哥开什么后门。你的模型该怎么跑就怎么跑,我不求你改数据。我只是想让你知道一件事——」
她看着林栀的眼睛。
「我表哥是大多数人。不是一个例外,不是统计学上的噪音,不是可以被’风险溢价’四个字轻飘飘地覆盖掉的那种人。他就是大多数。」
窗外忽然闪过一道白光,然后是一声沉闷的雷。雷声滚过天际,像天空在打一个很大的饱嗝。雨开始下了,哗哗地打在窗户上,打在空调外机上,打在对面楼房的铁皮遮阳棚上。整个世界忽然变成了一面巨大的鼓,所有的东西都在上面敲。
她们就着雨声又吃了一会儿。酿豆腐很嫩,番薯叶很绿,酸菜鱼汤里有一点点糊了——但糊的部分特别香。
快吃完的时候,季南舒从包里拿出一个小小的保鲜盒,放在桌上。
「这是什么?」
「我表哥做的,」她说,「客家酿酒猪手。他听说我要来深圳,特意做了一盒让我带给你。上次他来深圳找你,你没要他的钱,但收了他的橙子。他说那橙子不好,太酸了,这次他专门挑了最甜的给你。」
林栀打开保鲜盒。
里面是一块红褐色的猪手,浸在琥珀色的客家酿酒里,点缀着几片姜和几颗枸杞。猪手的表皮泛着油亮的光泽,闻起来有一股甜蜜的酒香和肉香混在一起的味道。
她盯着那块猪手看了很久。
然后她忽然意识到自己的眼眶湿了。
不是因为悲伤,而是因为一种她说不清楚的东西——一种在数据和算法之外的东西,一种不能被量化、不能被建模、不能被放进任何一个特征权重里的东西。
它大概是这个样子的:一个人,在被一个冷酷的系统判定为「低信用」「高风险」「不值得」之后,依然会记得你小时候喜欢吃甜的还是咸的,依然会在坐了很久的火车之后带一盒自己做的猪手来见你,依然会在走的时候说「栀栀,你现在过得好不好」。
这种东西,梧桐系统算不出来。
「帮我谢谢他。」林栀说,声音有一点哑。
「他会高兴的,」季南舒说,「他觉得你收了他的猪手,就是原谅他了。」
「原谅他什么?」
「那三万块钱的事啊。他一直觉得拖了这么久,很对不起你。」
林栀摇了摇头。
「那不是债,」她说,「那是礼。」
窗外的雨越下越大。
七、树
二〇二八年十一月。
梧桐系统上线一周年。凤凰金融举办了一场小型庆典,在平安金融中心顶楼租了一个宴会厅,请了媒体、合作机构和几家投资机构的代表。
林栀没有参加。
她请了半天假,去了宝安区与光明区交界处的那片荒地。
那片荒地被当地人叫「烂泥头」——不是因为真的有泥,而是因为三年前养猪场关闭后留下了一片水泥地面和几堵断墙,政府一直说要开发,但资金链断裂,项目烂尾了。三年过去,无人问津的土地上开始长出杂草和灌木。
但有一棵树非常显眼。
那棵树大约有三层楼高,树干笔直,树皮呈灰褐色,有一道一道的纵向裂纹。树冠呈圆锥形,枝叶繁茂,在初冬的阳光下泛着一种深沉的墨绿色——按理说这个季节深圳的树木大多不会这么绿,但这棵树绿得像是从油画里走出来的。
最奇怪的是,这棵树下,长着几十株小树苗。
那些小树苗的高度大约到膝盖,密密麻麻地围绕着母树,像一群孩子在围着自己的母亲。它们也在发光——不是在阳光下发光,而是在黄昏时分,当天色暗下去,它们的叶片会泛起一层淡淡的蓝色荧光,像萤火虫,但比萤火虫更安静、更持久。
林栀是第二次来看这棵树。
第一次是上个月,她路过这里,无意间发现它的。她当时只是觉得它长得很奇怪——在这个没有人浇水、没有人施肥的废弃工地上,一棵树怎么能长得这么好?
她拍了照片,发给了一个在华南农业大学读植物学博士的大学同学。那个同学看了照片之后,连发了好几条语音,每一条都带着压抑不住的兴奋。
「林栀你这是什么宝贝?叶子形态是壳斗科但不是青冈,你确定是在深圳看到的?深圳不可能有这种树,壳斗科的树在深圳只有几种,都不长这样……还有那个荧光是什么鬼?我查了全球已知的发光植物,只有荧光蘑菇和萤光树——萤光树只分布在新西兰和澳大利亚的部分地区……等等,你说你看到小树苗在发光?不可能,现存的木本植物里没有任何一种能在幼苗期就表现出荧光特性……」
最后那个同学说:「我要来深圳。」
她来了。她蹲在那棵树下研究了三天,最后给林栀发了一条消息:「我查不到 它的任何物种信息。它不是任何已知物种的变种,也不是任何基因工程的产物。」
林栀收到这条消息的时候,正站在那棵树下。
初冬的风从远处吹来,带着城市边缘特有的气味——尘土、柴油、还有一点点远处养猪场遗留的猪粪味道。但奇怪的是,这棵树周围有一股不同的气息,像雨后森林里的腐殖土,腥甜腥甜的,带着生命的味道。
「还有一件事,」那个植物学博士在第二条消息里说,「我采集了一些小树苗的叶片样本回来做化验。结果发现它们的细胞结构里有一种奇怪的荧光蛋白——不是叶绿素,是另一种东西,我从来没见过的。它的发光模式不是持续的,而是脉冲式的——就像心跳一样。」
「像心跳?」
「对。周期大概是每分钟七十二下。跟人的静息心率几乎一样。」
林栀听到这句话的时候,正好有一阵风吹过。那些小树苗的叶片在风中轻轻摇曳,果然在某一瞬间同时亮了一下,然后又暗下去,像一片被夜光照亮的海。
七十二下每分钟。人类的心跳。
这棵树在用人类的心跳频率呼吸。
她蹲下来,伸手触碰了最近的一株小树苗。树苗的叶片在她手指的触碰下亮了一下,然后那股光顺着她的指尖蔓延开来——不是疼痛,而是一种奇异的温热,像冬天里的一杯热茶,从她的手心一直流淌到她的心脏。
她感觉到了什么。
不是具体的画面或声音,而是一种情绪——疲惫、焦虑、还有一种很深很深的、被压在水底很久很久的渴望。那种渴望的名字她叫不出来,但它跟债务无关,跟数字无关,跟梧桐系统的任何一条特征权重都无关。
它只跟一件事有关:活着。
APP即将崩塌的迹象是在二〇二九年一月开始出现的。
表面上,数据依然漂亮。梧桐系统的注册用户突破八千万,授信通过率稳定在百分之六十二,坏账率控制在百分之二点三——行业最低。凤凰金融的估值在二级市场上已经突破了两百亿美元,董事会开始讨论赴港上市的计划。
但林栀知道水面下正在发生什么。
她每周都会收到一份内部的风险报告——不是给董事会看的那种精心包装过的版本,而是数据团队自己用的原始版本。那份报告上有一条曲线,她每天都在盯着它看:新增用户的「首月逾期率」。
这条曲线在过去三个月里一直在微微上升。从百分之一点八,爬升到百分之二点一,再到百分之二点四。
一开始她以为这只是正常波动——新用户总是需要一点时间来适应还款节奏。但当她把这条曲线跟梧桐系统在过去一年里做的所有「模型迭代」做了时间线对比之后,她发现了一个可怕的关联。
每一次「迭代」,都伴随着首月逾期率的跳涨。
这不是bug。这是feature。
梧桐系统在二〇二八年八月做了一次重大迭代,引入了一个新的特征组合:「稳定性偏好指数」。这个指数的核心逻辑是:一个用户如果在他的行为数据里表现出强烈的「提前还款」倾向,说明他对债务有心理压力,他更可能在未来的某个时间点因为债务焦虑而违约——因此,应该在他第一次借款时就收取更高的利率。
这个逻辑听起来无懈可击。它甚至有一个优雅的名字:「压力识别」。
但林栀知道这个逻辑真正在做什么。它在识别那些因为穷而格外谨慎的人,然后把他们的「谨慎」翻译成「高风险」,然后收他们更多的利息。
那些被「压力识别」模型判定为高风险的用户,往往是第一次接触信贷的年轻人,或者刚从农村来到城市的打工者——他们没有信贷记录,银行不给他们开卡,梧桐系统是他们能接触到的第一个信贷产品。他们不知道「等额本息」和「等额本金」的区别,不知道「年化利率」和「实际利率」之间的差异,他们只知道每个月要还一笔钱,这笔钱必须准时存进去,否则就会有人打电话。
他们的谨慎不是压力的表现,而是生存本能的体现——一个在底层挣扎的人,他不对未来抱任何幻想,他只知道今天的钱今天存,明天的事明天再说。
但梧桐系统读不懂这个。
它把他们的「今天的钱今天存」翻译成了「压力过大,即将违约」。
林栀在内部会议上提过这个问题。她说:「压力识别模型可能存在对低收入群体的系统性误判,因为它把’生存式谨慎’和’压力式焦虑’混为一谈了。」
董事会的答复是:「继续观察。如果三个月内数据没有明显恶化,就暂时不做大的调整。」
三个月过去了。数据确实没有「明显恶化」——如果把「明显」定义为坏账率突破百分之三的话。但那条曲线的走势让林栀不安,就像一根绷紧的弦,你知道它随时可能断,但你不确定是哪一秒。
一月底,一个更大的问题浮出水面。
新声劳动者联合了另外两家公益组织,向中央网信办举报了凤凰金融的「梧桐」系统。举报的核心内容有两点:第一,梧桐系统在用户不知情的情况下,通过十七个外部数据接口采集用户的个人隐私数据,涉嫌违反《个人信息保护法》;第二,梧桐系统的信用评估模型存在对特定职业群体的系统性歧视,涉嫌违反《反垄断法》和《金融消费者权益保护实施办法》。
中央网信办受理了举报。
消息传出来的第二天,凤凰金融的股价在美股盘前交易中一度下跌了百分之十一。
八、潮
方予淳是在区政府食堂里听到这个消息的。
他端着餐盘在打饭,听到隔壁桌两个科员在低声议论:「听说了吗?凤凰金融被网信办点名了。」「就是那个梧桐系统?不是说我们区的重点企业吗?」「重点企业怎么了,重点企业也得守法啊。」
他没有停下来听。他端着餐盘走到窗边的一个位置坐下,对着窗外灰蒙蒙的天,嚼了一块白切鸡。
他吃得很慢。
他想起了两年前,他在季南舒的入职档案上写的那句评语:「有独立思考能力,不人云亦云,适合政策研究与基层调研工作。」当时还有人质疑,说一个女生做基层工作会不会太辛苦。他没反驳。他知道季南舒不是那种怕辛苦的人。
他更想起了去年夏天,他让季南舒去跟凤凰金融的案子时,内心深处其实有一个没说出口的判断:这件事,最终可能不会有一个所有人都满意的结果,但它值得被认真对待,因为它触及了这个时代最核心的一个矛盾——当技术开始替人做决定的时候,谁来保证这些决定是公正的?
梧桐系统不是恶的。它在努力做一件好事——让那些被银行排斥在外的人也能借到钱。它的问题是,它在做这件好事的时候,不可避免地复制了现实世界中已经存在的偏见和不平等,然后把这种偏见和不平等用算法的名义固定下来,让它变得更高效、更隐蔽、更难被挑战。
这比明目张胆的歧视更可怕。
因为它穿着科学的外衣。
他吃完最后一口饭,收拾好餐盘,走出了食堂。
下午三点,他接到了区长的电话。
「凤凰金融的事,你知道了吧?」
「知道了。」
「网信办的人明天到区里来调查。区里的态度是:全力配合,但也要保护本土企业。你懂我的意思吧?」
「我懂。」
「凤凰金融是区里的纳税大户,解决了几千人的就业,它的梧桐系统还拿了好几个国家级创新奖项。在调查期间,尽量不要让它在舆论场上处于太被动的位置——当然,前提是它确实没有问题。如果有问题,那就另说。」
「明白。」
「南舒这个案子,一直是你在跟吧?」
「是。」
「她的报告我看了。写得很扎实,但火药味也太重了。什么’系统性歧视’、‘算法霸权’——这种帽子扣下去,对区里的招商引资环境会有影响。你跟她谈谈,让她注意一下措辞。」
「区长,」方予淳忽然说,「您让我说实话吗?」
「说。」
「我不认为南舒的报告有措辞问题。她说的事实,用的是最克制的语言。网信办的人不是傻子,他们看得懂报告里的每一个字都是经过核实的。如果凤凰金融真的没有问题,那调查报告不会对它有任何影响;如果它有问题——」
「行了行了,」区长打断他,「我不是来跟你讨论学术问题的。你去准备一下明天的事吧。」
电话挂了。
方予淳站在窗前,看着窗外的城市。天更阴了,看起来要下雨。
他拿起手机,给季南舒发了一条消息:「明天上午九点,网信办的人在区里开协调会。你也来。」
季南舒的回复很快:「好。需要我准备什么?」
「把你收集的所有材料带上。每一份。」
他没有告诉季南舒的是,他刚刚在电话里替她挡了一件事。区长说让他「跟她谈谈」,言下之意是要他给季南舒施压,让她在报告里「软化」措辞。他没有答应,也没有拒绝——他只是挂了电话,然后按照自己的方式去做了他觉得对的事。
他不知道自己的方式是不是对的。但他想,一个人在体制内能做的事情不多,至少可以把那些真正在做事的人保护起来,哪怕只能保护一小会儿。
那天下午,方予淳做了一个决定。
他把他私下调查凤凰金融时发现的一些问题整理成了一份备忘录,锁在了自己的抽屉里。那份备忘录里记录了三件事:第一,梧桐系统上线初期,有一批「种子用户」——约一万三千人——他们的信用评分被人为调高过,这批用户的还款记录显示,他们的实际违约率远高于系统预测值,但没有人知道他们是谁,他们为什么获得了特殊待遇,以及是谁批准了这次人工干预;第二,凤凰金融的催收团队在二〇二八年下半年引入了一套新的「社媒施压」流程,授权催收人员通过借款人的社交媒体账号发布含有暗示性的内容来施压——这些内容不直接提及债务,但足以让借款人的社交圈知道他「出了问题」;第三,有一个内部代号为「锚点清洗」的项目,在二〇二八年十一月悄悄启动,它的核心逻辑是:当一个用户的逾期天数超过三十天时,系统会自动将其「社会锚点分」清零,并在其社交网络图谱中标记为「边缘节点」——这意味着这个人的社会连接将被动降级,而这种降级是不可逆的。
这三件事,没有一件直接违法。但每一件都踩在了道德的边缘。
方予淳不知道它们最终会不会被写进调查报告里。他只知道,它们应该被人知道。
九、潮水
二〇二九年二月十四日。
这一天是情人节。深圳的街道上到处都是手捧玫瑰的年轻人,商场门口摆着巨大的粉色心形气球,空气中飘着一股廉价香水和巧克力的味道。
但在南山区科技园凤凰金融总部的三楼会议室里,没有玫瑰,没有气球,没有巧克力。
网信办调查组的三名成员坐在长桌的一侧,他们身后是区金融办、区市场监管局和区公安分局的相关负责人。对面坐着凤凰金融的CEO、CFO、法务总监和周恒。
林栀也在。但她没有坐在长桌边上,而是坐在角落的一张旁听席上,像一个等待被叫到的证人。
会议开始后的第四十七分钟,季南舒被叫了进来。
她拿着一叠厚厚的材料,走到长桌前,开始陈述。
「我今天要陈述的内容涉及梧桐系统信用评估模型的算法逻辑及其对特定群体的影响。以下所有数据均来源于公开渠道和凤凰金融App内可获取的信息,所有分析结论均经过交叉验证。」
她的声音很稳,没有一丝一毫的颤抖。
「第一,职业维度的权重问题。根据我们的调查,梧桐系统对用户职业类型的敏感度系数为0.73——这个数字意味着什么?我请大家看一组对比数据。在信用评分同为五百分的用户群体中,从事’稳定职业’的用户平均借款利率为年化百分之十一点二,而从事’灵活就业’的用户平均借款利率为年化百分之十四点八,差距为三点六个百分点。这个差距在整个评分区间内是系统性的——我们测试了从三百五十分到七百分的所有评分段,结果显示,灵活就业群体的利率始终高于稳定职业群体,差距从二点三个百分点到四点二个百分点不等。」
「第二,‘社会锚点分’的流动性问题。我们发现,梧桐系统对’社会锚点分’的计算有一个隐性规则:一旦用户的社会锚点分低于某个阈值——我们估算这个阈值大约在二百分左右——系统会将其标记为’低锚点用户’,并启动一个叫’锚点蒸发’的机制。这个机制的核心逻辑是:降低该用户在其社交网络中的可见度,减少系统向他推送的商业信息,同时降低他的信用评分上限。但这个机制的致命问题在于,‘低锚点用户’往往是最需要金融支持的群体——刚进城的打工者、失业者、临时工——而’锚点蒸发’机制恰恰是在他们最脆弱的时候,进一步削减他们的信用额度,提高他们的借贷成本。这不是一个风控机制,这是一个死亡螺旋。」
「第三,催收流程的合规性问题。我们通过骑手群体的内部渠道获取了一份凤凰金融催收团队的内部培训手册。手册中有一个章节叫’社媒施压’,其中明确写道:‘对于逾期超过十五天的用户,可以通过在其朋友圈、微博、抖音等平台发布带有暗示性的内容进行间接施压——例如发布一张欠条的照片(不露脸),或者发布一段’借钱不还’的短视频配文(不提姓名)——这种方式的优点是不直接暴露用户身份,但足以在其社交圈中造成心理压力。‘我们认为这种催收方式涉嫌侵犯用户隐私权和名誉权。」
会议室里很安静。
季南舒把材料放下,看着对面的凤凰金融团队。
「以上就是我的陈述。」
没有人说话。
CEO在跟法务低声交流什么。周恒低着头,看不清表情。陈曦的手在桌下攥成了拳头。
然后,网信办调查组的组长开口了:「林栀是哪位?请过来一下。」
林栀站起来,走到长桌前。
调查组组长是一个五十多岁的男人,戴着老式的金丝边眼镜,镜片后面的眼睛有一种学者式的锐利。
「林工,」他说,「季科长刚才陈述的内容,你作为梧桐系统的核心技术负责人,有什么要回应的吗?」
林栀站在那里,沉默了几秒钟。
那几秒钟里,她想到了很多事情。想到两年前她写下第一行代码时的心情,想到凌晨三点盯着训练日志的那个夜晚,想到周海洋的信用评分四百二十三,想到马骑手在电话里说「我不是故意不还的」,想到那棵在废弃工地上发光的树。
她知道此刻她可以做一个安全的选择——逐条反驳季南舒的指控,维护梧桐系统的每一个设计决策,用技术术语把对方淹没。她有这个能力。她在这个行业里浸淫了七年,她知道怎么用数据讲一个对我有利的故事。
但她想起了那个梦。梦里她陷进了沼泽,那些没有根的数据树在她触碰的瞬间化成数据流消散,只有从泥土深处长出的真正的根托住了她。
她不是根。她是枝叶。她在空中飘荡了太久,忘了泥土在哪里。
「我有一个补充说明。」她说。
「请说。」
「季科长刚才陈述的内容,」她顿了顿,「基本属实。」
会议室里响起了一阵低低的骚动。
「但是,」她继续说,「我需要补充一些她没有提到的背景。」
她深吸一口气。
「梧桐系统不是一天建成的。它的每一个设计决策,都是在当时的数据条件、技术认知和商业环境下做出的。我认为,这些决策的出发点和逻辑在当时都是合理的。但’合理’和’正确’不是一回事——合理的意思是,它在给定约束条件下是有道理的;正确意思是,它最终没有伤害到不该被伤害的人。」
「梧桐系统的问题不在于它本身是恶的。它的问题在于,它在设计时预设了一个前提:‘数字存在’等于’社会价值’,‘信用评分’等于’还款能力’,‘风险溢价’等于’公平定价’。这三个等号,每一个都是对真实世界的简化。而这种简化,在某些情况下——比如对那些刚刚来到城市、还没有建立起足够的数字存在的打工者——会系统性地伤害到最脆弱的群体。」
「这不是bug。这是架构层面的问题。」
她说完,会议室里又安静了。
网信办调查组的组长看着她,点了点头。
「林工,我再问你一个问题。」
「请说。」
「如果让你重新设计梧桐系统——不是为了规避监管,而是为了真正做到公平——你会怎么改?」
林栀沉默了很久。
最后她说:「我不知道。」
这不是谦虚。这是实话。
她知道问题在哪里,但她不知道答案。一个模型的公平性,归根结底不是技术问题,是社会选择问题——你要把天平向哪边倾斜?谁来承担风险的成本?效率和公平之间的边界应该画在哪里?这些问题没有技术答案,只有政治答案。
而她只是一个工程师。
那天晚上,林栀又去了那片荒地。
那棵树枝繁叶茂,在夜风中轻轻摇晃。小树苗们依然在发光,七十二下每分钟的脉冲,像大地的心跳。
她站在树下,闭上眼睛。
她感觉到了什么——一种从树根深处传来的共振,从她的脚底传遍全身。不是声音,不是画面,是一种更原始的东西,像一种很老很老的记忆,藏在所有人的血液里,只是我们已经忘了它的存在。
那种记忆的名字,大概叫做「根」。
城市里的人是孤独的。他们用算法来连接彼此,用信用来量化彼此,用债务来绑定彼此。但在这一切数字化的底层,他们仍然需要一样东西——一样梧桐系统永远无法计算的东西。
那就是:总有一些人,在你跌倒的时候会拉你一把。不是因为你的信用评分高,不是因为你的社会锚点密集,不是因为你违约的概率低。
只是因为你是你。
她睁开眼睛,发现天空中有什么东西在落下来。
不是雨。是雪。
深圳下雪了。
这座亚热带城市上一次见到雪,还是在五十四年前的1951年。那场雪只持续了十几分钟,被很多人当作一生的记忆。
但这场雪下了很久。
雪花落在那棵树的叶子上,落在地面上,落在林栀的头发上。它们不是白色的,而是带着一点点淡蓝色的光——跟那些小树苗发出的光一模一样。
她站在那里,雪落在她的肩上,她感觉到一种她很久没有感觉到的平静。
二〇二九年二月十四日晚上十点四十七分,凤凰金融发布了一份紧急公告:鉴于梧桐系统在实际运营中暴露出的一些问题,公司决定主动暂停梧桐系统的运营,进行全面的算法审查和模型重构。同时,公司将设立一个由外部专家组成的「算法伦理委员会」,对系统的每一个设计决策进行伦理评估。
公告发布后,凤凰金融的股价在盘后交易中上涨了百分之三。
那些小树苗在雪中发出的光,比以往任何时候都亮。
十、根
二〇三〇年。
梧桐系统没有重新上线。取而代之的是一个叫「梧桐树」的新项目——一个非营利的信用评估工具,由凤凰金融与三家公益组织联合开发,所有算法逻辑对公众透明,任何人都可以查看每一项特征权重的设计依据和预期影响。
林栀是「梧桐树」项目的技术顾问。她不再是核心算法负责人——那个位置交给了一个比她年轻五岁的算法工程师,一个从贵州山区考出来的苗族男孩,他说他小时候在山里见过一种会发光的苔藓,当地人管它叫「鬼火草」,据说只有在从来没有发生过争吵和欺凌的土地上才会生长。
「这种草现在还有吗?」林栀问。
「不知道,」他说,「后来我再也没见过。」
他没有问为什么。
周恒离开了凤凰金融,去了成都,据说在帮一家国企做数字化转型。他走之前请林栀吃了顿饭,席间说了一句话:「老林,我这辈子做的最正确和最错误的事,都是梧桐系统。」
「为什么是最错误的?」
「因为我太相信算法了,」他说,「我以为只要模型足够复杂、数据足够丰富,就能解决所有问题。但后来我发现,算法解决的问题越多,它制造的新问题就越多——而且那些新问题往往更难解决,因为它们更难被看见。」
「那为什么是最正确的?」
「因为梧桐系统让很多人第一次意识到,算法是需要被审视的,」他说,「以前大家都觉得算法是客观的、中立的、不会骗人的。但梧桐系统用事实告诉他们:不,算法也可以歧视人,算法也可以背叛人,算法也可以站在强者那边欺负弱者。这件事本身是有意义的。」
他没有再说什么。
季南舒还在区金融办。她后来主导制定了区里第一个「平台经济监管细则」,里面有一条很有意思的规定:「禁止任何平台在信用评估模型中使用’职业类型’作为直接特征变量;如需考虑职业因素,须将其转化为’职业稳定性’、‘行业前景’、‘技能稀缺性’等中性变量,并提供充分的论证说明。」
那条规定的灵感来源,是林栀在那天晚上的协调会上说的那句话:「把’生存式谨慎’和’压力式焦虑’区分开来。」
季南舒后来把这条规定的草稿给林栀看过,林栀说:「措辞可以,但有一个漏洞。」
「什么漏洞?」
「‘职业稳定性’、‘行业前景’、‘技能稀缺性’——这三个变量听起来中性,但它们跟职业类型的相关性太高了。一个外卖骑手,他的职业稳定性低、行业前景差、技能稀缺性低——最后这三个变量综合起来,还是会得到一个跟直接使用’职业类型’几乎一样的结果。」
「那怎么办?」
林栀想了想:「加一个兜底条款:如果使用某一组特征变量后,模型的输出结果与直接使用’职业类型’作为特征的模型结果之间的相关系数超过零点七,视为间接歧视,平台须承担举证责任,证明其特征选择与信用评估目标之间存在充分的因果关系,而非仅仅是相关性。」
季南舒把这条款写进去了。
后来那条规定的正式名称是:「平台信用评估模型间接歧视认定标准及举证责任指引」。很长的名字,没人记得住,大家都叫它「梧桐条款」。
方予淳后来被调去了市发改委。他的调令下来之前,他请季南舒吃了一次饭,席间说:「我在区里待了八年,做过很多决定。有些决定是对的,有些决定是错的。但有一件事我从来没有后悔过——就是把你放在梧桐那个案子上。」
「为什么?」
「因为那个案子让我想明白了一件事,」他说,「我们这些在体制内做事的人,最容易犯的错误不是不作为,而是把活人当数字管。但总要有一些人记得,数字的背后是活人——那些会哭、会笑、会借钱、会还钱、会在深夜里睡不着觉、会为了几百块钱的利息跟老婆吵架、会为了给孩子交学费去借高利贷、会记得给远方的表妹带一盒橙子的活人。」
「那些人才是大多数。」
他的调令是那年三月下来的。走的那天,深圳又下了一场小雨。他没有让任何人送,自己撑着伞走到地铁站,坐三号线去罗湖火车站。
但他在地铁站的入口处看到了一个熟人。
林栀站在那里,手里捧着一杯咖啡。她看到他走过来,朝他点了点头。
「方主任,」她说,「听说你要走了。」
「消息传得挺快。」
「深圳是个小城市。」
方予淳笑了笑。
「林工,」他说,「我想问你一个问题。」
「请说。」
「你相信那棵树吗?」
林栀沉默了一会儿。
「我不知道,」她说,「但我希望它是真的。」
「为什么?」
「因为它让我觉得,」她说,「这个世界上还有一些东西,是算法算不出来的。」
方予淳看着她。他想,这个女人有一种奇怪的力量——她明明是一个技术精英,一个在最顶尖的算法模型里浸泡了多年的人,但她身上有一种东西,是跟泥土连在一起的。那种东西不是知识,不是技能,不是任何可以被量化的东西。它只是一种朴素的、根系一样的信念:人应该站在土地上,而不是悬浮在空中。
「林工,」他说,「后会有期。」
「后会有期。」
他们握了握手。然后林栀转身走进了地铁站,方予淳撑着伞走向罗湖火车站。
雨越下越大。
周海洋后来把铝合金加工店关了,回了老家。他用这些年在深圳攒的钱,在县城开了一家小超市,生意还不错。他儿子考上了县里的重点高中,成绩年级前十。
他走之前请林栀吃了顿饭。还是客家菜。还是那家店。还是红褐色的猪手,浸在琥珀色的客家酿酒里。
「栀栀,」他举起酒杯,「表哥这辈子没什么本事,就是知道一件事——欠了人家的债,要还。哪怕还不起,也要先还一部分,让人家知道我没有忘记。」
「表哥,」林栀说,「你在深圳那么多年,你觉得那座城市怎么样?」
周海洋想了想。
「它让我知道,」他说,「一个人,没有根,是不行的。」
「根?」
「对。根。」他说,「我在深圳打了七年工,住过八个城中村,换过五份工作。我认识的人,加起来有几百个,但真正能在半夜三点接我电话的,一个都没有。」
「但那棵树,」他说,「那棵在荒地上长出来的树——我去看过它。每次去看它,我都觉得心里踏实一点。我也不知道为什么。」
「它像是在告诉我什么,」他说,「告诉我,不是只有城市里那些有学历、有房子、有户口的人才有根。我们这些打工的,我们也有根。只是我们的根长在别的地方——长在土里,长在老家里,长在那些没有人看见的角落里。」
「只要根还在,」他说,「人就不会死。」
林栀没有说话。
她只是举起酒杯,跟他碰了一下。
那天晚上,她又去了那片荒地。
那棵树还在。树下的几十株小树苗也在。它们依然在发光,七十二下每分钟,像大地的心跳。
但最近,她发现了一件新的事情。
那些小树苗的旁边,开始长出了一种新的东西——不是树苗,是草。一种很矮的、贴着地面生长的草,叶片细细的,像一根根银色的针。
它们也发光。但它们发的光不是蓝色的,而是金色的——像日出的颜色,像那年在梧桐系统开盘时笼罩整座城市的那种颜色。
林栀蹲下来,轻轻触碰了一株银针草。
那一瞬间,她感觉到了什么。
不是一种情绪,而是很多种——很多很多种不同的人,很多很多种不同的生活,很多很多种不同的困境和希望。它们从那株银针草里流淌出来,像无数条细小的河流,汇入她的身体,汇入她的记忆。
她看到了马骑手在医院里躺着,右脚踝打着石膏,手机屏幕上是凤凰金融的还款提醒。他看到的数字是红色的,但他看到的窗外的阳光是金色的。
她看到了季南舒在深夜的办公室里,对着电脑屏幕一条一条地修改「梧桐条款」的措辞,茶杯里的水凉了又热、热了又凉。
她看到了方予淳坐在罗湖火车站的候车室里,手里捧着一本书,书名是《大地、深根与叶》。
她看到了周恒在成都的一个火锅店里,跟几个年轻的程序员吹牛,吹的还是梧桐系统——但这一次,他吹的不是它的速度和规模,而是它犯过的那些错误,那些代价,那些血的教训。
她看到了周海洋站在县城的超市门口,招牌上写着「海洋超市」四个字,里面灯火通明,一个中年女人——他老婆——正在柜台后面算账。他们的儿子坐在角落里做作业,偶尔抬头看一眼动画片。
她看到了那个苗族男孩程序员,在深夜的办公室里调试「梧桐树」的新模型,屏幕上跳动的不是数字,而是一个一个的人名——那些真实存在的、可以被呼叫做「用户甲」「用户乙」「用户丙」之前,他们的本名。
她笑了。
然后她站起身来,看着那棵树。
「谢谢你,」她说,「谢谢你还在。」
风从远处吹来,吹动了那棵树的枝叶。树叶在风中发出沙沙的声响,像很多人在低声说话。但这一次,她听懂了一些——不是所有的,但比之前多了一些。
它们在说:根在哪里,梦就在哪里。
二〇三〇年三月的一个下午,林栀离开了深圳。
她没有告诉任何人她要去哪里。她只是收拾了一个小箱子,带上了那株银针草的种子——是那棵树的植物学博士朋友帮她采集的,说让她找个合适的地方种种看。
她坐上了开往北方的火车。
火车经过江西的时候,她看到窗外是一片连绵的丘陵,丘陵上长满了树。有一瞬间,她觉得那些树都在发光——不是真的发光,而是一种错觉,一种因为阳光太强烈而产生的视觉残留。
但也许不是错觉。
也许那棵树——那棵在大地上生了根的、用七十二下每分钟的心跳跟人类共振的树——不只生长在深圳的那片荒地上。它生长在每一块有人愿意低头去看一看的土地上。它生长在每一个算法触及不到的地方。
它生长在根里。
她把手贴在车窗上,感觉到了玻璃外面吹进来的风。那风带着泥土的气息,带着春天的味道,带着一种说不清楚的希望。
她闭上眼睛,睡着了。
她梦见了一片很大的森林。那片森林无边无际,每一棵树都有根,每一根根都连着大地。她走在森林里,走了很久,越走越深。脚下的泥土越来越松软、越来越温暖。
她走得累了,就坐在一棵树下。那棵树的叶子在风中沙沙作响,像很多人在说:休息一会儿吧,你走了很久了。
她没有问这是哪里。
她知道答案。
这是根。
(全文完)