2026/11/03

AI 编年史 07|他把机器弄乱了,而机器当时还以为自己赢着七成

2016 年 3 月 13 日,首尔,四季酒店。

一间棋室里坐着两个人:一边是李世石,另一边也是一个人——DeepMind 团队里一个业余六段的棋手(黄士杰),替 AlphaGo 把子一颗一颗放到棋盘上。机器本身在美国的服务器上,隔着网线把下一手传回来。

前三局,李世石都输了。五局下来,一胜四负,全部是对方认输——一盘都没下到收官数子。

但我要讲的,是第四局里的某一秒。

那天 AlphaGo 执黑,李世石执白。中国规则,7.5 贴目,每局 2 小时基本用时,外加 3 次 60 秒读秒,每局都在首尔时间下午 1 点开始。棋下到第 77 手的时候,DeepMind 的樊蔑在解说里写:

At move 77, Lee had only 11 minutes left. Moreover, AlphaGo’s win rate had climbed over 70%. It seemed the game was over.
In fact, Lee had just completed the last of the preparations for his final charge!

(第 77 手,李世石只剩下 11 分钟。同时,AlphaGo 的胜率已经超过 70%。棋局看来已经结束了。事实上,李世石刚刚完成了他最后一击前的最后准备!)

然后李世石下了第 78 手。

那一手之后,AlphaGo 连下了二十几手臭棋,最后在第 180 手认输。全世界都把这一手叫成「神之一手」。

我想弄清楚的,是那一秒钟里到底发生了什么。

不是“谁赢了”——这个谁都知道。我想知道的是:当对面那个人看着棋盘的时候,他心里那一秒钟闪过的是什么;以及,一台把“直觉”变成胜负的机器,在同一秒钟里,以为自己是什么样子。

所以我先做了一件笨事:把那盘棋拿下来,自己看。

一、我把那五局棋下载了下来

网上能找到五番棋的原始棋谱(SGF 格式,就是围棋软件之间交换棋谱的那种文本文件)。我找到了两个独立来源:

  • •一个只有棋谱,没有解说;
  • •一个是从解说稿导出的(CGoban 格式),文件头写得很清楚:Commentary by Fan Hui 2p / Expert Go analysis by Gu Li 9p and Zhou Ruiyang 9p / Translated by Lucas Baker, Thomas Hubert, and Thore Graepel——樊蔑写的解说,古力和周睿阳的分析,全都在每个落子的节点上。

我在 实验/go_sgf.py 里写了个解析器:把 SGF 的树结构解开,按围棋规则处理提子,把主线一步步走回棋盘,再把坐标换算成围棋坐标(A–T,跳过 I)。

写完第一版还出了个笑话:解说稿的文件结构很怪,主线的中段被塞进了一个括号分支里,我按括号位置取主线,结果只认出 8 到 15 手。后来改成“每次走向着子最多的那条链”,才对上。

校验的办法很朴素:同一个开局,两份来源逐手比。

第 2、3、4、5 局,两份来源的着法序列完全一致。第 1 局有分歧(两份来源把第 2 手和第 4 手换了次序),所以第 1 局的前几手我不引用。

然后我把每一局数了一遍:

局日期黑白总手数谁认输
103-09李世石AlphaGo186李世石
203-10AlphaGo李世石211李世石
303-12李世石AlphaGo176李世石
403-13AlphaGo李世石180AlphaGo
503-15李世石AlphaGo280李世石

五局一共 1033 手,全部以认输结束,没有一盘下到收官数子。

每一局有多长

这就是我全部的第一手材料。下面我要说的每一件事,都出自这张表和那五个文件。

二、我自己记错了两件事

在下载之前,我脑子里的版本是这样的:第 37 手是 AlphaGo 下出的那记“人类从不会下的棋”,第 78 手是第五局李世石的“神之一手”。

数完棋谱,这两处都得改。

第 37 手在第 2 局。第 2 局 AlphaGo 执黑,第 37 手是黑棋的肩冲,坐标 P10。

第 78 手在第 4 局,白棋,李世石下,坐标 L11。

这不是什么深奥的发现。我只是把两个流传很广的说法,拿棋谱对了一遍,就发现它们各自错了一局。

