写点什么

有道围棋 AI:智能匹配儿童棋力的良师益友

  • 2022 年 1 月 10 日
  • 本文字数:2812 字

    阅读完需:约 9 分钟

有道围棋 AI:智能匹配儿童棋力的良师益友

1 背景

有道纵横是网易有道旗下专为 4-8 岁孩子量身打造的在线少儿围棋产品,于 2019 年启动,自研了全国首部在线交互式围棋动漫课程,从孩子的理解力和喜好出发,采用直播互动的课程形式将围棋知识变得简单有趣、易懂好学,帮助孩子掌握围棋的各类规则和技巧。不仅如此,课后还设有 AI 对弈功能,能够智能识别孩子的段位水平匹配对局练习,从根源培养孩子的思维习惯。每局对弈结束后的智能分析,会从大局观、计算力、稳定性、战斗和棋型五方面进行全方位分析,帮助孩子在复盘中进步。

Google 旗下 Deepmind 提出的 AlphaGo、AlphaGo Zero、AlphaZero 系列算法展示了深度强化学习在棋类领域超凡的能力。2016 年 AlphaGo 横空出世击败欧洲围棋冠军樊麾二段,2017 年以 4:1 击败韩国围棋职业九段,14 个世界冠军得主李世石,2018 年无师自通的 AlphaGo Zero 以 3:0 击败最年轻的六冠王柯洁九段。至此以后再无人质疑 AI 在围棋领域的霸主地位,同时引发了职业棋手学习 AI 招法的热潮。在职业围棋赛场上,时常出现“狗招”,学习、研究 AI 招法的背后的逻辑,已是职业棋手的必修课。

2 现有 AI 技术存在的问题

Github 上已经有了 Leela Zero、KataGo 等基于 AlphaZero 系列算法的优秀围棋 AI 开源项目,它们的主要目标是提升 AI 的棋力,目前上述围棋 AI 的棋力已远超人类职业棋手。然而当强 AI 应用在少儿围棋教学时,出现了“水土不服”的现象,比如:

• AI 实在是太强了,人很难在与 AI 对弈的过程中体会到“旗鼓相当”的感觉,这极易引起用户的挫败感。

• 授人以鱼而未授人以渔,AI 只告诉人应该这么下,而不教会人为什么这么下。

• AI 的学习路径与人大相径庭,一些在人早期围棋学习阶段就可以掌握的知识(如征子),AI 在训练后期才掌握。

3 有道围棋 AI 团队的成果

有道围棋 AI 团队隶属于有道人工智能语音组,负责有道纵横产品与围棋 AI 相关的研发、落地工作,主要发力点在于 AI 的人机对弈和复盘。现有的工作成果引用一段 CEO 周枫的话:


有道纵横做到了什么?

总体上有道纵横是一个面向孩子的围棋启蒙课程,大班直播、名师教学,在边学边练过程中有丰富的互动,同时也具备 AI 对弈能力。与此同时,有道纵横将教、学、练、测、评五个环节做了非常好的整合,形成了这个产品的全貌。这里面有一个大家也会非常关心的问题,即 AI 老师到底有没有用?技术团队永远都说 AI 老师特别有用,可以解决个性化教学的问题,可以因材施教;老师背景的团队往往觉得 AI 老师就是洪水猛兽,既没有用而且骗了很多 VC 的钱。

AI 老师到底有没有用?

纵横项目当中做了比较多的 AI 老师的思考和实践。我们看法是,大众对于 AI 的认知,其实对于产品团队来说是个双刃剑,只有认识到双刃剑的作用才能做出正确的设计。什么是双刃剑?一方面 AI 是一个非常好的营销抓手;另外一方面,用户不懂做产品,团队必须去自己寻找真正的 AI 价值点。如果你听用户对哪个东西兴奋就做哪个,最后往往掉坑里了。在 AI 场景下,我们思考了非常久。首先想到 AlphaGo,不管多牛都下得过你,但这么和用户讲显然不可能,所以本身对弈的难度和棋力不是教学当中 AI 的指标,而是如何降低难度,怎么能够灵活的调整难度。

所以,第一,我们团队花了大量功夫做难度可控的、棋力可控的围棋 AI;第二,可控棋力的 AI 和复盘能力;第三,我们推的是学员和学员、学员和老师之间的对弈,强调人人对弈而不是人机对弈,人机对弈只是找不到人对弈时候的补充手段。通过这样的手段,我们实现了自主研发的围棋 AI,教学过程当中能够代替掉人的部分工作,提高了团队的生产效率。


