有道圍棋 AI:智能匹配兒童棋力的良師益友

語言: CN / TW / HK

摘要

本次以有道縱橫產品為範例,闡述了有道AI團隊在AI老師、人機對弈教學系統、覆盤等技術問題上的解決方案和解決思路,展現了有道圍棋AI團隊從用户角度出發,針對不同用户需求,竭力為用户打造最好的產品體驗。

youdao

1背景

ydtech

有道縱橫是網易有道旗下專為4-8歲孩子量身打造的在線少兒圍棋產品,於2019年啟動,自研了全國首部在線交互式圍棋動漫課程,從孩子的理解力和喜好出發,採用直播互動的課程形式將圍棋知識變得簡單有趣、易懂好學,幫助孩子掌握圍棋的各類規則和技巧。

不僅如此,課後還設有AI對弈功能,能夠智能識別孩子的段位水平匹配對局練習,從根源培養孩子的思維習慣。每局對弈結束後的智能分析,會從 大局觀、計算力、穩定性、戰鬥和棋型 五方面進行全方位分析,幫助孩子在覆盤中進步。有道圍棋AI團隊隸屬於有道人工智能語音組,負責有道縱橫產品與圍棋AI相關的研發、落地工作,主要發力點在於AI的人機對弈和覆盤。

Google 旗下 Deepmind 提出的 AlphaGo、AlphaGoZero、AlphaZero 系列算法展示了深度強化學習在棋類領域的超凡能力。2016年 AlphaGo 橫空出世擊敗歐洲圍棋冠軍樊麾二段,2017年 AlphaGo 以4:1擊敗韓國圍棋職業九段,14個世界冠軍得主李世石,2018年無師自通的 AlphaGo Zero 以3:0擊敗最年輕的六冠王柯潔九段。至此以後再無人質疑 AI 在圍棋領域的霸主地位,同時引發了職業棋手學習 AI 招法的熱潮。在職業圍棋賽場上,時常出現“狗招”,學習、研究 AI 招法的背後的邏輯,已是職業棋手的必修課。

圖一 有道縱橫產品圖(1)

youdao

2 現有AI技術存在的問題

ydtech

Github 上已經有了 Leela Zero、KataGo 等基於 AlphaZero 系列算法的優秀圍棋 AI 開源項目,它們的主要目標是提升 AI 的棋力,目前上述圍棋AI的棋力已遠超人類職業棋手。然而當強AI應用在少兒圍棋教學時,出現了 “水土不服” 的現象,比如:

AI 實在是太強了,人很難在與 AI 對弈的過程中體會到“旗鼓相當”的感覺,這極易引起用户的挫敗感。

授人以魚而未授人以漁,AI 只告訴人應該這麼下,而不教會人為什麼這麼下。

AI 的學習路徑與人大相徑庭,一些在人早期圍棋學習階段就可以掌握的知識(如徵子),AI 在訓練後期才掌握。

youdao

3 解決方案及思路

ydtech

人機對弈

一個 理想的人機對弈教學系統 具有如下特點:

·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模型和定式模板的混合輸出。鞏固用户學到的定式知識。

圖二 圍棋算法

覆盤

覆盤指對局完畢後,復演該盤棋的記錄,以檢查對局中招法的優劣與得失關鍵。一般用以自學,或請高手給予指導分析。下圍棋的高手都有覆盤的習慣。

覆盤就是每次博弈結束以後,雙方棋手把剛才的對局再重複一遍,這樣可以有效地加深對這盤對弈的印象,也可以找出雙方攻守的漏洞,是提高自己水平的好方法。

有道縱橫產品中,AI 承擔了覆盤老師的角色。

