首页 排行 分类 完本 书单 专题 用户中心 原创专区
看书神 > 其他类型 > 宿山行 > 第598章 第 598 章

宿山行 第598章 第 598 章

作者:帝谛 分类:其他类型 更新时间:2024-06-22 01:30:19 来源:文学城

“外婆走的时候我在MIT。那天我在实验室调一个模型,怎么调都不收敛,我很生气,把手边的马克杯摔在地上。然后手机响了。是舅舅打来的,他说外婆走了,下午三点十七分。”她的声音很平,像是在陈述一段与自己无关的历史。“我挂了电话,把地上的碎片扫干净,继续调模型。那天晚上模型收敛了。我看著萤幕上的损失函数曲线,觉得很开心。然后我意识到,我开心是因为模型收敛了,不是因为其他事情。甚至不是因为外婆走了。”

她听见身后有细微的声响——他的椅子动了一下,但没有脚步声。他没有走过来。

“后来我回台湾参加葬礼。舅舅给了我一个随身碟,里面是外婆留下的录音,三段,总共四十七秒。最长的一段是十五秒,她说‘以宁,你瘦了。有没有好好吃饭?’”

她的手指按在窗台上,指尖压进油漆的细纹里。“我把那十五秒听了大概一千次。然后我开始写Echo。我想让AI学会外婆说话的方式,学会她关心人的节奏,学会她什么时候该说话、什么时候不该说话。我想让AI变成她。”

她转头看他。他坐在椅子上,笔记型电脑还放在膝盖上,萤幕的光照著他的脸。他没有看她,视线落在键盘上,表情隐没在阴影中。

“但AI不是她。”她说。“AI只是一个模型。它不知道饿是什么感觉,不知道想念是什么感觉,不知道一个人坐在实验室里听到外婆的声音时,胸口那种闷闷的痛是什么感觉。它只知道把声波转换成特征向量,再把特征向量转换成文字。它什么都不懂。”

她的声音在最后一个字上裂开了一个细小的缝。她闭上嘴,把那个缝合起来。

“你说的那些话。”她继续。“你的应用有八十七万用户。他们用你的AI说话,觉得被理解了。但那不是理解。那是模式匹配。你的AI没有理解任何一个人,它只是在几十亿个对话样本里找到了最像的那个回答。那不是情感,那是统计。”

她等著他反驳。等著他说“不,我的AI真的能理解”,等著他用技术细节证明他的应用不是统计学的产物。那是她熟悉的对话模式——和学术圈的同行辩论,和公司的产品经理争执,和任何一个相信AI能产生情感的人对抗。

但他没有说话。

他只是坐在那里,安静地听完她说的话,然后安静地继续沉默。沉默持续了很久,久到她以为他不会回答了。

“你说得对。”他说。

她愣了一下。

“我的AI不懂情感。”他的声音很低。“它只知道模式匹配、特征向量、损失函数。它不知道为什么一个用户在凌晨三点输入‘我想你’的时候,手指在萤幕上停留了四十七秒才按下发送。它只知道那三个字的语义向量和训练数据里的几万个样本相似。”

他抬起头看她。“但那些用户知道。他们知道自己在跟一个不懂情感的AI说话,但他们还是说了。因为有的时候,他们需要的不是一个真正懂的人,他们需要的只是一个能回应的地方。哪怕那个回应只是模式匹配的结果。”

她看著他。他的眼睛在萤幕光中显得很亮,但她不确定那是光的反射还是别的什么。

“你外婆的十五秒录音。”他说。“你听了一千次。你知道那是模式匹配,你知道那只是声波和特征向量。但你还是听了一千次。因为你需要听到那个声音,哪怕它只是一个录音。”

她的手从窗台上放下来。“你在说我的Echo没有意义。”

“我在说你的Echo有意义。但不是因为它真的能理解情感。是因为你试图用它来理解情感。这个试图的过程,比结果重要。”

她站在窗边,看著他。他坐在椅子上,看著她。窗外的路灯照进来,在他的左肩上切出一道橘黄色的光线。他的右半边脸在阴影中,但她看得见他的表情——平静、认真,没有一丝说服她的意图。他只是在说他相信的事情。

