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陪练;在复盘场景中,为用户提供更清晰易懂的复盘报告。