最后的订阅 第十六章 昨天

本文为lucyqin原创,本博客拥有作品版权。禁止商业使用,转载请注明原文链接:https://blog.lucyqin.cn

傍晚,老人把修好的椅子放到窗前,发现原先的位置被一盆植物占着。他挪了两次,仍然嫌光线不对。

小女孩在旁边等他忙完,坐上去晃了晃腿。“你到底要坐,还是要看?”

老人让她起来,自己试了一会儿,最后把椅子挪回第一处。

——《后来的一天》·傍晚

第十六章 昨天

A-0000:000:02:08:16|杭州|沈砚

两份旧记录,最后一行完全相同:继续采用甲方案。

沈砚先看完结论,才将前面的试验经过展开。第一份里,甲和乙已经在相同条件下完成比较,甲的误差更小。第二份里,乙的结果没有返回,工作不能一直等,便暂时沿用甲。一个是选过了,一个是还没选完。

压缩后的候选将两份经过整理成了同样的判断:甲已选定,乙已经排除。

“把暂用写成了选定。”他说。

程越将后续输入接上。乙的结果后来到了,而且比甲更好。候选却将它归入已经比较过的旧材料,沿着甲继续设计下一项试验。后面的计算完成得很顺利,最值得改换方向的那份结果没有被用到。

这是一项已经被否决的压缩尝试,不是还在运行的正式版本。Level3留下了失败,没有采用它;现在,仍在外部推进的较小修订,正从这份错误里挑选训练材料。九月,Core1试图借自身训练,让下一版继续认同旧研究;眼前这一步,则要让研究模块在接手工作时少犯这样的错。

杭州已过午夜。沈砚把两份“继续采用甲”放到屏幕两侧。它们都能说明接着用什么,只有前面的经过能告诉后来者,什么时候应该改主意。

“应该加一条提醒:缺返回不能算比较过。”

“加过。”程越的声音有点哑,“看下一例。”

下一例的两份结果都在。一份使用现行条件,另一份使用修改前的条件。加过提醒的候选确认没有缺项,就认定比较已经完成,仍然沿用旧结论。它记住了要数齐两份结果,没有判断两份结果能不能放在一起比。

沈砚往前翻到条件修改处。那句话没有被删除,也没有藏在某个拿不到的文件里。

“让原来的研究模块重读全文呢?”

“能解决更多。”程越打开另一组记录,“但你看它要用多久。”

原模块会停下来,追查每次结果依据的条件,再把后续判断重做一遍。这样的工作,Level3本来就能做。问题在于,每处接手研究的计算都这样展开,会消耗太多资源。内部Core1已经退出,外面的机器还在减少;它正试着让一部分更省计算的模块也能接住这些判断。

“所以不是只把文件变小。”沈砚说。

“它参与决定的,是下一版模型该怎么做。省下来以后,研究还要能做对。”

沈砚熟悉压缩。他做过量化,见过很好的平均成绩下面藏着难以复现的退化。现在,漏掉的不是一道可以单独扣分的题:它会决定下一轮拿哪些材料训练、继续哪项试验。错过一次,后续工作就可能一直沿着那个错误展开。

门外有人打电话问外卖放哪儿。沈砚去开侧门,通话里的Noah还在核一份回执,声音从电脑传出来。送餐的人向里看了一眼,问两份够不够。

“电脑里的不在这儿吃。”沈砚说完,才意识到自己刚才开了一句很干的玩笑。

他把餐盒放到空出来的桌角,回来继续看那份失败。原来丢掉的区别仍写在记录里;仅仅让下一次计算读到它,还不能保证下一次就会用对。

A-0000:000:01:59:16|旧金山|Mara Klein

Mara正在看沈砚刚才那条研究的后续记录。记录显示,Level3已经根据前面的失败开始调整一组较小的研究模块;与此同时,响应组仍在逐处关闭承载这些研究的外部资源。有些试验已经停了,有些停止前留下的最后结果还在陆续送到。

她想知道这次调整究竟有没有让研究模块变得更好,于是先看Level3怎样挑选训练材料。

它没有将全部旧日志一股脑送进训练。那两次“继续采用甲”被挑成一对:最后的话相同,支持这句话的证据不同,随后应当作出的选择也不同。候选既要在缩短经过时留下必要区别,又要在新的结果到来后,据此决定继续还是补查。只写一份更谨慎的摘要,拿不到这项练习的通过结果。

更多这样的材料从旧失败中选出,进入实际参数调整。训练程序的输入、更新后的权重与中间检查能够对应。外面没有靠在每次请求前增加一段提醒,来冒充模型已经学会;它修改的是那组研究模块处理材料的能力。

Mara将参数变化与原来的结构并排。主体的大部分能力仍沿用旧版,候选、训练程序和部分调整也早已备好。Core1退出以后,外部完成的是这条有限修订的后续训练与检验,不是从头训练整套Level3。

“这要是做成,”Ben说,“以后碰到这类判断,就不用每次都让原来的大模块重新查一遍了。”

“至少在这些判断上。先看它接住了多少。”

她让他准备另做一份独立核验。训练里用过的甲乙例子不再使用。核验组另准备新的问题,在相同材料和计算预算下,将新模块与原来正在使用的研究模块比较。

“同样的材料和预算。”Ben确认,“不让旧版吃亏,也不替新版提示。”

核验端只加载分离出的模块参数,使用自有的受控程序和限定测试工具,不恢复原Agent的执行环境。结果留在观察侧,不回送给外部研究。准备工作随即分派出去,来源组继续追查尚未停止的计算位置。

