通過圖靈測試!Google掌舵人說「打電話AI」是一次非凡突破

通過圖靈測試!Google掌舵人說「打電話AI」是一次非凡突破

來自專欄 量子位

夏乙 問耕 發自 凹非寺

量子位 出品 | 公眾號 QbitAI

我們錯了。

今天凌晨,Google I/O 2018大會最後一日,前不久剛剛獲得年度圖靈獎的Alphabet新任董事長John Hennessy登上舞台。

原本以為這是一次例行公事的演講。只是簡單講講責任、做做科普等等。沒想到,曾經的斯坦福校長Hennessy毫不打官腔。(他比上一版Alphabet董事長有趣太多)

聽完之後,我們久久不能平靜。

Hennessy一開場就花了大量的時間,仔細講解了計算領域的發展、現狀和困境,以及未來可能的突破方向等。句句乾貨。

當然亦有激動人心的情懷抒發。

比如,這位已經65歲的宗師泰斗說:你們可能不信,我搭建自己的第一台電腦,已經是幾乎50年前的事了。

Hennessy說這五十年來,他親眼目睹著不可思議的IT產業,上演一波又一波的革命,互聯網、晶元、智能手機、電腦……展現著各自的魔力。但仍有一件事,他認為將會真正改變我們的生活。

「那就是機器學習和人工智慧領域的突破。」

「人們投入這個領域的研究已經50年了。終於,終於,我們取得了突破。為了實現這個突破,我們所需要的基本計算能力,是之前設想的100萬倍。但最終我們還是做到了。」

他說:這是一場革命,將會改變世界。

然後更震撼的一幕上演。

相信很多人已經見識過Google Duplex。就是前兩天在Google I/O 2018大會首日,Google CEO展示的那個對話AI。

能夠在真實的環境下,打電話給美髮店、餐館預約服務和座位。全程流暢交流,完美應對不知情的人類接線員。看看下面這段視頻,再感受下Google的AI黑科技。

Google Assistant打電話 | I/O 2018_騰訊視頻?

v.qq.com圖標

Google Duplex一出,所有人都炸了。效果拔群的好。坊間觀眾們緩過神來一想:Google演示的這個AI,難不成就是通過了圖靈測試?

沒錯,Alphabet董事長John Hennessy今天終於親口承認:「在預約領域,這個AI已經通過了圖靈測試。」

「這是一個非凡的突破。」

他進一步補充說,雖然這個AI不是在所有情境下取得突破,但仍然指明了未來的道路。

https://www.zhihu.com/video/978274694729924608

1950年,圖靈發表了一篇劃時代的論文,預言人類能創造出具備真正智能的機器。他還提出了著名的圖靈測試:如果一台機器能與人類展開對話(通過電傳設備)而不被識別出身份,那麼這台機器就具有智能。

通過圖靈測試,意味著機器可以思考。

圖靈當年的驚世論文

了不起,再次為Google打Call(以及希望可以是AI接聽)。

在演講中,John Hennessy還問全場:有一件事,現在還能按照摩爾定律的速度快速增長,你們猜是什麼?

答案是:機器學習論文的數量。

說完這個,全場都大笑起來。(感謝Jeff Dean、Dave Patterson、Cliff Young等貢獻的數據。)

他還講解了TPU的內部結構。下面有詳細闡述。

那麼,今天我們滿懷敬意和激動發出這篇推送。我們覺得可以把這篇稱為:《Alphabet董事長在山景城科技座談會上的講話》。

Hennessy講話脫水全文如下,還沒出版單行本。

講話脫水全文

今天我要講一講,未來40年我們在計算領域將面臨的最大挑戰是什麼,但這同時也是一個巨大的機遇,讓我們重新思考該如何構建計算機。

現在流行談摩爾定律的終結,高登·摩爾自己曾經跟我說過:所有指數都會終結,只是遲早的問題。摩爾定律所遇到的正是這樣的自然規律。

摩爾定律終結意味著什麼?

我們先來看看DRAM(動態隨機存取存儲器)的情況。很多年來,DRAM都在以每年50%的速度增長,比摩爾定律說的增速還要快一點。

但後來,就進入了平緩期。過去7年里究竟發生了什麼?DRAM是一種比較特殊的技術,它需要深槽電容,因此也需要一種特殊的裝配技術。

那麼在處理器領域又發生了什麼呢?處理器發展的減緩和DRAM是相似的。紅線是摩爾定律的預測,藍線是一個普通英特爾處理器上的晶體管數量。這兩條線一開始只是略微分叉,但到2015、2016年,差距就很大了。

