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陪練;在覆盤場景中,為使用者提供更清晰易懂的覆盤報告。