接下来的一个星期,办公室的灯几乎没有关过。
陈默白天在穹顶外包公司上班,晚上来五道口。他修 tokenizer,重写数据管道,把训练脚本里那些从教程抄来的“祖传代码”一行行删掉。
梁文谷负责买咖啡、订外卖、拖地,以及在被报错折磨得想跳楼的时候,负责说“再试一次”。
第五天,模型第一次正确回答了问题。
梁文谷输入:“你是谁?”
模型输出:“我是一个正在学习中的语言模型。”
梁文谷盯着屏幕,半天没说话。
陈默靠在椅子上,眼睛下面两团黑。
“别高兴太早。”他说,“它只是学会了自我介绍。”
“这也算进步。”
“算。”陈默说,“但离一百个基础问题还差九十九个。”
老周来看了一次。
他站在门口,看着屋里三个人,两台服务器,一地的外卖盒,还有墙上那条“冲刺一百天”的横幅。
“你们这不像科技公司。”他说。
“像什么?”梁文谷问。
“像考研自习室。”
“差不多。”陈默说,“都是往死里学。”
老周笑了一下,从包里掏出三罐红牛,放在桌上。
“喝完继续。”他说,“还有八十三天。”
---
第八十三天的晚上,办公室的灯又亮着。
梁文谷在整理测试集,陈默在调最后一个参数,老周在阳台上接电话。
电话打了很久。
老周回来的时候,脸色不太好。
“怎么了?”梁文谷问。
“没事。”老周说,“一个老朋友,问我最近在投什么。”
“你怎么说?”
“我说在投煎饼摊。”
梁文谷笑了。
老周没有笑。
他走到窗边,往下看了一眼。
楼下的麻辣烫摊已经收了,路灯照着空荡荡的街。街对面停着一辆黑色越野车,车窗贴了膜,看不清里面有没有人。
“梁文谷。”老周说。
“嗯?”
“你那三条建议里,有没有一条是教你怎么对付银行的?”
“没有。”
“那完了。”老周说,“我可能得把另一套房子也押上了。”
梁文谷看着他。
“老周——”
“别煽情。”老周摆了摆手,“我还没死。先把模型跑完。”
他回到桌边,打开一罐红牛,喝了一口。
“对了,”他说,“刚才有个陌生号码给我打电话。”
“说什么?”
“说穹顶科技最近在搞一个‘开源安全审查’。”老周说,“让我们小心点。”
梁文谷的手停在键盘上。
“谁打的?”
“不知道。”老周说,“对方只说了这一句,就挂了。”
窗外,那辆黑色越野车的车灯亮了一下。
又灭了。
---
第九十天,测试。
梁文谷把一百个基础问题整理成表格,从“你是谁”到“北京有哪些区”,从“一加一等于几”到“解释一下什么是开源”。
陈默跑完测试,把结果拉出来。
七十三分。
老周看着屏幕,沉默了很久。
“不及格。”他说。
“但能跑了。”梁文谷说。
“七十三分,离一百还差二十七。”
“所以再给我们一点时间。”
老周看着他,又看了看陈默。
“陈默,”他问,“你觉得呢?”
陈默想了想。
“模型很笨。”他说,“但它开始像一个能教的东西了。”
“这算好消息还是坏消息?”
“看你怎么想。”陈默说,“如果你想要一个马上能赚钱的模型,这是坏消息。如果你想要一个能长大的东西,这是好消息。”
老周把眼镜摘下来,揉了揉鼻梁。
“行。”他说,“再给你们三十天。三十天后,八十分。做不到,我认赔,你们认命。”
梁文谷点头。
“还有,”老周说,“陈默,你什么时候正式入职?”
陈默看了梁文谷一眼。
“明天。”他说,“但我有一个条件。”
“什么条件?”
“别再用教程里的 tokenizer 了。”
老周笑了。
“这个条件,我批了。”
---
那天晚上,三个人在楼下吃麻辣烫。
老周破天荒开了一瓶啤酒,给每个人倒了一杯。
“敬煎饼摊。”他说。
“敬火种。”梁文谷说。
“敬别再出 bug。”陈默说。
三个人碰了一下杯。
梁文谷的手机响了。
他看了一眼来电显示,站起来,走到路边。
“喂。”
“梁文谷。”林岚的声音从电话那头传来,“你女儿明天家长会。”
梁文谷愣了一下。
他看了一眼手机上的日期,又看了一眼办公室的灯。
“我……”
“你不用解释。”林岚说,“我就问你,来不来。”
街对面,那辆黑色越野车还停在原地。
梁文谷握着手机,站在路灯下面,忽然觉得,做一个“拯救世界”的人,和做一个记得家长会的父亲,难度差不多。
“来。”他说。
“几点?”
“九点。”
“你最好别迟到。”
“不会。”
挂了电话,他在路边站了一会儿。
风从五道口的方向吹过来,带着麻辣烫和尾气的味道。
他回头看了一眼办公室的窗户。
灯还亮着。
陈默在调代码,老周在收桌子,屏幕上那个刚刚及格的模型,正安静地等着下一个问题。
梁文谷忽然觉得,也许这就是火种的样子。
不好看,不体面,七十三分。
但还亮着。