我們必須記住,這裡還有個成本因素。生產線越來越貴了,晶元成本降得卻沒有那麼快,因此每個晶體管的成本實際上在上升。我們去考慮架構的時候就會看到這些問題的影響。

在摩爾定律的減速之外,還有一個更大的問題,登納德縮放定律(Dennard Scaling)的終結。

Bob Dennard是IBM員工,第一個晶體管DRAM的發明者,他多年之前曾經預測:每平方毫米的矽片需要的能量將保持恆定,因為電壓電平、電流容量會下降。

這意味著什麼呢?如果能量保持恆定,晶體管數卻在指數型增長,那麼每個晶體管的能量,實際上是在下降的,也就是說,從能耗的角度來看,計算的成本越來越便宜。

實際上登納德縮放定律怎麼樣了呢?我們來看一下上圖,紅線是技術按標準摩爾定律曲線的發展,藍線代表單位面積能耗的變化。

現在的處理器會調慢時鐘頻率、關閉核心,因為如果不這麼干它就會燒起來。我從來都沒想到竟然會看見這樣一天,處理器給自己減速來防止過熱,但是現在這種情況已經發生了。

實際上,登納德縮放定律到2007年已經停止了,帶來了晶元行業的劇變。忽然之間,關鍵限制因素不再是晶體管的數量,而是能耗。這就要求你完全重新思考架構、思考如何構建機器。

這意味著晶體管在計算中的低效、架構上的低效比以往危害更大。

我們平時所用的、隨身帶著的各種設備,都離不開電池,忽然之間能量就成了關鍵資源。還有比手機沒電了更糟糕的事嗎?再想想即將到來的IoT時代,設備永遠開著機,還指望依靠能量採集技術一塊電池用10年。

我們越來越需要設備永遠保持開機。比如說裝了Google Assistant的東西,你可能不需要它的屏幕總亮著,但是需要CPU一直在工作。因此,我們需要越來越多地考慮能源效率。

讓很多人驚訝的是,在大型雲計算數據中心裡,能量效率也是個巨大的問題。

這是Google數據中心的典型成本構成。紅色的那一塊是耗能加上冷卻的成本,幾乎和花在伺服器上的成本持平。因此,能源效率是一個非常關鍵的問題,而登納德縮放定律的終結意味著已經沒有免費的午餐了,你也可以看出它的影響。

上圖展示了40年來處理器性能的變化。最初幾年,我們每年能夠看到22%的進步;80年代中期RISC發明之後,每年的進步速度達到了大約50%;接下來,就是登納德縮放定律的終結,晶元界所有人都轉向了多核。多核有什麼用呢?硬體設計者用它把能量效率的皮球踢給了軟體設計者;現在我們進入了一個平台期,平均每年的性能增長只有3%左右,要20年才能翻倍。這是通用處理器性能增長的終結。

為什麼會這樣?

大量並行執行指令是不可行的,比如說在英特爾酷睿i7里,25%指令的執行結果都被扔掉了,但是,執行這些指令依然需要消耗能量。這也是為什麼單處理器性能曲線終止了。

但是多核處理器也面臨著類似的問題。寫一個大型的複雜軟體,就必然有序列性的部分。

假設,你將來用一個64核的處理器,但它運行的代碼中有1%是序列性的,於是,它的運算速度就只相當於一個40核的處理器,但是你卻要為64核的能量買單。

我們要跨越這個能量效率的障礙,就要重新思考如何設計機器。

我們還有什麼方法,能讓系統更加經濟?

軟體為中心的方法行得通嗎?現代腳本語言對於使用它們的程序員來說很高效,但是在執行上效率很低。

硬體為中心的方法呢?我和Patterson把它稱為「特定領域架構」,這類架構不是通用的,但能非常好地處理一些領域的應用。

根據上面提到的挑戰,我們來看一下有哪些機會。

這個表格出自Charles Leiserson和他MIT同事們的論文「There』s Plenty of Room at the Top」。他們以矩陣乘法為例,在英特爾酷睿處理器上運行這種演算法並優化它。用C語言重寫、加上並行循環、加上內存優化都會帶來速度的提升,最後他們用Intel AVX instructions重寫了程序,和Python相比提速了6萬多倍。

雖然只是一個很簡單的演算法,但是這體現了軟體優化能夠帶來的潛力

那麼特定領域架構(DSA)呢?我們實際上要做的是要在硬體的能效上獲得突破。「特定領域」指的是讓一個處理器能實現一定範圍內的用途,它們在運行的時候能夠運用這個特定領域的知識,因此更加高效,比如專門用於運行神經網路的處理器,做的是機器學習相關的事情。