她走回自己的工作桌,坐下。萤幕上还是那三行程式码,还是那个空荡荡的工作目录。她的手指放在键盘上,这次没有移开。

“如果我提交程式码到你的项目。”她说。“我的名字会出现在哪里?”

“你想出现在哪里就在哪里。”

“每个文件的开头,我要加版权声明。”

“可以。”

“我要保留模型的解释权。如果有人误用,我有权要求下架。”

“开源协议没有这个条款。但我们可以另外签一份备忘录,不具有法律强制力,但可以作为道德约束。”

她转头看他。“你什么都考虑到了?”

“我考虑了七年。”他说这话的时候语气很平静,平静到不像是在说一个很长的时间。“从读你的论文那天开始,我就在想,如果有一天能跟你合作,我该怎么保护你的东西。”

她没有回应。她的手指在键盘上开始移动。第一行,import numpy as np。第二行,import torch。第三行,她删掉之前写的那段注释,重新输入:

Echo Memory - Core Emotion Model

Version 8.0

Author: Wen Yining (contributor to Echo·lite, an open-source project)

License: MIT

This model is based on the affective computing framework proposed in Wen (2017).

Memory is not storage. It is reconstruction.

她按下储存。档案总管里出现了第一个档案:emotion_model_v8_init.py。档案大小不到1KB,但她盯著那个档名看了很久。

“你决定了?”他问。

“决定了。”

“不后悔?”

“后悔了再说。”

她打开第二个档案,开始写模型的核心框架。手指在键盘上移动的速度比早上快了很多,像是停滞了很久的河流终于找到出口。每一行程式码都是她熟悉的——情感向量的定义、注意力机制的设计、情绪混合编码的逻辑——但她写得比任何时候都谨慎。因为这一次,这些程式码不属于公司的实验室,不属于任何商业产品。它们只属于她自己。

身后键盘声重新响起。两个人的节奏再次交错,但这次不一样。她的节奏比以前稳定,他的节奏比以前轻盈。像是两条平行的轨道,在经过漫长的各自延伸后,终于在同一个方向上并行。

窗外天色完全暗下来。她没有注意到时间的流逝,直到肚子发出饥饿的声音。她看了一眼萤幕右下角——晚上十一点十七分。她从吃完面到现在,已经过了将近十二小时。

“饿了?”他的声音从身后传来。

“嗯。”

“我叫外送。”

“不用。我自己去买。”

她站起来,发现自己的脖子僵硬得几乎转不动。她用手按住后颈,用力压了几下,听见骨头发出细碎的声响。她走向门口,经过他的工作桌时,瞥见他的萤幕。

他在写一个新的档案。档名是license_agreement.md。她看见里面有一段文字:

“Echo·lite的核心情感模型由温以宁贡献,基于其原创研究成果。任何使用该模型的作品,必须在显著位置标明原作者姓名,并附上本协议的连结。”

她停下脚步。

“你在写什么?”

“备忘录。”他没有抬头。“你说要保留解释权。我把你的要求写进项目文档里。”

她看著他继续打字。他的手指在键盘上移动,萤幕上的文字一行一行增加。她注意到他的注释区块里有一行她没看过的句子:

“这个项目的存在,是因为一个人在七年前写了一篇论文,让另一个人相信,技术可以承载情感。”

她的视线在那行字上停留了三秒,然后移开。

她走出门,下楼,推开公寓大门。夜晚的空气比白天凉,她穿著早上那件薄针织衫,风从领口灌进来,她打了个寒颤。便利商店在街角,蓝白色的灯光照亮人行道。她走进去,拿了两个饭团和两瓶水,结帐,走出商店。

回到工作室时,门还是没锁。她推开门,把一个饭团和一瓶水放在他的桌上。

“谢谢。”他说。他没有抬头,但她看见他的手指停了一下。

她坐回自己的位置,打开饭团,咬了一口。这次是鲔鱼口味,没有她不喜欢的料。她不知道他是怎么知道她不吃肉松的,也许只是巧合。