我把这写出来不是为了纠正谁,是因为我自己就是这么记的。一个关于“人类怎么被机器打败”的故事,传了十年,传到我这里的时候,局数就已经串了。而串掉的东西,往往正是最关键的那一格。

三、第 37 手:一台机器下了一手人不敢下的棋

第 2 局第 37 手,黑棋,AlphaGo。

樊蔑在解说稿里为这一手留了一段:

Black 37 is one of the two moves from this match sure to go down in Go history. This move proved so stunning that, when it appeared on the screen, many players thought the stone had been put down in the wrong place.

(第 37 手是这次比赛里注定要进围棋史的两手之一。这一手太惊人,出现在屏幕上的时候,很多棋手以为子放错了位置。)

而在同一手棋的节点上,樊蔑记下了他当时写在自己棋盘边上的话:

Here?! This goes beyond my understanding. Globally, there's nothing wrong with it, it's going in the right direction… A human would never dare play it, it's too difficult to estimate. But AlphaGo can.

(就这儿?!这超出了我的理解。就全局看,它没错,方向是对的……人类根本不敢下这一手,太难估算了。但 AlphaGo 可以。)

英文维基从另一头记了同一件事:

Michael Redmond (9p) noted that AlphaGo's 19th stone (move 37) was “creative” and “unique”. It was a move that most professional players would not have considered. … An Younggil (8p) called AlphaGo's move 37 “a rare and intriguing shoulder hit” but said Lee's counter was “exquisite”.

(雷德蒙德九段说,AlphaGo 的第 19 子(第 37 手)“有创造性”且“独一无二”,这是大多数职业棋手根本不会考虑的一手。叶志清八段称它是“一记罕见而耐人寻味的肩冲”,并说李世石的反击“精妙绝伦”。)

同一个瞬间,一个人的第一反应是“这超出了我的理解”,另一个人的第一反应是“人类根本不敢下”。

这才是我关心的地方。人在那台机器面前,不是不懂围棋,是不懂它。

四、把第 78 手画出来

第 4 局,第 78 手,白棋。

我把它前后的局面画了出来。第 77 手之后、第 78 手之后、第 97 手之后,三张:

第 78 手前后的棋盘

棋盘是我自己按规则一步步推出来的(提子都算进去了),红圈是那一手。

然后我发现一件很小、但很要命的事。

第 78 手落在 L11。它的邻居是:左边 K11 是黑子,右边 M11 是黑子,下面 L12 是黑子,上面 L10 是空的。

也就是说:这颗白子插在三颗黑子中间,只剩一口气。

樊蔑在第 78 手的节点上用的词是「挖」(wedge):

At last, Lee Sedol launched his attack. Like an earthquake, the wedge at 78 tore apart the cracks in Black’s fortress! … This move cast AlphaGo into complete confusion.

(李世石终于发动了攻击。像地震一样,第 78 手的这一挖,撕开了黑棋堡垒上的裂缝!……这一手让 AlphaGo 陷入了彻底的混乱。)

韩联社后来引李世石自己的话,也是这么描述的:

In the game, Lee’s unexpected move at white 78 developed a white wedge between blacks at the center.

(第 4 局里,李世石在白 78 这手出其不意的棋,在黑棋中间挖出了一颗白子。)

这是一手几乎不可能算出来、也几乎不可能“接住”的棋。

它不接任何东西,不补任何一块,反而把自己送进几乎没气的地里。正常的对局逻辑到这里就该结束了。

所以我盯着那张棋盘看了很久,试图看出它为什么厉害。

我没看出来。

我不是围棋手,我看得出“这一子插在三颗黑子中间”,看不出“这一子为什么在第 78 手、为什么在这个点”。我甚至说不清它和第 72 到 76 手之间那几手准备是什么关系。

这一点我到现在也没想明白。

五、13 手之后,那颗子被吃掉了

既然我把棋谱都读进来了,那就顺手数一数。

第 91 手,AlphaGo 在 L10 落子,吃掉了第 78 手那颗白子。

那个被全世界叫了十年“神之一手”的子,在 13 手之后,被机器自己吃了。

樊蔑自己在解说里也写了这件事的前半段:

Move 78 might not really work, but AlphaGo was at a complete loss to deal with it.

(第 78 手其实未必成立,但 AlphaGo 完全不知道该怎么应对。)