DSA不是魔法,把架構限制在某個領域並不會自動讓計算更快,我們需要做一些架構上的改變才能更高效。重要的有這樣幾點:

首先我們更有效地實現了並行,從現在多核處理器的多重指令多重數據變成了單指令多重數據,因此每個核心不必再單獨從不同緩存中讀取指令流,而是用一組功能單位存儲一組指令。這是犧牲一些靈活性來換取的巨大的效率進步。我們用的更像是VLiW,讓編譯器來決定一組運算是不是要並行,將工作從運行時轉移到編譯時。

我們還脫離了緩存。緩存是個好東西,但是當空間局部性和時間局部性比較低的時候,它不僅沒用,還會拖慢程序。於是,我們就把它轉移到了用戶控制的本地存儲中。這裡所做的取捨就是必須有人將他們的應用銀蛇到用戶控制的存儲結構中。

另外,我們還去除了不必要的精度,轉向低精度的浮點運算。

與這些相配合,我們還需要特定領域語言。用Python或C寫的代碼,無法提取出特定領域架構所需要映射到信息。

因此,我們需要重新思考改如何為這些機器編程,它們要用到高級運算,比如向量乘法、向量矩陣乘法或者係數矩陣的組織等,有了這些運算才能獲得編譯到架構中的高級信息。

設計特定領域語言的關鍵是要保持足夠的機器獨立性,不能換一台機器就要重寫程序。應該有一個編譯器能針對一種特定領域語言,既能映射到雲端運行的架構,也能映射到手機上運行的架構,這是一種挑戰。TensorFlow、OpenGL等正往這個方向發展,但這是一個船新的空間,我們剛剛開始理解,也剛剛開始理解該如何針對它來設計。

為深度神經網路設計一種特定領域架構,你們覺得應該什麼樣?

這張圖是TPU內部的架構,我想說明的是,這上面佔滿矽片區域的不是控制,也不是緩存,而是與計算直接相關的東西。

也正因為如此,這個處理器每個clock可以完成256×256次,也就是64000次8位矩陣乘法,因此它可以輕鬆拿下推理任務。你不能用它來運行通用的C語言代碼,而是要用它運行神經網路的推理。

我們來看一看每瓦能耗實現的性能,TPU是通用處理器的30多倍,甚至比GPU強很多。這就體現了為特定領域來定製架構非常關鍵。

這是一個新時代,但在某種意義上來講也回到了過去。在計算機發展早期,應用領域的專家、研究軟體環境、做編譯器的人和做架構的人會組成一個垂直的團隊。

而現在,我們也需要這樣的綜合團隊,理解如何從應用來發展特定領域語言、發展特定領域架構,來思考如何重構機器。

對於行業發展來說,這是巨大的機遇,也是一種新挑戰。我相信有足夠多像這樣有趣的應用領域,我們可以通過為領域定製機器,取得巨大的性能優勢。

我想,如果能實現這種進步,就會為人們騰出時間,來擔心信息安全問題,這也正是一個我們應該關注的重要問題。

現場視頻

Hennessy講話全程在此,我們加了英文字幕。字幕來自YouTube,應該是人工智慧聽寫完成的。

谷歌董事長在I/O 2018上的講話(字幕版)_騰訊視頻?

v.qq.com圖標

One More Thing

演講結束後,John Hennessy老師還在現場,進行了20多分鐘的答疑。

這次答疑涉及的領域包括:量子計算、神經網路,安全、計算架構的演變、行業未來發展、教育等等諸多領域。Hennessy都給出了誠懇而明確的回答。

這裡先講幾個花絮。

現場有個提問者說:我上的處理器架構課程,用的就是你寫的教材。

Hennessy立刻回答:「I hope it didn』t hurt you.」

又是一次全場大笑。

還有一個提問涉及比特幣這類加密貨幣。

Hennessy回答:「確實,我能構建一個專門進行比特幣挖礦的架構。」他說加密貨幣很重要,但還有一些問題需要解決。

如果你對問答部分感興趣,可以量子位(公眾號:QbitAI)對話界面,回復:「軒尼詩」三個中文字,即可獲得傳送門。

亦有英文字幕,推薦觀看。

歡迎大家關注我們的專欄:量子位 - 知乎專欄

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復「招聘」兩個字。

量子位 QbitAI · 頭條號簽約作者

?? ? 追蹤AI技術和產品新動態


推薦閱讀:

TAG:人工智慧 | 深度學習DeepLearning | 谷歌Google |