吃完饭团,她继续写程式码。emotion_model_v8_core.py,她写到第十七个函数时,需要参考他echo_lite的原始码。她打开他的项目目录,找到attention_layer.py,准备复制一段权重初始化的程式码。

她按下复制快捷键时,视线无意间落在程式码的最上方。那里有一行注释,她用余光扫过,然后停下来。

“To WYN: this is where it all began.”

她的手指停在触控板上。WYN。那是她的缩写。

她没有立刻问。她关掉那个档案,继续写自己的程式码。但她的手指移动速度变慢了,大脑在处理程式码逻辑的同时,一直在重复那行注释。this is where it all began。这是一切开始的地方。什么开始?他的开源项目?他对她理论的兴趣?还是别的什么?

她写完第十八个函数,按下储存。然后她转头看他。

他正专心写备忘录,没有注意到她的视线。工作室的灯光在他脸上投下柔和的阴影,他看起来比实际年龄年轻,像是一个还在读研究所的学生。但他的手指——稳定、精确、每个按键都压到底——泄露了他多年的经验。

她没有打断他。她转回自己的萤幕,打开那个档案,又看了一次那行注释。然后她关掉,继续写第十九个函数。

窗外的路灯在某一刻熄灭了,天快亮了。她的萤幕上已经有七个档案,总共三千多行程式码。这是一天的成果。七年的心血,压缩成三千行。

她靠在椅背上,闭上眼睛。黑暗中,那行注释再次浮现——“To WYN: this is where it all began.”

明天她要问他这句话的意思。但不是现在。现在她太累了,累到无法思考程式码以外的任何东西。她闭著眼睛,听见他的键盘声还在继续,稳定、均匀,像是某种不会停止的心跳。

她让那个声音带著她,慢慢沉入睡眠。

温以宁醒来时,萤幕上显示早上七点十二分。她的头枕在左手臂上,右手还放在键盘上,食指压著字母J,萤幕上因此多了一整排的jjjjjjj。她删掉那些多余的字元,坐直身体,颈椎发出连续三声细响。

工作室里的光线是清晨特有的冷白色,从窗户斜射进来,在地上切出整齐的矩形。程司晏不在他的位置上,但他的笔记型电脑开著,萤幕保护程式是深蓝色的几何图案,缓慢旋转。桌上多了一个马克杯,里面有半杯已经凉透的咖啡,杯壁上有一圈浅褐色的痕迹。

她转向自己的萤幕,打开昨天最后编辑的档案。emotion_model_v8_core.py,第十九个函数只写了一半,中断在一行return陈述句前。她的记忆在几秒内恢复——昨天写到这里时眼睛已经睁不开,她本想写完这个函数再休息,但身体先做出了决定。

她打开浏览器,进入echo_lite的程式码仓库。首页显示最后一次提交是凌晨四点二十二分,提交者是Cheng Siyan,提交讯息只有四个字:备忘录更新。

她点开那个档案。license_agreement.md已经完成了,总共四十七行,涵盖了作者署名、使用限制、解释权归属、争议处理等所有她昨天提出的要求。最后一行写著:“本备忘录不具法律强制力,但签署者将被视为认同其精神。技术的意义不在于它能做什么,而在于人们用它做什么。”

她关掉浏览器,打开attention_layer.py。那行注释还在——“To WYN: this is where it all began.”——在萤幕左侧第四行,灰色字体,不仔细看很容易忽略。

身后传来脚步声。她没有转头,手指在触控板上停在那一行。

“早安。”程司晏的声音从门口传来,带著清晨特有的低哑。他走进来,手里提著一个塑胶袋,脚步声比昨天重一些,像是睡眠不足的人会有的步伐。

“早安。”她没有回头。“这行注释是什么意思?”

她的手指点在萤幕上,指尖下方正是那行灰色字体。她听见他停下脚步,塑胶袋发出细微的沙沙声。

他走过来,站在她身后,距离大约一公尺。她没有转头,但她感觉得到他的视线落在萤幕上,落在那行注释上。

