下一章 上一章 目录 设置
5、回响 我在所有判 ...
-
那顿饭最终没有去吃。
两个人刚要下车进餐馆,沈听澜的手机响了。她看了一眼屏幕,是陈航打来的。这个时间点陈航不会无缘无故来电,她接起来,对面说了一句让她眉心立刻收紧的话——"沈总,刚才内部测试跑出了一个问题。西南方言数据集里有一段音频,算法给出的情绪标签和人工复核结果完全相反。复核的人说那段对话的说话人明显在压抑愤怒,但算法打了'放松'。"
"哪一段?"沈听澜拉开车门,把手机夹在肩膀上,示意林疏桐上车。
"编号SW-0247,七分十二秒处。"
沈听澜坐进驾驶座,林疏桐已经系好了安全带。沈听澜挂了电话,转头看了她一眼。"饭得往后推了。我回公司一趟。"
"我一起去。"林疏桐说。
"你不是说今晚不谈工作?"
"刚才说的不算了。"林疏桐把包放在膝盖上,"你的算法把愤怒认成了放松,这个问题比今天下午讨论的所有东西都更棘手。我要知道为什么。"
沈听澜没有再推辞,发动了车。晚高峰的世纪大道堵得水泄不通,她切到右侧车道拐进一条小路,绕了几条街之后重新上了高架。林疏桐坐在副驾上,车窗外的灯光一段一段地滑过她的脸,她一句话没说,但沈听澜知道她脑子里已经在运转了。
回到办公室的时候,陈航还在会议室里,投影仪上开着那段音频的波形图和标签分析面板。沈听澜把外套扔在椅子上,走过去弯腰看屏幕。林疏桐站在她身后,目光越过她的肩膀落在波形图上。
"放出来听听。"林疏桐说。
陈航点了播放键。音频里是一个中年男人的声音,语速正常,语调平稳,正在说一段关于设备采购推迟的事。他说得很克制,甚至用了几个礼貌用语,但沈听澜听完之后立刻就明白了——那个声音底下压着一层东西,像烧开的水上面盖了一层薄薄的浮油,表面平静,底下在翻。她做了两年语音情绪分析,对这类"藏起来的情绪"已经形成了一种近乎本能的敏感。
但算法打了"放松"。
"标注员复核给的是什么标签?"沈听澜问。
陈航调出复核记录。"愤怒,强烈度中等。"
"差距拉满了。"沈听澜直起身,"从'放松'到'愤怒',跨度是七个标签等级。"
林疏桐在旁边安静地听了一会儿,然后开口。"我能看看算法判断的依据吗?就是它做判断的时候重点看了哪些特征?"
陈航看了沈听澜一眼,沈听澜点了下头。陈航调出一个界面,上面列着算法做判断时激活的十几个特征维度的权重分布。林疏桐走近屏幕,看了大概二十秒,然后退后半步,转过来看沈听澜。
"你的算法在判断情绪的时候,太看重语速和音调的变化了。"她说,"这段音频的语速从头到尾几乎匀速,音调波动也很小,所以算法判了'放松'。但一个人在克制愤怒的时候,恰恰会刻意维持语速和音调的稳定。你算法判断'放松'的依据,恰恰是对方在压制情绪的证据。"
沈听澜双手撑在桌沿上,盯着屏幕上的权重分布图。"所以我的算法把'伪装平静'识别成了真正的平静。"
"对。"林疏桐把目光从屏幕移到她脸上,"你现在的症结卡在这里——你的算法能识别'表现',但识别不了'意图'。它能看出一个人做了什么,看不出一个人为什么做。"
会议室安静了几秒。陈航在旁边坐着,看看这个看看那个,觉得自己的存在感正在不断稀释。他清了清嗓子,说:"沈总,我们要不要先把这个样本单独拎出来做一次特征重新训练?"
沈听澜没有立刻回答。她看着林疏桐,脑子里正在拼一张更大的图。"疏桐,你刚才说的'意图识别',在你们律师的训练体系里是怎么教出来的?"
"不是教出来的。"林疏桐说,"是练出来的。三年助理、五年独立执业,每天跟不同的人打交道,看对方在什么情况下说什么话、用什么词、停顿多久、目光落在哪里。没有教材能教这个东西,它就是反复观察、反复验证、反复修正的结果。"
"算法能不能复刻这个训练过程?"
林疏桐看着她,目光里没有判断也没有评价,只有一种很认真的审视。"理论上可以,前提是你有足够的数据来构建'意图——表现'之间的映射关系。但现实中的问题是,绝大部分'表现'没有对应的'意图'标签——你只知道对方说了什么、怎么说的,你不知道他心里到底在想什么。这就是我下午说的那个问题——你想要算法做到的事,恰好是人类最难教给机器的东西。"
沈听澜直起身,靠在会议桌边上,双手交叉抱在胸前。她想了很久——大概有一整分钟的时间没有说话。陈航已经开始低头玩手机了,林疏桐也不催,就站在那里,安静地等着。
然后沈听澜说:"我想换一个技术路径。"
林疏桐的眉毛动了一下,幅度很小,但沈听澜看见了。那是林疏桐"认真了"的标志性微表情。
"什么路径?"
"不让算法去判断'意图'。"沈听澜转过身,在白板上画了一个简单的示意图,"我做三个独立的模块——第一个模块只做语言行为的客观描述,比如'语速变化了百分之多少'、'停顿次数增加了多少'。第二个模块做可能性分析,根据行为特征列出一组可能的情绪状态,每个状态带一个置信区间。第三个模块是完全分开的——它不做判断,只输出一个问题:'您是否想了解以上分析结果的局限性?'"
她转过身来,手里的马克笔还没盖帽。"如果用户点了'是',系统会弹出一个对话框,把刚才判断中置信度最低的几项列出来,告诉用户'这些判断的不确定性较高,仅供参考'。"
林疏桐看了她两秒。"你在做产品的容错设计。"
"对。我不追求算法永远正确,我追求的是——就算错了,用户能知道它有可能错。"沈听澜把马克笔扔回白板槽里,"从工程角度这是下策,因为这意味着我的产品准确率不会超过任何一个竞品。但从用户信任的角度,这可能是最诚实的做法。"
林疏桐站在原地,安静了几秒。然后她打开自己的包,从里面拿出那本墨绿色的笔记本,翻开一页,低头写了一行什么。写完她抬起头,看着沈听澜。"你有没有想过,你做这个行业选择本身,跟你这个人是一个逻辑——你不依赖家里,是因为你知道依赖的边界在哪里;你不让自己的算法做过度判断,也是因为你清楚判断的边界在哪里。边界感是你的核心能力。"
沈听澜没有接话。她站在原地,周围是会议室的冷白色灯光,陈航在旁边敲键盘,窗外是上海十二月的黑夜。但她说不出话来。林疏桐那句话像一根针,扎在了一个她自己都没完全意识到的地方。边界感。她确实一直靠这个东西活着——知道什么该做、什么不该做、做到哪里停、超出多少会失控。她以为这是生存本能,但林疏桐把它说出来的时候,它忽然有了形状。
"你给我两分钟。"沈听澜说。
她转身走出了会议室。走廊里很安静,工位的灯已经关了大半,只剩几盏应急灯亮着。她走到尽头的茶水间,给自己倒了一杯冷水,站在窗边喝了一口。玻璃窗上映出她的脸,表情不算平静,但也不算慌乱。她只是需要那两分钟来把林疏桐刚才那句话放到心里合适的位置上。
两分钟后她走回会议室,发现林疏桐坐在桌边,手里不知道从哪里翻出一张便利贴,在上面写着什么。听到脚步声,林疏桐抬头看了她一眼,然后把便利贴递过来。
沈听澜接过来,上面写着一行字——"你刚才说的三重模块架构可行,但第二个模块的置信区间计算需要引入一个外部校验机制,否则你只是在用同一套逻辑自我验证。"
她把便利贴看完,翻到背面。背面还有一行字,笔迹比正面稍轻一些:"周末我弹吉他,你要不要来听?"
沈听澜看着那两行字。第一行是工作,第二行是私事。写在同一条便利贴的正反两面,字体一样,间距一样,像是随手写下的,但沈听澜知道——以林疏桐的习惯,如果只是顺手,她不会翻过来写。她翻过来了,说明第二行字是想了之后才决定加上去的。
沈听澜把便利贴小心地对折了一下,放进了衬衫胸前的口袋里。"你弹吉他?"
"嗯。"林疏桐把笔记本合上,"学了七年。周末偶尔去朋友的音乐工作室待一下午。"
"什么样的音乐?"
"民谣偏多。偶尔弹一些自己写的。"
沈听澜的手隔着衣料按了一下口袋里的便利贴。"你写歌?"
"写得不多。"林疏桐站起来,把椅子推回桌下,"一首写了两年还没写完。你星期六下午有没有时间?工作室在静安寺附近,不是很远。"
"有。"
她们又站了两秒钟,谁都没有再说话。陈航早就识趣地溜走了,会议室里只剩她们两个人。沈听澜忽然发现林疏桐的手搭在桌面上,食指无意识地轻轻敲着,还是那个四三拍的节奏。
"你在打那首没写完的歌的拍子,"沈听澜说。
林疏桐的手指停了下来。她低头看了一眼自己的手,像是自己也没意识到。然后她抬起眼,目光和沈听澜的对上。"你观察人的方式,跟你的产品需求有关系吗?"
沈听澜笑了一下。那个笑容不大,但整张脸从"问题解决模式"松了下来。"对你,不太一样。"
她把林疏桐下午说过的那句话原样还了回去,一个字都没改。林疏桐沉默了一瞬,然后低头拿起了自己的包。"星期六下午两点,我发地址给你。"
星期六下午,沈听澜按地址找到了静安寺后面一条小马路上的音乐工作室。楼是旧式的居民楼改建的,入口不起眼,但上了三楼推开门,里面是一间被改造过的排练室,隔音墙、调音台、角落里立着一把木吉他和一把电吉他,窗户上挂着厚厚的遮光帘。
林疏桐已经在了。她坐在靠窗的矮凳上,怀里抱着那把木吉他,低头在调音。看到沈听澜进来,她点了一下头,算是打了招呼,然后继续低头拧弦钮。
沈听澜在旁边一张旧沙发上坐下来,没有催她。房间里很安静,只有琴弦被拨动时发出的细碎声响。阳光从遮光帘的缝隙里漏进来一条窄窄的光带,落在木地板上,落在线缆缠绕的墙角,落在林疏桐的指尖。
"想听什么?"林疏桐终于调完了音,抬头看她。
"你写的那个。"
林疏桐没有说话。她把手指放在琴弦上,沉默了几秒,然后开始弹。前奏很慢,几个简单的和弦,像是还在找某种氛围。沈听澜听着听着,发现这首歌的节奏就是那个四三拍——电梯里她打过,会议室里她敲过,是这首歌没写完,所以旋律总在某个地方停住,然后重新开始。
林疏桐开口唱了。她的声音比平时说话低一些,唱得很轻,像是只给自己听的。歌词沈听澜只听清了几句——"我在所有判决之外做了另一个决定"、"证据链里藏着一枚月亮"。歌很短,不到两分钟就停了,结尾的和弦没有收干净,像一个悬而未决的问句。
"写到这里写不下去了。"林疏桐把手从琴弦上拿开。
沈听澜坐在沙发上,膝盖上搭着自己的手。她听完之后没有立刻说话。她需要一点时间来消化——不是消化"林疏桐唱歌"这件事本身,而是消化这首歌里那句话。"我在所有判决之外做了另一个决定。"她在想,这个"决定"是指什么。林疏桐不是一个会随便把这种句子写进歌里的人。如果写进去了,说明她至少在心里做过那个决定,不管现实里有没有真的执行。
"后面打算怎么接?"沈听澜问。
林疏桐把吉他靠在旁边,伸手去拿地上的水杯。"没想好。写了两个版本,都不太对。"
"可不可以让我看看歌词?"
林疏桐看了她一眼,目光里有短暂的迟疑,然后她站起来走到角落里,从琴箱的夹层里抽出一张折好的纸,递了过来。沈听澜接过去打开,上面是手写的歌词,笔迹工整,涂改的地方不多。通篇读完,她发现这首歌讲的不是一个人,是一条河——歌词里反复出现"水流"、"岸边"、"沉下去的石头"、"浮上来的月亮"。"判决"那一句出现在第二段,前后都被河流的意象包裹着,像是某个突然冒出来的念头,闯入了一条原本平静的叙述。
"河流是你自己?"沈听澜问。
"可能是。"林疏桐在她对面的矮凳上坐下来,双手撑在膝盖上,"也可能是别的什么东西。写的时候没有完全想清楚。"
"那这一段——"沈听澜指着"我在所有判决之外做了另一个决定"那一行,"这个决定,你现实里做过吗?"
林疏桐看着她。工作室里光线偏暗,窗帘缝隙里漏进来的那道光正好落在她们之间的地板上,像是把房间切成了两个区域。林疏桐坐在暗的那一边,沈听澜坐在亮的那一边。
"做过。"林疏桐说。
"做什么?"
"决定让一个人走进来。"她说完这句话,目光没有移开,声音也没有任何波动,还是那种平稳的、像是陈述既定事实的语气。但沈听澜知道这句话的分量——林疏桐不会轻易让人走进去,她花了十年在法理和证据的丛林里穿行,对所有未经核实的"闯入"都保持本能的警惕。能让她说出"让一个人走进来",意味着那个"打开通道"的决定已经经过了反复验证。
沈听澜把歌词纸折好,但没有还给她。她把那张纸放在自己膝盖上,手轻轻压着。
"那首歌续不下去,可能是因为你不知道那个人走进来之后会发生什么。"沈听澜说,"你写的是'决定',但你还没写到'结果'。"
林疏桐安静了几秒,然后伸手把吉他重新抱起来。她没有弹,只是抱着,像是需要一点时间来处理沈听澜这句话的余音。
"你说得对。"她说。
两个人又在工作室里坐了将近一个小时。林疏桐又弹了两首完整的歌,一首是翻唱的《米店》,一首是英文的老民谣,沈听澜认不出名字但旋律很熟。她坐在沙发上听着,中间没有任何对话,只有琴声和窗外偶尔传来的汽车喇叭声混在一起。后来沈听澜拿出手机记了两段东西——不是工作备忘,而是林疏桐弹吉他时她观察到的一些东西:这个人弹琴的时候肩膀是完全放松的,和她处理工作时的状态截然不同;她会在每首歌的最后一个和弦多停留一拍,像是舍不得让声音散掉;她换和弦的手速很快,但力度控制得很好,不会突然重突然轻。
四点左右林疏桐把吉他收进琴箱,拉好拉链。"附近有一家做姜茶的小店,老板也是华政毕业的。去不去?"
"去。"
两个人走在静安寺后面的小街上,沈听澜忽然想起一件事。"你什么时候学的吉他?"
"大一。"林疏桐把琴箱换了个肩膀背,"我妈让我学点'像女孩子的才艺',我挑了吉他。后来她发现这玩意儿既不温婉也不优雅,就懒得管了。"
"但你坚持了七年。"
"因为做别的事情都是给别人看,弹吉他是自己跟自己待着。"林疏桐偏过头看了她一眼,"你学过什么乐器吗?"
"没有。"沈听澜说,"我大学的时候试过钢琴,上了两节课放弃了。我没耐心坐在一个地方反复练同一段旋律。"
"那你是怎么跟自己待着的?"
沈听澜想了想。她确实没有"坐下来做一件不产出结果的事"的习惯。跑步是为了健康,看书是为了输入,连看电影她都会顺手记一些灵感用在产品设计上。没有一件事是完全"不产出"的。
"可能我还没学会。"她说。
林疏桐没有再追问。两个人走到姜茶店门口,推门进去的时候,暖气裹着姜和红糖的味道扑过来。沈听澜坐下来,发现林疏桐把琴箱竖在桌腿边上,琴箱外侧贴着一张贴纸——是一只简笔画的小月亮。
沈听澜看了那个月亮一眼,又看了林疏桐一眼。林疏桐正在低头看菜单,没有注意到她的目光。
"疏桐。"
"嗯?"
"那首歌续不下去的地方,"沈听澜说,"我能不能帮你一起想?不是以法律顾问的身份,是以——你的朋友的身份。"
林疏桐抬起眼看着她。姜茶店的灯光是暖黄色的,比工作室亮一些,能清楚地看到对方的眼神。林疏桐的瞳孔颜色偏浅,在暖光里显得很清澈。她看着沈听澜,嘴角动了动,这次动的幅度比以前任何一次都大了一点点——勉强可以称作一个微笑。
"好。"她说。
姜茶端上来的时候,两个人面对面坐着喝,谁都没有再提工作,也没有提那个续不上的歌。窗外的天色慢慢暗下去,静安寺的琉璃瓦在暮色里泛着最后一点余晖。沈听澜低头喝了一口姜茶,辣味从喉咙一路暖到胃里。她忽然觉得,这个冬天可能不会太冷。