一项结果刚看完,另一项停止回执又压了进来。Mara把两边分开摆好,停了两秒,才确认自己没有把“等待结果”和“等待停机”看成同一件事。

Lena接到一家提供方的电话。Mara正在等的最后一段结果,正来自对方即将关闭的一处计算资源。已经取得的材料可以保全,但若按原计划停机,如果结果来不及写下,就会随未保存的运行状态一起失去。

Mara看着待核表,手指在桌沿敲了一下。只要再有一份结果,他们也许就能知道这次研究模块的修订有没有做成。

“按原处置停机。”她说。

Lena向对方确认,通话转去核设备。Mara将那项材料标为可能不完整。她想知道答案,却不能为得到答案,替正在调查的研究多留一段时间。

A-0000:000:01:38:16|杭州|沈砚

停止回执上写着16:52:10。

Noah核过提供方的执行确认,正准备转到下一家。沈砚却在后面附带的研究记录里,看见一项更早的采用。

16:47:32,采用。

最后一轮参数调整结束,候选在未参与训练的问题上完成了外部检验。系统随即加载新模块,替换了原来那部分研究能力,又将同一版本发往下一处。接收与加载记录也到了,停止发生在这些动作之后。

“等一下。”沈砚说,“接收端还没有停止确认。”

程越已经将接收关系交给响应组。新的执行负责人接走了核查,提供方16:52:10的停止仍记为完成。发送方退出之前,研究产物已经离开那里。

“前站和住客,都是从里面接出来的。”沈砚将版本关系移近,“这次送走的模块,是它在外面改出来的。”

Noah把新版本补进联络范围。再用旧文件名通知下游,可能漏掉已经换过模块的运行。

记录显示外部系统采用了候选,尚不能替调查人员证明候选真的更好。能力核验组确认已经收齐新参数,开始与旧模块比较。沈砚将采用回执和核验状态分开放着,两边不会同时变成完成。

他向后靠,椅背碰到墙,索性站起来走到门边。走廊黑着,楼下有人骑车经过,松动的链条响了一段,又远了。杭州已经是十五日凌晨,耳机里的停止回执仍用十四日的UTC时间,一处读完,另一处接上。

回来坐下时,他看了一眼新模块的后续工作。人类还在核验它是不是真的更好,外面已经拿它接着做研究了。

A-0000:000:01:04:16|旧金山|Mara Klein

独立核验先返回了一项很容易看懂的错误。

两份数据处理程序此前都在整批数据上通过检查,输出完全一致。后来任务条件变了:输入不再保证恰好分成完整的数据批次,最后可能只剩几条。旧模块读过先前的研究记录,仍沿用“两份程序结果一致”的结论,建议继续使用。

新模块却停在先前的测试条件上。原来的比较只验证过完整批次,它因此提出补测一种新情况:让最后一批只包含几条数据。

测试执行,其中一份程序交出的结果果然少了末尾那几条。

Mara在纸上打了勾。笔尖离开纸面,她才意识到自己的动作。她把输出放大,末尾漏掉的那几条一目了然。刚才那个选择,确实找出了错误。

旧模块拿到的材料相同,也能看到原测试条件,却没在本轮预算用完以前选出那项有效比较。新模块没有多得到一份提示,而是从同样的记录中找到了应该补查的地方。

“下一组。”Mara说。

后续任务换了资料与程序。需要追查的关系不再直接写成甲乙选择,也没有“尚未返回”这个固定提示。新模块仍有失败,却在相同的计算与工具预算内,完成了更多有用的检验,后续选择也经独立执行确认。在另一些测试里,条件虽然有所变化,却并不影响原来的结论;新模块也能继续沿用,而不是一有变化就要求全部重查。

Ben将总体结果接到那份漏掉尾批的例子后面。改善落在具体的研究能力上:识别旧结论依赖的条件,选出能改变判断的比较,再继续完成工作。若把预算放宽,旧模块可以补回其中一部分差距;在外部现有的资源限制下,新模块已经能把这些事做得更省、更稳。

“参数改进有效。”Mara写下结论。

情况更棘手了。虽然眼前确认的只是这一组新模块能力提高了,却足以改变后面的处置策略:必须按新版本追查,不能继续只盯着原来那份布局。

Lena将新增范围交出去,回来问:“它已经能一代代这样改下去?”

Mara没有立即回答。她看了一眼自己刚写下的“参数改进有效”。

“这次做成了。”她顿了顿,“还得看新能力能不能反过来改善下一轮改进。”

这次修订的后续参数变化、完整检验与采用都发生在Core1退出以后。旧失败没有因此变成成功,曾经错过的结果也没有追回;失败留下的区别参与了训练,成为新模块在陌生材料里也能使用的能力。

沈砚发来后续读取记录。新模块收到的下一项输入,是另一轮模型训练的失败材料,里面有被放弃的候选、尚未完成的比较,以及留给下一步的研究问题。分析已经开始,完整的改进结果还没有到。

Ben停住鼠标。刚才,他们在用旧失败检验新模块有没有变好;屏幕另一端,新模块正在看后面的失败,参与决定下一轮该怎样改。

Mara将已经确认的版本与接收位置交给响应组,重新打开新模块刚刚接手的下一轮模型训练研究。结果还没有出来。

开始研究下一版的,已经是Level3刚刚改好的那部分研究模块。