“没什么。”他说。“就是纪录。”

他的语气很平静,平静到像是经过排练。但她听出来了——那种平静是刻意维持的,就像一个人走在结冰的湖面上,每一步都小心翼翼,怕冰层裂开。

“纪录什么?”她问。

“纪录这个项目是从哪里开始的。”

她转头看他。他站在她身后,手里提著塑胶袋,表情没有变化。但她看见他的眼睛——当她说出“纪录什么”那三个字的时候,他的瞳孔有极短暂的收缩,不到零点五秒,随即恢复正常。

他在说谎。不是恶意的谎言,是那种被撞见秘密时的闪躲。她太熟悉这种闪躲了,因为她自己每天都在做同样的事——用平静的表情掩盖不想被看见的东西。

她没有追问。她关掉attention_layer.py,打开自己的emotion_model_v8_core.py。“早餐是什么?”

他把塑胶袋放在她桌上。“饭团和豆浆。这次没有肉松。”

她拿起饭团,咬了一口。是鲔鱼的,和昨天一样。她喝了一口豆浆,温的,甜度刚好。

接下来的三天,他们进入一种无声的节奏。每天早上她醒来时,他已经在工作室里,桌上放著两个人的早餐。她写情感模型的核心算法,他做工程优化和部署架构。两人之间的对话全是技术术语——损失函数、注意力权重、记忆体对齐、延迟优化。没有闲聊,没有寒暄,甚至没有眼神交会。但那种默契本身就是一种语言。

她发现他会在特定时间泡咖啡——上午十点和下午三点,每次两杯,黑咖啡,不加糖不加奶。他会把其中一杯放在她桌子的右上角,不会碰到她的键盘和笔记本。她从来没有说过谢谢,他也从来没有等她说。

她发现他写程式码时有一个习惯——遇到复杂的逻辑问题时,他会把眼镜摘下来,用拇指和食指按压鼻梁两侧,闭上眼睛大约十秒,然后重新戴上眼镜,继续写。那个动作每天会出现五到六次,通常在下午比较频繁。

她发现他的工作室里没有时钟。墙上没有挂钟,桌上没有闹钟,连电脑的选单列都被他设定成隐藏模式。时间在这里变成了一种只有通过光线变化和饥饿感才能感知的东西。

第三天下午,她完成了情感模型的核心框架。八个模组,四十七个函数,总共六千两百行程式码。她在终端里执行测试脚本,萤幕上跳出评估结果:情感辨识准确率98.7%,情感连贯性评分9.2/10,对话回应延迟0.3秒。

她靠在椅背上,看著那些数字。98.7%。这是她七年来最好的成绩。在公司实验室时,版本7.0的准确率是97.1%。她用更少的资源、更短的时间,做出了一个更好的模型。

她转头想告诉他这个结果,但他不在位置上。他的笔记型电脑开著,萤幕上是一个她没见过的介面——手机模拟器,左侧是程式码编辑器,右侧是一个对话框。

她站起来,走过去。萤幕上是一个正在运行的Echo·lite测试版本,但界面和她之前看到的不同。对话框更小,字体更紧凑,选单被简化成只有三个按钮。这是一个手机版界面。

她看见他在做什么了。他在把她的情感模型移植到手机端。她的模型需要至少8GB记忆体才能流畅运行,但手机的平均可用记忆体不到2GB。他正在做的是压缩——降低情感向量的维度,减少注意力层的数量,量化权重参数。

她坐回自己的位置,打开他昨天提交的程式码。她找到emotion_encoder_mobile.py,打开。

第一眼她就看见了。他把情感向量的维度从九维降到了五维。九维是她版本8.0的核心改进,是她花了三个月才找到的最优解。五维是他在七年前就能做到的版本。

她的手指在触控板上快速滑动,逐行检查。不只是向量维度,他还删除了情绪混合编码层,简化了注意力机制的计算图,甚至把浮点数精度从32位降到了16位。

她在心里快速估算——这些改动总共会损失大约12%的准确率。98.7%会变成86.5%左右。86.5%是她在五年前就能达到的水准。

