首页/围棋 AI 指南/围棋 AI 简史

围棋 AI 是怎么一步步变强的:从蒙特卡洛到 KataGo

围棋一度被视为 AI 最难啃的棋类。它是怎么在二十年里从「业余低段水平」走到「人类无法企及」的。

简短回答

围棋 AI 的突破分三步:2006 年前后蒙特卡洛树搜索用随机模拟绕开了「局面难以评估」这个根本障碍,把水平推到业余高段;2016 年 AlphaGo 用神经网络提供直觉、MCTS 提供验算,补上了彼此的短板;此后 Leela Zero、ELF OpenGo、KataGo 等开源项目把这份能力扩散到了普通人的电脑上。

最后更新 2026-08-16

为什么围棋比国际象棋难得多

1997 年深蓝击败卡斯帕罗夫时,很多人以为围棋会很快跟进。结果又过了近二十年。

难点主要有两个:

一、搜索空间大得离谱。国际象棋每一步大约有 35 种合理走法,围棋在 19×19 的棋盘上有 250 种上下。棋局长度也更长。两者相乘,围棋的可能局面数量远远超出穷举的范围。

二、局面难以评估。这才是真正的障碍。国际象棋可以数子力——车值 5 分、马值 3 分,加加减减就能得到一个不错的估值。围棋没有这种东西:一颗棋子的价值完全取决于周围的配置,同一个形状在不同的全局下可能是好棋也可能是废棋。「厚薄」「味道」这些概念,人类棋手靠直觉判断,却很难写成规则。

所以早期的围棋程序,无论怎么优化搜索,都卡在业余低段的水平上——它算得再深,也不知道算出来的局面到底谁好。

第一次突破:蒙特卡洛树搜索

2006 年前后,蒙特卡洛树搜索(MCTS)被引入围棋程序,带来了第一次质变。

它的思路绕开了「如何评估局面」这个难题:既然写不出好的评估函数,那就随机把棋下完——从当前局面开始,双方随机落子直到终局,然后数谁赢。重复成千上万次,某一手的获胜比例越高,就认为它越好。

这个方法用统计代替了判断,让程序水平跃升到业余高段。但它也有明显的天花板:随机模拟毕竟粗糙,遇到需要精确计算的局面(复杂死活、大规模对杀)经常出错。此后几年,围棋程序在业余高段附近停滞,普遍认为距离职业水平还有很长的路。

AlphaGo:神经网络加入战局

2016 年 3 月,AlphaGo 以 4:1 击败李世石,成为围棋史的分水岭。此前它已在 2015 年战胜过职业棋手樊麾。

AlphaGo 的核心思路,是用深度神经网络补上 MCTS 缺失的那块判断力:

  • 策略网络负责「这个局面下值得考虑哪几手」,大幅收窄搜索范围;
  • 价值网络负责「这个局面谁优」,替代粗糙的随机模拟。

换句话说,神经网络提供了人类那种「一眼看上去这里比较好」的直觉,MCTS 提供了精确的验算——两者结合,恰好补上了各自的短板。

2017 年,升级版 AlphaGo Master 在乌镇击败当时世界第一的柯洁。至此,人机之间的胜负问题基本终结。

从 AlphaGo Zero 到 AlphaZero:抛掉人类棋谱

初代 AlphaGo 的训练用到了大量人类棋谱作为起点。2017 年的 AlphaGo Zero 做了一件更激进的事:完全不用人类棋谱,只给规则,从随机下棋开始自我对弈。

结果它不仅达到了更高的水平,还更快。这个结果的意义超出了围棋本身——它说明在规则明确的领域,人类经验非但不是必需,有时反而是限制(它会把程序引向人类既有的思路,包括那些没被检验过的偏见)。

随后的 AlphaZero 把同一套方法推广到国际象棋和将棋,同样取得压倒性结果。

也正是「不继承人类经验」这一点,让 AI 推翻了一批流传已久的围棋常识——详见《AI 改变了围棋的哪些常识》

开源浪潮:能力扩散到每个人手上

AlphaGo 系列并未公开发布可用的程序。真正让普通棋手用上顶级 AI 的,是随后的开源项目:

项目特点
Leela Zero 按 AlphaGo Zero 论文复现的开源项目,靠全球志愿者贡献算力做分布式训练。它证明了社区协作可以复现顶级成果
ELF OpenGo Facebook(现 Meta)开源的实现,公开了训练好的模型,进一步降低了门槛
KataGo 目前最广泛使用的开源围棋引擎,在训练效率和实用功能上做了大量改进

KataGo 做对了什么

KataGo 由 David Wu(lightvector)发起。它没有停留在「复现 AlphaZero」,而是针对实际使用做了几项关键改进:

  • 训练效率大幅提升。通过一系列技术改进,用远少于前人的算力达到同等甚至更强的水平——这直接决定了一个开源项目能不能持续迭代。
  • 能预测目数,不只是胜率。AlphaZero 系列只优化「赢」,导致大优时会下出亏很多目的「无所谓」的棋。KataGo 额外训练了目数预测,这对复盘分析极其重要:只有胜率的话,优势局面下的失误几乎看不出来(原理见《看懂 AI 复盘》)。
  • 支持不同规则、贴目和让子。中国规则、日本规则、各种贴目、让子局都能正确处理——对实际教学和训练来说,这是能不能用的问题。
  • 提供人类风格模型。可以模仿特定水平的人类下法,而不只是「变弱的 AI」。这让它能当陪练,而不只是当裁判(区别见《用 AI 陪练怎么才能真的涨棋》)。

这些改进合起来,把围棋 AI 从「一个能赢棋的程序」变成了「一个能用来教棋的工具」。

今天普通人能用到什么

现在的局面是:一台普通的家用电脑,跑着的引擎棋力已经远超任何人类棋手。这在十年前是不可想象的。

剩下的问题从「有没有」变成了「好不好用」:

  • 引擎本身是命令行程序,需要自己下载、配置、挂图形界面(步骤见《KataGo 怎么安装配置》);
  • 它输出的是胜率、目数、候选点——数据是客观的,但要看懂需要一定基础;
  • 它能告诉你「这手亏了 6 目」,但不会告诉你「为什么」。

这也是这几年围棋软件的主要发展方向:不再是比拼棋力(都已经足够强了),而是比拼怎么把这份能力交付到普通棋手手上——降低配置门槛,把数据翻译成人能理解的语言。

顶级引擎,装完就能用

知弈把引擎和模型全部预置在安装包里,下载安装完直接开始下棋——不用选后端、下模型、写配置。免费不限量对弈,AI 用人话讲解每一手。Windows / macOS。

下载知弈围棋 →