獨走世間繁華
707
2025-03-31
近日,一位神秘“人物”亮相華為昇騰CANN技術開放日現場,引得眾人簇擁,吸粉無數。從現場AI棋藝大戰的畫面中我們可以看到,一邊是眉頭緊鎖苦苦思考的玩家,一邊則是本場的主角----基于昇騰CANN開發的AI對弈機器人。
和一籌莫展的小棋友相比,我們的主角著實看起來起來輕松不少,不僅能在短短十幾秒內化解玩家攻勢,還能防不勝防精心布局,讓勝利的天平逐漸向自己傾斜。整整兩天,上百場對弈,竟然未嘗一敗,真是讓人拍案叫絕。
據了解,這款對弈機器人搭載Atlas 200 AI加速模塊,其內集成昇騰310 AI處理器,可實現圖像、視頻等多種數據分析與推理計算,廣泛用于智能監控、機器人、無人機、視頻服務器等場景。
更重要的是,研發人員借助華為昇騰AI異構計算架構CANN(Compute Architecture for Neural Networks)提供高效易用的AscendCL編程接口,可針對多樣化應用場景快速構建基于昇騰平臺的AI應用和業務,并通過軟硬件協同優化,大幅提升昇騰AI處理器的計算效率。
五大模塊功能解讀
機器人主要包含五個部分:中心控制、棋盤理解、對弈引擎、機械臂和UI界面。
? 中心控制,好比人大腦中負責邏輯的部分,它主要用來協調各個模塊的調用流程。
? 棋盤理解,好比人類的視覺系統,通過安裝在上方的攝像頭采集當前對局信息,通過圖像處理程序來理解“看到”的內容。
? 對弈引擎,好比人腦中負責思考的部分,用來思考下一步最好的走法是什么。
? 機械臂,就是機器人的手了,用來執行AI聰慧的走法,把棋盤上的棋子移動到正確的位置。
? UI界面,則是給用戶提供一個方便交互的界面,玩家方執紅,通過平板的UI交互界面,由代表紅方的機械臂將棋子移動到指定位置;AI方執黑,通過上方的攝像頭看到當前的棋局,并通過搭載的AlphaZero算法軟件計算出走法,由代表黑方的機械臂來執行。
當然你也可以拋棄UI和其中一個機械臂,親自上陣和機械臂面對面大戰三百回合,獲得沉浸式的體驗。此對弈機器人還提供了觀棋模式,切換此模式就會讓AI來執行計算,在當前的局面下為執棋方提供參考走法。
和機器人對弈是不是很酷?其實,基于異構計算架構CANN開發這款對弈機器人并不是很復雜,成功的關鍵就是控制好機器人的眼睛、大腦和手臂的功能。
火眼金睛精準識別棋子位置
機器人要想掌控全局,就要對整個棋盤的狀態有認知能力,棋盤理解模塊就是為此而存在的。位于上方的攝像頭就像是機器人的眼睛一樣,作為傳感器捕捉當前的棋盤信息,并且將圖像傳入后臺進行處理。
圖像處理程序主要包含畸變矯正等預處理手段,以及圓檢測算法用來獲得當前全部棋子的坐標位置。最后,根據棋子的位置裁剪出一小塊56x56的圖片按批次傳入分類模型進行推理,得到每一個位置上棋子的顏色和種類。
為實現這一過程,研發團隊借助異構計算架構CANN,能夠很容易將推理模型部署在Atlas 200上;同時在推理過程中,通過CANN內置的高性能算子自動加速計算,讓機器人能快速精準地識別棋子位置,為后續博弈計算打下堅實的基礎。
聰慧大腦快速進行博弈計算
如果說棋盤理解模塊是機器人的眼睛,那么核心的對弈引擎就是機器人的大腦了,研發團隊選擇基于強化學習的AlphaZero算法作為對弈引擎的基礎。AlphaZero算法是谷歌的DeepMind實驗室在2017年提出的,主要流程包含蒙特卡洛搜索樹(MCTS)以及神經網絡構成。
MCTS全稱 Monte Carlo Tree Search,是博弈決策規劃中非常實用的一種算法。它根據模擬的最終輸出結果,按照每一步節點構造搜索樹,從而將隨機性和完整性統一起來,為最優化決策提供幫助。
神經網絡則是用來擬合通過自對弈生成的數據,不斷迭代訓練來優化模型。網絡結構主要包含了兩個head,一個是policy head,用來預測下一步走某一著的概率;另一個是 value head,用來預測當前局面下的勝率。訓練流程就比較直接了,在得到了使用當前最優模型模擬自對弈的棋局記錄之后,用這些數據作為訓練樣本,把當前最優模型作為預訓練模型進行訓練。
如此復雜的過程依賴超高的計算算力,否則對弈機器人將會是一個讓你抓狂的遲鈍選手。而Atlas 200能提供最高22 TOPS的算力,也就是能達到每秒鐘22萬億次計算,這讓團隊成員欣喜若狂,這個算力足夠應付絕大多數玩家,同時也很好地解決了項目成本問題。
為了更為充分釋放硬件算力,研發團隊在軟件層面借助異構計算架構CANN,對神經網絡進行圖級和算子級的編譯優化和自動調優,讓對弈引擎實際性能大大超出預期。
然而,目前對弈引擎的參數設置都比較小,感興趣的讀者可以參考文末的開源代碼自行調整參數,讓機器人擁有更強大的棋力。另外,倘若搭載Atlas系列更強算力硬件,再讓異構計算架構CANN對對弈算法進行一輪深度優化和加速,下過世界冠軍也是指日可待了!
靈活手臂精準控制運動細節
除此之外,展示中小巧靈活的機械臂有沒有讓你眼前一亮的感覺?項目中采用的是開塔米羅研發的的桌面級六軸機械臂,主要面向的是K12教育,其有效范圍內精度可達0.2mm。結合廠商提供的API接口,研發團隊對控制流程精心設計并且進行了優化,控制氣泵開關來讓吸盤提子落子,結合棋盤理解模塊信息作為反饋,采用棋子的真實坐標,讓機械臂“睜著眼睛”操作棋子,進一步減小了定位誤差。
昇騰社區豐富資源助力高效開發
當然,整個開發過程也不是一氣呵成的,研發團隊也是遇到了不少困難。幸運的是,昇騰社區上有豐富的資源,讓整個開發過程一路披荊斬棘。
昇騰社區提供了包括計算機視覺(CV)、自然語言處理(NLP)等在內的400+模型,能夠全面覆蓋典型場景應用,并可直接部署在昇騰系列硬件且高效執行。還有豐富的AI應用案例,為開發者打開思緒,助力開發者快速構建AI應用和業務。
而社區論壇更是為開發者們提供了相互交流的平臺,并且響應迅速。遇到的bug、經驗、成果等等都可以在論壇上分享,如果遇到了困難,先看看是不是有前人也遇到過,沒準問題就解決了。
掃碼即刻登陸昇騰社區
對弈機器人帶來的啟示
該項目的對弈機器人代碼全部開源,感興趣的小伙伴單擊文末鏈接即可獲取,歡迎大家參與項目交流和改進。
可能有小伙伴會說,何必這么麻煩呢,直接和人對弈它不香么?
這款簡單的對弈機器人只是靈感的開始,實際上不光是下棋,通過AI加持的機器人可以協助人類完成更多領域的工作。如今,人工智能正在深刻改變我們的學習、工作和生活,并依然成為了數字經濟發展的核心動力,只要你們有一顆澎湃的心,想要參與到AI改變世界的隊伍中,借助昇騰AI軟硬件平臺,一定可以做出許許多多讓人眼前一亮的項目。
CANN作為昇騰AI基礎軟硬件平臺的核心,以極致性能、極簡開發、開放生態為目標,助力昇騰構筑業界最強AI算力平臺,同時也為每一個開發者點亮夢想,助力開發者在未來舞臺上大放異彩,踏浪前行!
參考鏈接:
1. 項目代碼:
https://gitee.com/ascend/samples/tree/master/python/level3_multi_model/Robot_Play_Chess
2. 昇騰社區:https://www.hiascend.com/
3. 昇騰論壇:https://bbs.huaweicloud.com/forum/forum-726-1.html
AI 昇騰 機器人
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。