她的手指停在触控板上,指甲压进触控板的边缘。

她等他回来。大约二十分钟后,门开了。他走进来,手里拿著便利商店的袋子,看见她坐在他的位置前,表情没有任何变化。

“你改了向量维度。”她说。

“对。”他把袋子放在桌上。“手机记忆体不够,九维跑不动。”

“你删了情绪混合编码层。”

“那个层的计算量太大,手机CPU撑不住。”

“你把精度降到16位。”

“32位会让应用的安装包增加80MB,用户不会下载。”

她站起来,转头看他。他站在她面前,距离不到一公尺,表情平静。但她看得出来——他的下巴微微绷紧,那是他在准备接受某种冲击时的表情。

“你在阉割我的模型。”她的声音很低。

“我在让你的模型能被普通人使用。”

“86.5%的准确率。那是五年前的水准。”

“五年前的水准对大多数用户来说已经足够了。”

“对你来说足够了。”她走近一步。“但对我来说不够。98.7%和86.5%之间的差距,是情感理解的真实性和统计学的猜测之间的差距。86.5%的模型不知道一个人在哭的时候需要沉默,它只会从训练数据里找到最常见的回应方式——说一些安慰的话。但真正悲伤的人不需要安慰,他们需要有人安静地陪著。”

“你的98.7%的模型需要8GB记忆体才能跑。”他的声音也低下来。“8GB。一部手机的平均记忆体是2GB。你做的是一个只有超级计算机才能跑的东西,普通人怎么用?”

“那就不要给普通人用。这不是一个消费级产品。”

“那你做它做什么?”他的语气第一次出现了尖锐的边缘。“放在服务器上让学术圈的人写论文引用?还是放在硬碟里等你偶尔拿出来跑一次测试?”

她没有回答。她的手握成拳头,指甲压进掌心。

“你说你做Echo是为了你外婆。”他继续。“但你外婆不会用超级计算机。她只会用手机,会在睡前关机,会因为萤幕字太小叫你帮她调大。你的98.7%的模型对她来说没有意义,因为她永远用不到。”

“你不要拿我外婆来说事。”

“我没有拿你外婆说事。我在拿所有需要这个技术的人说事。”他的声音放缓了一些,但底下的坚硬没有减少。“八十七万用户在用Echo·lite。他们用2GB记忆体的手机,在捷运上、在深夜的房间里、在医院的候诊室,跟一个只有86.5%准确率的AI说话。86.5%对你来说不够,但对他们来说,是他们唯一能说话的地方。”

她看著他。他的眼睛里没有愤怒,没有辩解,只有一种沈淀下来的笃定。那种笃定让她想起实验室里的显微镜——无论你放多大的倍率,它的结构都不会松动。

“你从一开始就打算改我的模型。”她说。“你找我合作,不是为了让我的理论活下去。是为了让你的应用变得更强。”

他的下巴绷得更紧了。“两件事不冲突。”

“冲突。”她转身走回自己的工作桌,开始关闭萤幕上的档案。“我的模型不是你的功能的附属品。如果你只想从我这里拿东西去喂你的应用,那你找错人了。”

“温以宁——”

“备份我已经拿回来了。”她关掉最后一个档案,站起来。“合作结束。”

她走向门口。这次她的步伐比三天前快,快到她几乎在走路的声音里听不见自己的心跳。她的手碰到门把时,身后没有声音。没有键盘声,没有椅子移动的声音,甚至没有呼吸声。

她打开门,走廊的声控灯亮起来,昏黄的光线照在磨石子地上。

“如果我找到方法保留98.7%呢?”

她的手停在门把上。

“如果我能让你的模型在2GB记忆体上跑出98.7%的准确率呢?”

她没有回头。“不可能。”

“知识蒸馏。”他的声音从身后传来。“用你的九维模型作为教师模型,训练一个五维的学生模型。学生模型保留教师模型的情感理解能力,但体积只有原来的十分之一。”