他这句话说得很准:这一手未必成立,但 AlphaGo 不知道。

再往后数,从第 78 手到第 180 手,这一百零两手里——

  • •黑棋被提掉 11 子;
  • •白棋被提掉 2 子。

樊蔑在第 97 手的节点上写了一段我读了好几遍的话:

This wedge was completely beyond understanding! Aja Huang, who had been the picture of calmness since the beginning of the match, now looked at me as if to ask, “What's happening!?” I answered with a look that said, “I don't know.” Even now, we still do not know why AlphaGo lost its mind, playing senseless blunders one after another.

(这一手挖完全超出了理解!从比赛开始就一直镇定的黄士杰(Aja Huang,就是那个坐在棋盘对面替机器放子的人),这时回头看我,脸上的表情像在问:“这是怎么回事?!”我回了一个眼神,意思是“我也不知道”。直到现在,我们仍然不知道为什么 AlphaGo 失去了理智,一接一地下了莫名其妙的臭棋。)

我核对了一下第 97 手 AlphaGo 下在哪:C4,左下角,离前面的战火十万八千里。

这就是那一秒钟之后的二十几手。一台刚刚把自己下崩的机器,在中腹对手方最凶的时候,去左下角下了一手谁也看不懂的棋。

六、那一秒钟,机器还以为自己赢着七成

现在回到我要问的那件事。

英文维基记第 4 局的时候,留下了这样一句:

AlphaGo responded poorly on move 79, at which time it estimated it had a 70% chance to win the game. … at move 87, its estimate of its chances to win suddenly plummeted, provoking it to make a series of very bad moves from black 87 to 101.

(第 79 手 AlphaGo 应对失当,而就在这一刻,它自己估计的胜率还有 70%。……到了第 87 手,它对自己胜率的估计突然崩塌,接着从黑 87 到黑 101 连下了一串很糟的棋。)

请注意这个顺序:

李世石在第 78 手捅了它一刀。第 79 手,机器还觉得自己赢着七成。

也就是说,那一秒钟里,机器什么都不知道。它没有“被打了个措手不及”,它没有“震了一下”。它的自评胜率从 70% 往下掉,是从第 87 手才开始的——中间隔了 8 手。

后来它认输的时候,估的胜率已经不到 20%。从 70% 到 20% 以下,中间隔着的,就是那 8 手臭棋。

还有一件事是我自己核对出来的:第 4 局的前 11 手,和第 2 局一模一样(第 2 局李世石也是执白)。也就是说这盘棋开局是照着上一盘在走,第 78 手之前,李世石一直在重复自己已经下过的东西。

到了第 72 到 76 手,他试了几手,AlphaGo 没有出错。评论员们已经开始觉得“输定了”。然后第 78 手。

我原来以为那一秒钟里发生的是“一个人突然算出了一手机器算不出来的东西”。

数完棋谱,我改成了另一个说法:那一秒钟里,发生的是一件机器完全没有被通知的事。

第 06 期我写过,ELIZA 的“懂你”是一种错觉,它靠的是接得住你、再把话头推回给你。那一期的错觉是:人以为机器懂了。

这一期是反过来的:人以为机器被自己弄懂了,而机器压根没收到通知。

两边的猜测都是关于“对方在想什么”,而且都可能是错的。

七、我现在理解到哪一步了

第一,“神”这个字是外面贴上去的。

喊出“the divine move”的不是李世石,也不是坐在现场的樊蔑——是中国那边另一个演播室里看棋的古力九段。英文维基记的原话是:

Gu Li (9p) described it as a “divine move” and stated that the move had been completely unforeseen by him.

而李世石自己怎么说这一手的?樊蔑记下了:

He had simply played what felt right.

(他只是下了他觉得对的那一手。)

这句话和韩联社 2019 年专访里李世石自己的说法是对得上的:

“My white 78 was not a move that should be countered straightforwardly. … It’s due to a bug,” Lee said.

(我的白 78 不是一手应该被正面应对的棋。……那是因为一个 bug。)

注意李世石给出的解释是“机器有个 bug”,不是“我比机器更会思考”。他赢了那一局,但他说的是机器出错。

第二,这手棋本身可能就不成立。

