圍棋已經沒意思,人工智能開始玩 Minecraft 了

由 AlphaGo 到可自我進化的機器人,比你預想的要快
編者按:文作者楊作興,比特大陸公司設計總監,對人工智能及神經元網絡芯片有很深的研究。感興趣的朋友可以于他在深圳灣的主頁交流。
上周日,李世石在三局落后的情況下,終于扳回來一局,為人類挽回了顏面。3月9日,我在深圳灣發文,預測在李世石首局失利的情況下,會連扳四局。
我當時的分析是,人比機器的適應能力更強,通過第一局,李世石應該可以很快找到 ALPHAGO 的漏洞,將比分扳回。不過我和李世石一樣低估了 ALPHAGO 的復雜性。李世石苦苦抗戰,終于在四局找到了ALPHAGO的漏洞。
我們應該感謝李世石代表人類,展示了人類的應變能力么?但我們沒有,一個深深的憂慮在人們心頭縈繞,機器人會徹底戰勝人類么?人類會被機器統治么?霍金的「人工智能將終結人類」這個預言,會變成現實么?什么時候?100年后么?倫敦帝國學院研究認知機器人技術的 Murray Shanahan 教授認為,10 到 20 年內人們還不可能造出與人類同能級別的人工智能。李開復在 3 月 8 日預測 ALPHAGO 會全部輸掉全部 5 場比賽,但在未來的1~2年機器圍棋智能會戰勝人類。
可現實的情況是,人工智能的發展超出了李開復最樂觀的估計。對于 Shanahan 教授關于跟人類同級別人工智能的預計,我個人覺得可能也會比他的估計來得更快一些,下面是我的分析。
去年10月的 ALPHAGO 是 1200 個 CPU 加 170 個 GPU,而這幾天跟李世石對弈的是 1920 個CPU 加 280 個 GPU。這是一個復雜的計算機系統,然而這僅僅是深度學習的執行計算機網絡,為這個網絡提供圍棋「直覺」的計算機訓練網絡,比這個規模至少要提高一個數量級,而這個訓練網絡是保持 ALPHAGO 持續進化的原動力。由這上萬個 CPU,上千個 GPU 組成的龐大的,需要一層大樓來裝的計算機網絡系統能終結人類?這好像有些可笑,可是當你看到下面這一張某人工智能芯片公司芯片的規劃表后,你可能會改變想法:

芯片的指標普通人不太理解,我們把目前性能最強的 NVIDIA GPU 卡上的芯片 GK210 的指標列出來比較一下:

這里邊第一個關鍵的指標是計算能力,這個 AI 公司 2017 的產品的計算能力是 GK210 的 2.5 倍。第二個指標是功耗, 功耗做到了 GK210 的 1/15,這個比較神奇。第三個指標是內部存儲容量的大小及帶寬。這個內部 MEMORY 相當于 CPU 上的 CACHE。深度神經元卷積網絡(CNN)的模型比較大,對于圍棋智能來說,通常能夠到幾百 MB 到 1GB 左右,這個模型在 CNN 網絡計算的時候,會被頻繁的讀出來,如果模型放在片外的 DDR 里邊,對 DDR 造成的帶寬壓力通常會到 TB/S 級別。
采用目前通常的 GPU 來計算 CNN 網絡,基本上都受到 DDR 帶寬的限制,也就是說,由于 GPU 的帶寬限制,GPU 號稱的 4TFLOPS,在計算圍棋 CNN 網絡的時候是達不到的,這種情況下 GPU 的計算能力是由帶寬決定的。例如,如果圍棋 CNN 網絡需要 1TB/S 的帶寬,但 GK210 只能提供 240GB/S 的帶寬,那 GK210 的計算能力就基本上是原來的 1/4,大概 1TFLOPS 左右。而這家 AI 公司的芯片其實是專門針對 CNN 加速的,他里邊放了 256MB 的內部存儲器,而且內部存儲器的帶寬是 3TB/S,因此對于圍棋 CNN 這樣的網絡,芯片宣稱的 10TFLOPS 是可能可以達到的。但這又意味做什么呢?
大家稍微耐心一點,在講重大意義之前,我們需要先看一下 ALPHAGO 的計算能力。這次跟李世石戰斗的 ALPHAGO 一共是 1920 個 CPU,280 個 GPU,它的計算能力有多大呢?我們假定這 1920 個 CPU 全是至強服務器 CPU,理論峰值計算能力為 48GFLOPS,那 CPU 部分總的計算能力是:1920*48 = 92TFLOPS。另外,假定都采用目前最強的 NVIDIA K80 GPU(里邊是兩個 GK210 芯片),那 GPU 部分的計算能力是:280*4*2 = 2240TFLOPS。總共的計算能力是:92+2240 = 2332TFLOPS。
這是理論上的最大峰值計算能力,我們需要考慮兩個情況,一個是 DDR 帶寬不夠,另一個是分布式計算的影響。關于 DDR 帶寬對峰值計算能力的影響,前面交代了一下,對于圍棋智能這樣的 CNN 網絡,我們可以按 4 倍的衰減來計算,那考慮 DDR 帶寬影響后,ALPHAGO 的計算能力是:2332/4 = 584TFLOPS。
分布式計算對計算能力的影響有多少呢?這里的瓶頸在于各個處理器之間交換數據的帶寬和任務之間相互的依賴程度,這么龐大的網絡,對性能的影響通常非常大。我們不清楚這兩千多個處理器的任務是如何拆分的,假設由于分布式計算對性能的損失是 4/5,那考慮分布式計算的影響,ALPHAGO 的計算能力是:584/5 = 117TFLOPS。假設是否對呢?多機版的 ALPHAGO 對單機版的勝率是 75%,從這個側面,感覺多機版好像也沒有比單機版強悍很多很多。
到這里,思路沒有跳躍的朋友,發現一個有趣的事情,好像 ALPHAGO 可以放在一張算力卡上:

這個板上有 54 顆芯片,那這張卡的算力(采用某 AI 公司 2017 年的芯片)是:54*10 = 540TFLOPS,也就是說這張卡里邊裝了5 條 ALPHAGO,它能同時對陣李世石,柯杰,俞斌,聶衛平還有李昌鎬!如果我們把這張卡放在機器人里邊,那這個機器人將變成世界上左腦最發達的人。
這或許已經很神奇了,不過還有更多。
目前的 ALPHAGO 是一個執行的 ALPHAGO,它的靈魂是通過訓練學習出來的,最厲害的是學習能力。學習是通過另外一個更龐大的計算機網絡進行的,可能涉及到幾千臺服務器。ALPHAGO 不會主動自我進化,進化是被動的,需要通過人類訓練新參數,每更新一次參數(一般幾個星期),ALPHAGO 便進化一次,進化是被動的階段性的。在這一點上 ALPHAGO 跟人類差別巨大。我們只要不給他更新參數,把他的網線拔掉,他就永遠停止進化了。
那我下面要講的東西又神奇在哪里呢?現在的單板處理能力是 ALPHAGO 的 5 倍,裝上單板的機器人就具備主動自我學習(自我訓練)的硬件條件,存在持續自我進化的可能性。數據來源可以是機器人每天看到或者聽到的東西,也可以是 SSD 卡上下載的互聯網內容,在有聯網條件下,他可以自己訪問 GOOGLE,獲取更多期望獲取的內容。內容有了之后,便可以在充電休息的時候讓自己持續進化,越來越聰明。這樣一個可以自己持續進化的機器人就產生了,而且可能來得很快,也許就在2018年。
科技在以指數曲線快速增長,但人類習慣按線性趨勢來判斷,因此在科技面前,人類的判斷往往是滯后的。
另外關于機器人威脅類,我也想發表一下自己的看法。
- 1)機器人會威脅到人類的工作機會,越來越多的工作都可以交給機器人去干,人類是需要跟機器人搶飯碗的。
- 2)機器人不會威脅到人類整體的生存。畢竟機器是人類造出來,人類這個整體是希望機器人來幫助人類,不是要來干掉人類的。當然,個別人會讓機器人干壞事,但那應該不是主流。
楊博士講的很好,受益匪淺!
楊兄 支持你
謝謝樓上的兩位!
上面提到的AI公司怕是要解決了小于5納米的工藝和良率,才有可能把功耗和成本降到他說的這么低,看看臺機電的16納米的情況就覺得17年不可能,難道它在設計上能超越老黃的黑科技?
一看就是行家呀。28nm左右的工藝就可以搞定,關鍵是設計方法學上有創新
一看就是行家呀。28nm左右的工藝就可以搞定,關鍵是設計方法學上有創新
哈哈,只是愛好者,我原來是做細胞生物學顯微影像的,對微觀的事物都比較感興趣,所以對芯片工藝一直有關注
哈哈,只是愛好者,我原來是做細胞生物學顯微影像的,對微觀的事物都比較感興趣,所以對芯片工藝一直有關注
楊博士犀利,多謝分享
謝謝老翟的關注!
謝謝老翟的關注!
人類希望機器人幫助自己,不能保證機器人不會威脅人類生存。就像人類社會需要有法律,警察,軍隊才能維持和平。機器人社會也應該有法律,警察,軍隊
謝謝!你現在在研究isp么?
謝謝!你現在在研究isp么?
楊兄:深入淺出,受益非淺!愿早日能看到你的作品……
謝謝!會很快^?_?^
謝謝!會很快^?_?^