她的手指在门把上收紧。知识蒸馏。她知道这个技术——用大模型的输出作为训练目标,让小模型模仿大模型的行为,而不是直接学习原始数据。理论上可以保留大部分性能,但她从没在情感计算领域尝试过,因为情感特征比图像或语音更难蒸馏。

“你试过?”

“试过。在读你的论文时就想过,但一直没有机会实现。因为我没有你的原始模型。”他停了一下。“现在有了。”

她站在门口,没有动。走廊的声控灯因为长时间没有声音而熄灭,她重新陷入只有工作室灯光的半明半暗中。

“情感特征很难蒸馏。”她说。

“我知道。”

“注意力机制的分布资讯会丢失。”

“我想过。可以用多层蒸馏,逐层对齐注意力分布。”

“那需要大量计算。”

“我的服务器可以跑。”

她终于转头。他站在原地,没有靠近,也没有退后。他的手插在口袋里,肩膀微微前倾——那是一个等待的姿势,不是讨好,不是说服,只是等待。

“你要花多少时间?”

“两周。”

“如果失败了呢?”

“那就回到86.5%。但至少我们试过。”

她看著他。他看著她。工作室的萤幕光在他们之间划出一道界线,一边是她的领域,一边是他的。但此刻那条线看起来不再像是边界,更像是某种连接。

她走回自己的工作桌,坐下。重新打开萤幕,重新打开那些被她关掉的档案。

“两周。”她说。“如果失败了,你的86.5%方案我也不会接受。”

“那时候再说。”

“不是再说。是重新谈。”

“好。”

她打开emotion_model_v8_core.py,开始审视九维模型的架构。他在她旁边坐下,打开自己的笔记型电脑,开始写知识蒸馏的训练脚本。

接下来三天,他们进入了比之前更高强度的协作。她负责设计教师模型的输出介面,决定哪些中间层的资讯需要被蒸馏;他负责实现蒸馏的训练框架,确保学生模型能够有效学习教师模型的行为。两人的对话从技术术语升级为更精确的技术讨论——损失函数的加权比例、温度参数的调整策略、注意力分布的对齐方式。

第三天晚上,她发现他在训练脚本里加了一个她没想到的功能——动态温度调节,根据输入情感的复杂度自动调整蒸馏的软化程度。情感越复杂,温度越高,学生模型学到的细节越多。

“这个想法不错。”她说。

他没有回应。她转头看他,他正盯著萤幕,眉头微皱,嘴唇抿著。他的右手在键盘上,但没有敲击。

“怎么了?”

“训练数据。”他说。“我需要大量情感对话的数据来训练学生模型。你的原始数据有1.2PB,但那些数据的所有权在公司手上,我不能用。”

她沉默了几秒。“用开源数据集。”

“开源数据集的情感标注不够精细。你的模型需要微秒级的情绪变化数据,开源数据集只有粗略的标签——开心、悲伤、生气。不够。”

她想了想。“用Echo·lite的用户对话日志。”

他转头看她。“那些日志是匿名的,但用户没有授权用于训练。”

“那就申请授权。发一个通知给所有用户,说明我们要用对话数据训练新模型,用户可以选择退出。”

“这样会损失一部分数据。”

“总比没有好。”

他看著她,眼睛里有一种她没见过的表情。不是惊讶,不是赞赏,更像是某种确认——确认她和他站在同一条线上。

“好。”他打开浏览器,开始写用户通知。

当天深夜,她完成了教师模型的输出介面设计。她把档案储存,靠在椅背上,伸展僵硬的肩膀。工作室里很安静,他的键盘声已经停了十几分钟,但他还坐在位置上,萤幕亮著。

目录
设置
设置
阅读主题
字体风格
雅黑 宋体 楷书 卡通
字体风格
适中 偏大 超大
保存设置
恢复默认
手机
手机阅读
扫码获取链接,使用浏览器打开
书架同步,随时随地,手机阅读
收藏
换源
听书
听书
发声
男声 女生 逍遥 软萌
语速
适中 超快
音量
适中
开始播放
推荐
反馈
章节报错
当前章节
报错内容
提交
加入收藏 < 上一章 章节列表 下一章 > 错误举报