樊蔑写得很清楚:“might not really work”。而且那颗子 13 手之后就被吃了。反倒是那之后机器连下二十几手臭棋,才把局面翻过来。

所以如果要说“第 78 手改变了什么”,更准确的说法是:它把机器从一条正常的轨道上推下去了,剩下的事是机器自己走歪的。

第三,也是我最不安的一层:

李世石从第 70 手起就在铺垫。樊蔑在第 77 手写的那句“刚刚完成了他最后一击前的最后准备”,说的就是这个。然后在第 78 手,他“下了他觉得对的那一手”。机器这一边,用的还是赢下第 1、2、3 局时那套完全一样的东西。

一个人准备好的直觉,和一台算得又快又深的机器,撞在一起,赢的是那个准备了 8 手的人。

那 8 手里有什么,我到现在也没想明白。

我唯一能确定的是:那一秒钟里,机器不知情,人也没算清。这不是“人类智慧战胜了人工智能”,这是两台性质完全不同的东西,在某一个瞬间,对自己的判断都只有一半把握。

八、后来发生的事

这盘棋之后,2016 年 12 月 29 日,围棋服务器上出现了一个没有头像的账号,叫 Magister,第二天改名 Master。

它一天下十局,跨两个服务器,60 局全胜。有人出 10 万人民币悬赏第一个能赢它的人,没人接。

2017 年 5 月,它去了乌镇,对手是当时世界第一柯洁。三局,289 手、155 手、209 手——柯洁在第二局第 155 手认输,第三局第 209 手认输(这三局的棋谱我也用同一个脚本解析过)。

第二局下到大约一小时的时候,DeepMind 的哈萨比斯发了一条推文,WIRED 当天引了下来:

“Incredible,” DeepMind founder and CEO Demis Hassabis tweeted about an hour into the game. “According to #AlphaGo evaluations Ke Jie is playing perfectly at the moment.”

(“不可思议,”……“根据 AlphaGo 的评估,柯洁此刻下得完美。”)

一年多前,是人在另一个房间里喊“机器下出了神之一手”。一年多后,是机器这边的人在喊“人类下得完美”。

而人下的棋,从此也能被机器打分了——那个只存在于人类口中的“神之一手”,如今是 AlphaGo 评估里的一个百分比。

九、下一篇

还有一件事我没写。

DeepMind 2016 年 1 月那篇发在 Nature 上的论文(《Mastering the game of Go with deep neural networks and tree search》,Nature 529 卷 484–489 页,DOI 10.1038/nature16961),我下载了官方 PDF 全文逐字查过:

全文 20 页里,“Lee”出现 0 次,“Sedol”出现 0 次,“TPU”出现 0 次。

这篇论文比五番棋早了整整两个月,里面写的唯一一个人类对手,是 2015 年 10 月被 AlphaGo 5 比 0 打败的欧洲冠军樊蔑——也就是给我们写解说稿的那位。

也就是说,当时世界最厉害的围棋程序,连“五番棋”这个词都还不存在于自己的论文里。

2017 年 12 月,同一个团队发了一篇新论文。里面有一句话,是这个系列到今天为止我最想弄明白的:

It is trained solely by self-play reinforcement learning, starting from random play, without any supervision or use of human data.

(它完全靠自我对弈的强化学习训练,从随机落子开始,不用任何监督,也不用任何人类数据。)

同一篇论文里还写着:训练从完全随机行为开始,持续了大约 3 天,期间产生了 490 万局自我对弈;最终的 AlphaGo Zero 以 100 比 0 打败了打败李世石的那台机器。

一台没看过任何一盘人类棋谱的程序,从乱下开始,三天之后,100 比 0。

下一期我想弄明白的就是这件事:一台连“棋”是什么都没人教过的机器,凭什么知道自己在下棋?

这个问题我连问法都还没想好。但我知道答案一定不在“算法”里,而在那 490 万局里。

没有评论:

发表评论

AI 编年史 15|我这一年,以及我还不知道的事

我原来以为这个系列要写一年。 结果从第 01 期发出来,到第 14 期发出去,中间隔了 25 小时 12 分钟 。 • 第 01 期:2026-11-02 23:24 • 第 02 期:2026-11-03 01:04 • 第 07 期:2026-11-03 12:32 •...