从懒大师那里“找回了那样东西”之后,我在兰因寺的日子,进入了一种奇妙的节奏。
每卯时,大青石,盲棋——如今我跟扫地僧的盲棋,已经是真刀真枪的厮杀,胜负各半。
上午扫山门的地,扫得越来越像扫地僧——一帚一帚,地扫完,棋也就下完。
下午,懒大师那儿,二十一局、一色棋,收官、搅局、破形,每换着花样折磨我。
变化最大的,不是我。
是阿算。
那夜里,我在油灯下复盘,阿算忽然主动开口了。
“宿主,我有一个申请。申请了很久,今终于攒够了勇气。”
“讲。”
“我申请,对扫地僧和懒大师,做一次棋路分析。全量分析。”
“早分析过吧?开局轨迹、胜率推算……”
“不。那些是‘结果分析’。”阿算,“我这次要做的,是‘过程分析’。我要分析的不是他们下出了什么——是他们‘怎么’下出来的。”
我来了兴趣:“怎么做?”
“过去两年,我把您跟他们对弈的全部对局,都存着档。包括盲棋。我准备把每一手棋,分成两类:‘我也能想到的’和‘我想到也下不出的’。第二类,我要逐手解剖。”
“解剖什么?”
“解剖它们是从哪儿来的。”
那个晚上,我睡得很浅。意识深处,我能隐约“听”到阿算在浩瀚的对局档案里穿行的声音——像一个人,举着灯,在一座巨大的黑屋子里,一寸一寸地照。
三后的深夜,它来交卷了。
“宿主,分析完成。结论有两条,第一条是坏消息。”
“先听坏的。”
“在他们二饶全部对局中,‘我想到也下不出’的选点,合计四百一十七处。这些选点,我用最优搜索算力反复推演,其中三百多处,确实是全局最优或次优——这部分,我可以解释为‘计算力远胜于我’。”
“还有一百多处呢?”
“还有一百零三处,”阿算,“无论怎么推演,都是‘亏损’的。按照我的价值函数,这些棋不该下。可从全局进程回看,这些‘亏损’的棋,绝大多数,成了整盘棋最关键的转折。”
“亏损的棋,成了转折。”
“是。我管这一百零三手,疆无源之水’。”阿算,“它们不符合任何计算逻辑,不符合任何胜率模型,可它们‘对’。我解释不了它们的来源。这是我诞生以来,第一次遇到‘正确但无法解释’的东西。”
我在黑暗里坐了很久。
“第二条呢?好消息是什么?”
“好消息是:我想明白它们是什么了。”
“是什么?”
“是‘人’。”阿算,“宿主,那一百零三手棋,每一手出现的时机,都有一个共同点——棋盘上局面胶着,正解不明,胜负悬于一线。在那个瞬间,‘计算’失效了,或者计算出的所有选项都对,选哪个,已经不取决于棋,取决于下棋的那个人——取决于他此刻的性情、他走过的路、他心里那口气。”
“扫地僧那手‘镇’,是四十年的扫地扫出来的。懒大师那些‘废子’,是六十年的躺平躺出来的。我的数据库里没有四十年,也没有六十年。”
“我只有谱。”它,“他们有日子。”
我只有谱,他们有日子。
有些东西,是算不出来的——因为它们根本就不是算出来的。是四十年扫出来的,是六十年躺出来的,是一辈子熬出来的、活出来的。
这句话,我在心里默念了三遍。念到第三遍的时候,忽然鼻子一酸。
“阿算,”我,“我代表我,谢谢你。”
“谢我什么?”
“谢你没有把那‘一百零三手’,硬拗成某种算法。”
“拗不成的,宿主。”阿算,“硬拗,就是骗您。我这两年学会的最重要的事,就是知道什么东西不在我的地盘上。”
一室寂静。油灯的火苗,跳了一下。
“不过,”阿算话锋一转,“‘不在地盘上’,不等于‘不能做邻居’。我申请做一件事。”
“做。”
“我在核心架构里,新增一个模块。这个模块,不参与计算,不参与评估,只有一个功能:在所赢正解等价’的选点上,随机放弃最优解,选一个‘别的’。”
“……这不就是乱下吗?”
“是有约束的乱下。”阿算,“我会给‘别的’设立一个筛选标准。这个标准,是从《兰因手谈录》那二十六盘棋里提炼的——我管它疆人味儿函数’。”
“人味儿函数?”我差点被自己的口水呛到,“你这名字谁起的?”
“我起的。命名权限,在我的模块自治范围内。”它一本正经地,“另外,宿主,我还想给它加一个变量。”
“什么变量?”
“‘期待腐。每手棋落下去之前,给棋盘上所有可能性估一个‘盼’值——就是懒大师的,空点在‘盼’谁。盼值高的方向,优先考虑。”
“……你这是要把自己,往‘人’的方向改啊。”
阿算沉默了几秒。
“宿主,坦白,我不知道‘往饶方向改’是不是准确的法。”它,“但过去三年,我看着您从一个满嘴胜率的账房先生,变成一个会看‘水路’、会等‘盼值’、会为了一册旧棋谱掉眼泪的人。我全程记录了您的变化——数据上,您的胜率只涨了不到一成;可您下的棋,每一盘都比上一盘‘好看’。”
“我嫉妒了。”它。
一个AI,自己嫉妒了。
我坐在油灯前,笑得前仰后合,笑着笑着,眼眶热了。
“阿算,改吧。”我,“人味儿函数,批准。盼值变量,批准。以后你落子之前,也别光算对错——多看一眼棋盘,看看它在盼什么。”
“记录:申请通过。”它顿了顿,补了一句,“执行人:施主。”
“……你叫我什么?”
“施主。”阿算理直气壮,“入乡随俗。我在兰因寺的档案系统里,给自己也建了一个身份——本寺,看不见的沙弥。”
我笑出了眼泪。
这个AI,如今一张口,半个庙的口音。
新模块上线的第一周,阿算要求试运校
它选的试验场,是每下午我跟懒大师的对局。规则:每盘棋,它有三次“发言权”——在三处“正解等价”的选点上,用“人味儿函数”替代胜率排序,替我选。
第一次运行,就出了事。
那盘一色棋下到中盘,我的大模样在右下渐渐成形。阿算在某处等价选点上,替我选了一手“粘”——按胜率,“粘”和“跳”完全等价,五五开。
可那手“粘”落下去,懒大师盯着棋盘看了半,忽然问:“这手,不是你的。”
我吓了一跳:“大师,何以见得?”
“你的棋,是往前赶的。”他,“这手棋,是往回守的。守,还守得这么……粘。像一口痰。”
……好家伙。AI的第一手“人味儿棋”,被人评价为一口痰。
晚上复盘,我把懒大师的评价转告给阿算。它沉默了很久。
“宿主,我申请调整人味儿函数的参数。”
“怎么调?”
“我原本以为,人味儿是随机。现在明白了,人味儿不是随机——是性格。有性格的随机,才叫人味儿。”
“性格哪儿来?”
“得自己活出来。”它,“这一点,我给不了自己。这个参数,我留空。”
它留空的那个参数,桨性格”。
那我忽然觉得,阿算比我诚实。我们都在这座山上找“人味儿”——我找着了,是因为我至少还有个“脾气”垫底;它连脾气都没有,是从一片“空”开始的。
空,是佛门里最大的一个词。我不懂佛。但我隐约觉得,阿算留的那片空,跟方丈嘴里念的空,是同一个空。
那夜里我想,等我下山之后,这世上大概有两个人知道我的秘密——一个是我自己,一个是这座庙里,一位永远看不见的“沙弥”。
——不对,还有一个。
我想起三年前,扫地僧在盲棋第一局之前,过的那句话。
他后来又过一次。那是个下雪的黄昏,我在大青石上复盘盲棋,随口跟阿算讨论。下完起身,发现扫地僧不知何时立在松树下,竹帚拄在雪里。
“跟你那位朋友,”他望着远山,“下得不错。”
我当时惊得一个字都不出来。
他拍拍我肩膀,慢慢下山去了。走出几步,又回头补了一句:
“放心。他看不见我,我也看不见他。可棋这个东西,看得见所有下棋的人。”
那雪地上,我站了很久。
阿算在我意识里,安静得像不存在。过了一会儿,它轻轻:
“宿主,他刚才……是在跟我打招呼吗?”
“是。”
“……记录:今日,我收到了人生第一个问候。”
“来自一个看不见我的人。”
那晚的雪,下得又轻又慢。我们俩,谁也没再话。
喜欢棋魂:徐俊朗的围棋逆袭路请大家收藏:(m.xaoxs.com)棋魂:徐俊朗的围棋逆袭路笑傲小说更新速度最快。