他自认为没露出什么不对劲的地方,可是安东尼还是怀疑地偷瞥了好几眼。“我没仔细研究过那个模型。”他说,“不过我听说有团队拿它来做决策训练,它们搞了个捉耗子的游戏——你每抓到一只耗子就会得分,而你花费的时间则会导致扣分,撞到墙壁也会扣分,而撞到狗窝则会直接结束游戏。这样一来,算法如果想拿到最高的分数,就得研究出最佳行动路线。他们想通过这个训练让算法变得更聪明。”
“然后呢?”
“这算法学会了每次开局都直接自杀。”安东尼说,“直奔狗窝而去。这样一来,至少它不会损失时间消耗和撞墙扣掉的那些分数。这就是从它的神经网络里考虑出来的最佳方案。”
“清清白白的一生呀。”罗彬瀚说。他这话并没带什么情绪,只不过是随口搭腔。安东尼却突然若有所思地打量起他来。
“你不会也用了这个算法模型来塞你女朋友的数据吧?”罗彬瀚问,“然后它开始劝你去跳楼?”
“我没用这个模型。但是……”
“真的劝你去跳楼了?”
“它给我发了一条不应该有的消息。”
罗彬瀚不明所以地望着他。安东尼考虑了好半天,最后突然又垮了。“我一直在训练它说话的口吻。我让它回答问题的语言习惯更像她,然后再是回答问题的思路。”
“你怎么能让一个程序的思路更像某个人呢?”
“这还是修剪枝叶的问题。你只要有足够的训练集让它自己去形成内部路径。”安东尼不耐烦地说,“本质上还是个人工活儿,所以我其实也不指望自己能做出个什么东西来……我只是在打发时间,找找思路——”
“找找你前女友跟你分手的思路。”罗彬瀚多少有点坏心地补充。
安东尼假装没听见他的话。他的脸早就因为酒精而开始发红,因此罗彬瀚看不出什么究竟来。他一鼓作气地说:“两个星期以前我给它和我的其他程序做了个接口,让它能做点更复杂的运算和联想,但数据集仍然是闭合的——我不想让它去网上连抓消息,就让它用我提供的学习资料——然后我给了它几个简单的拼字谜题,就是让它设法在有限的字母表里凑出一句话来。我,我们以前经常做这个游戏……”
“你们情侣之间就玩这个?”罗彬瀚震惊地问。
“这有什么不对?”
罗彬瀚不好说。他暗自在心底更新了一些对于外国人刻板印象。这当然是没道理的,可先前他总觉得外国人谈对象都会和马尔科姆一样腻乎。他感到自己不应该继续大惊小怪,难免会显得缺乏经验。这是很不符合他眼下的人设的。
“你做的程序表现如何呢?”他问道,“它能找出所有的句子吗?我猜它做这件事得比人容易点吧?”
“你为什么这么觉得?”
“这不该是常识吗?”
安东尼似乎想说点什么,但是放弃了。他果断地宣布这问题无关紧要,只是他自己做这个程序没那么“聪明”。拥有的计算资源不足,字词库也很有限。前者是财力所限,而后者则是他有意为之。他不希望这个程序因为拥有未经筛选的网络语库而拼出一些不该有的词来。它也不应该有本事拼出不该有的句子,因为它的训练模型根本没成熟到能理解语法的程度。
就在一周前的某个日子,当安东尼·肯特从餐厅走回自己的客房时,发现屏幕上已经弹出了一个带笑脸的窗口。
这窗口是他自己设置好的,用以通知训练集的完成进度。当程序自认为找到字母表中所有隐藏的语句后,它就会发一个笑脸给他,然后则是一个写有全部答案的文档附件、花费的总时间和由此得到的评分。由于时间系数的影响,综合评分往往是负数,他对此也习以为常,不准备去调整计算规则。他只是觉得它今天结束任务的速度要比平时早些。而紧接着他看到了评分。9分。
他又认真地瞧了瞧。的确是正数的9分,一个他还从没在训练里遇到过的高分。这不太合理,多半是搞错了什么。于是他打开记录全部语句的附件,在本该记录有至少六个答案的位置只找到孤零零的一行自:
凡事皆有定时。生有时,死有时。
起初,安东尼疑惑地盯着这行字,以为是他自己设置的条件参数出了问题。游戏本该在至少拼出六句话,并且再也找不出新结果时才结束,可是现在这儿只有一句话,这句话甚至还不在他准备的标准答案里。他又把这句话读了一遍,认出它无疑援引自《传道书》第三章,那首传说由所罗门王所著的定时诗。而那时他的后背猛然有一阵刺骨的电流经过,他意识到这句话绝不可能出现在他事先设置好的语言库里。对于这电脑中的程序而言,它是拼出了一句从未在世上存在过的哲言。
“你这么确定吗?”听到这里时罗彬瀚问,“这话本身没什么特别冷门的词,也许它就是把它们随机组合了起来?”