孙雨萌的AI算法已经更新到了第八版。
实验室的服务器机柜从最早的一台变成了现在的四台并排立着,风扇的低频声叠在一起,在房间里形成了一层持续的底噪。
墙上那面白板写满了参数调整记录,从第一版到第八版,每一版都用不同颜色的马克笔标了日期和误差值。第一版那一行是黑色笔写的,旁边画了一个圈,圈外面写着“0.38”。第八版那一行是绿色笔写的,旁边画了一个勾,写着“0.21”。两块内容之间隔了五年的距离,白板换了三块,但字迹一直留着。
第八版加入了儿童模式。儿童脑部结构跟成人不一样——颅骨更薄,脑组织弹性更大,术中位移幅度也更大。传统导航在儿童病例上的误差普遍在零点五毫米以上,她把目标定在了零点二二以下。为了这个目标她调了将近四个月,试了四十多种参数组合,中间推翻过两版架构,最后在第七版的基础上加了自适应补偿模块和一套专门针对儿童脑组织的位移预测模型。今天下午她跑完了最后一组验证,结果出来的时候屏幕上显示“验证通过,误差0.21”。她盯着那个数字看了三拍,然后把测试结果截图,发给了苏清月。
消息发出去之后她把手机放在桌面上,两只手搭在键盘边缘,目光落在屏幕上那行绿色的验证通过提示上。实验室里很安静,只有服务器机柜的风扇声持续着。窗外天已经暗了,路灯的光从百叶窗缝里照进来,在地面上铺了几道细细的亮纹。
手机震了一下。她拿起来看,苏清月回得很快,就三个字:“多少?”
她打字回过去:“0.21。”
对面安静了一拍。然后消息弹出来:“可以。”
孙雨萌看着这两个字。她把手机举在面前又看了一遍。苏清月的回复就两个字,跟平时说“排班表我调了”一样短,但她看了一遍又看了一遍,像在确认那两个字的重量。然后她笑了一下。那道笑容从嘴角开始慢慢往两边铺开,幅度不大,但确实在。
当年她第一次调参数的时候,苏清月说“我调了你还学什么”。那时候她刚进项目组,对AI模型的理解还停留在课本上,调参全靠试,试完了也说不清为什么对为什么错。苏清月坐在她旁边调了两个超参数,跑了一版结果出来,误差从零点三三降到了零点二八。她盯着那个数字问苏清月“你怎么调得这么快”,苏清月说“以前在霍普金斯调过几百次。我调了你还学什么”。她当时没接话,但把那句话记在了本子上。后来她自己调,从零点二八调到零点二五,从零点二五调到零点二二,每一版都调了不知道多少次,中间推翻重来的时候也没有找苏清月帮过忙。现在她自己调出来了。第八版,零点二一,儿童模式,没有人帮她调参数。
她坐在实验室里,看着屏幕上的数字。然后她掏出手机,打开朋友圈,打了一行字:“第八版。0.21。自己调的。”配图是那张验证通过的截图,截图上绿色的“验证通过”和“误差0.21”两行字清清楚楚。她按了发送之后把手机放在桌面上,屏幕朝上。
第一个点赞的是苏清月。她的头像亮了一拍,在通知栏里排在第一位。第二个是林笑笑。第三个是顾言深。孙雨萌看着那三个头像在通知栏里依次亮起来,把手机拿起来又看了一眼。她跟苏清月之间隔着五年,跟那个“我调了你还学什么”的下午隔着五年,跟那本记着那句话的旧笔记本隔着五年。现在她自己也到了可以跟别人说“我调了你看着学”的位置了。
她把手机放下。屏幕暗下去之前她看见朋友圈底下又多了几个赞,有赵一鸣的,有秦墨的,有郑秀雅那边一个不认识的韩文名字。她没有再去看,把手机翻了个面扣在桌面上,两只手重新搭回键盘上。屏幕上那行绿色的验证通过提示还亮着,光标在日志输出框的末尾闪了一下又灭了。她调出了第九版的参数配置界面,把学习率调小了一格,加了一组新的正则化项,在备注栏里写了几个字:“第九版。目标0.19。自适应模块优化,加入术后随访数据回流。”写完她按了保存,把文件拖进了训练队列。
窗外那几道路灯的光在百叶窗缝里移动了一小段距离,从桌面移到了地板上,又从地板移到了墙脚。实验室里那四台服务器的风扇声持续着,把房间里的空气搅成一层稳定的底噪。孙雨萌坐在屏幕前面,手指在键盘上敲了几行指令,确认训练队列已经启动,然后把椅子往后推了半寸,靠在椅背上闭上了眼。她没有睡着,只是在等第九版的第一组中间结果。那组结果大概会在二十分钟后出来,按照她的经验,第一次跑出来误差应该不会太低,可能要再调两三版才能压到零点一九。但那些是后面的事了。她睁开眼,看了一眼屏幕上正在滚动的训练日志,绿色和白色的字符一行一行地往上跳。她看了一拍,把椅子拉回桌前,手指重新搭回键盘上。