4 解决方案及思路

4.1 人机对弈

一个理想的人机对弈教学系统具有如下特点:

• AI 的招法有逻辑性,用户很难感受到是 AI 在下棋。

• 合理控制 AI 的水平,避免一边倒的局面。

• AI 可以配合教学进度,帮助用户巩固教学内容(如定式)。


一些其他方案在实现人机对弈系统时,一般使用 AI 训练过程早期的模型,然后使用模型的 top-n 输出,随机抽样进行落子行为,避免 AI 落子过于单一。这种方案除了易于想到之外没有其他优点,由于早期模型训练量不大,采用 top-n 的采样方法会导致 AI 的招式没有条理,用户很容易诱导出这种落子逻辑的漏洞(如征子)。其次,在对弈过程中,AI 模型和落子策略是固定的,但我们在实践中发现,AI 对于围棋中的布局、中盘、收官等阶段的招法学习速度并不相同,AI 对布局的掌握速度远远超出中盘、收官,使用相同的模型和策略会导致 AI 在整盘棋的表现差异极大。再者,AI 的自对弈训练中,没有定式的概念(定式是围棋高手在某些局部的经验总结,用户学习定式走法可以快速提升棋力),低水平的 AI 很难在局部中下出最优解,而人可以通过学习高手的棋谱快速掌握局部最佳下法,即使人的水平并没有达到提出该定式的围棋高手水平。上述问题的根源在于 AI 与人的学习路径大相径庭,难以直接移植。


考虑到以上问题后,围棋 AI 团队做了以下工作:

• 弃用 top-n 随机抽样的落子策略,使用 AI 引擎的 policy 输出,按概率采样。保证了 AI 招法逻辑性、连贯性。

• 在不同手数阶段,结合胜率和目差信息,调用不用的 AI 模型。保证 AI 在不同阶段的水平表现相近。• 结合教学内容,实现 AI 模型和定式模板的混合输出。巩固用户学到的定式知识。



4.2 复盘

复盘指对局完毕后,复演该盘棋的记录,以检查对局中招法的优劣与得失关键。一般用以自学,或请高手给予指导分析。下围棋的高手都有复盘的习惯。复盘就是每次博弈结束以后,双方棋手把刚才的对局再重复一遍,这样可以有效地加深对这盘对弈的印象,也可以找出双方攻守的漏洞,是提高自己水平的好方法。在有道纵横产品中,AI 承担了复盘老师的角色。

一些其他方案中,AI 复盘主要是展示整局棋的胜率或目差曲线、AI 的推荐变化图、以及一些基础的统计数据,这些内容更适合专业的用户,专业用户的需求在于快速定位自己下的不好的棋,然后根据 AI 提供的变化图等推理 AI 的落子逻辑,此类用户仅根据围棋 AI 引擎的原始数据就可以完成自我学习。

但是当用户群体定位到少儿时,上述的解决方案效果就会大打折扣,少儿用户很难理解统计数据背后的意义,同时对 AI 提供的变化图的逻辑缺乏分析能力,甚至注意力很难集中在变化图上,仅关注整局棋的胜率、目差的变化。此外,其他方案采用的复盘使用的 GPU 资源消耗很大,有的用户甚至需要半天时间才能拿到对局的复盘结果。

考虑到以上问题后,围棋 AI 团队做了以下工作:

• 引入语音组的 TTS 技术,将复盘结果翻译成少儿用户易于接受的文案,提升用户的注意力。

• 性能优化,在少儿用户的使用场景中,用户并不需要高算力 AI 产生的复盘结果,我们指定了根据局面的复杂程度分配算力的方案。

• 结合用户以往的复盘记录,刻画用户的围棋水平,形成长期的学情报告。


5 总结与展望

目前围棋 AI 的技术主要集中于提升 AI 水平上,这固然为专业用户自我训练提供了极大的便利,但由于高水平 AI 背后的行棋逻辑较为高深,当围棋 AI 为少儿用户提供服务时,少儿用户很难直接从高水平 AI 获取知识。接下来我们希望可以在人机对弈场景中,为用户提供水平更合适、逻辑更连贯的 AI 陪练;在复盘场景中,为用户提供更清晰易懂的复盘报告。

用户头像

高效学习,从有道开始 2021.03.10 加入

分享有道人的技术思考与实践。

评论

发布
暂无评论
有道围棋 AI:智能匹配儿童棋力的良师益友