一些其他的方案中,AI覆盤主要是展示整局棋的勝率或目差曲線、AI的推薦變化圖、以及一些基礎的統計數據,這些內容更適合專業的用户,專業用户的需求在於快速定位自己下的不好的棋,然後根據AI提供的變化圖等推理AI的落子邏輯,此類用户僅根據圍棋AI引擎的原始數據就可以完成自我學習。但是當用户羣體定位到少兒時,上述的解決方案效果就會大打折扣,少兒用户很難理解統計數據背後的意義,同時對AI提供的變化圖的邏輯缺乏分析能力,甚至注意力很難集中在變化圖上,僅關注整局棋的勝率、目差的變化。此外,其他方案採用的覆盤使用的GPU資源消耗很大,有的用户甚至需要半天時間才能拿到對局的覆盤結果。

考慮到以上問題後, 圍棋AI團隊做了以下工作:

·引入語音組的 TTS 技術,將覆盤結果翻譯成少兒用户易於接受的文案,提升用户的注意力。

· 性能優化,在少兒用户的使用場景中,用户並不需要每一步棋都使用高算力AI產生的覆盤結果,我們制定了根據局面的複雜程度分配算力的方案。

·結合用户以往的覆盤記錄,刻畫用户的圍棋水平,形成長期的學情報告。

圖三 有道縱橫課程展示圖

youdao

4 有道圍棋AI團隊的成果

ydtech

有道圍棋AI團隊隸屬於有道人工智能語音組,負責有道縱橫產品與圍棋AI相關的研發、落地工作,主要發力點在於AI的人機對弈和覆盤。現有的工作成果引用一段CEO周楓的話:

有道縱橫 做到了 什麼?

總體上有道縱橫是一個面向孩子的圍棋啟蒙課程,大班直播、名師教學,在邊學邊練過程中有豐富的互動,同時也具備AI對弈能力。與此同時,有道縱橫將 教、學、練、測、評 五個環節做了非常好的整合,形成了這個產品的全貌。

這裏面有一個大家也會非常關心的問題:

AI 老師到底有沒有用?

技術團隊永遠都説AI老師特別有用,可以解決個性化教學的問題,可以因材施教;老師背景的團隊往往覺得AI老師就是洪水猛獸,既沒有用而且騙了很多VC的錢。縱橫項目當中做了比較多的AI老師的思考和實踐。我們看法是,大眾對於AI的認知,其實對於產品團隊來説是個雙刃劍,只有認識到雙刃劍的作用才能做出正確的設計。什麼是雙刃劍?一方面AI是一個非常好的營銷抓手;另外一方面,用户不懂做產品,團隊必須去自己尋找真正的AI價值點。如果你聽用户對哪個東西興奮就做哪個,最後往往掉坑裏了。

在AI場景下,我們思考了非常久。首先想到AlphaGo,不管多牛都下得過你,但這麼和用户講顯然不可能,所以本身對弈的難度和棋力不是教學當中AI的指標,而是如何降低難度,怎麼能夠靈活的調整難度。

所以,第一,我們團隊花了大量功夫做難度可控的、棋力可控的圍棋AI;

第二,可控棋力的AI和覆盤能力;

第三,我們推的是學員和學員、學員和老師之間的對弈,強調人人對弈而不是人機對弈,人機對弈只是找不到人對弈時候的補充手段。

通過這樣的手段,我們實現了 自主研發的圍棋AI,教學過程當中能夠代替掉人的部分工作,提高了團隊的生產效率。

圖四 有道縱橫產品圖(2)

youdao

5 總結與展望

ydtech

目前圍棋 AI 的技術主要集中於提升 AI 水平上,這固然為專業用户自我訓練提供了極大的便利,但由於高水平 AI 背後的行棋邏輯較為高深,當圍棋 AI 為少兒用户提供服務時,少兒用户很難直接從高水平 AI 獲取知識。

接下來我們希望可以在人機對弈場景中,為用户提供 水平更合適、邏輯更連貫 的 AI 陪練;在覆盤場景中,為用户提供更清晰易懂的覆盤報告。

— END —

往期推薦