電腦效能應用與安全研究室 Performance, Applications and Security Lab


我們的研究範圍很廣,從嵌入式系統、手機應用、一直到雲端計算、商務應用、資訊安全都有做。
我們的合作研究夥伴很多,包括聯發科、IBM、中研院、資策會,還有和台大、清大、交大的教授合組研發團隊
,包括高階應用處理器架構研究、虛擬化技術、異質計算、系統軟體等重要技術的研究與創新,我們很關切台灣人才與產業的未來。

2016年1月10日 星期日

人工智慧太厲害了,我們該怎麼辦? (Part II)

昨天概說了人工智慧過去和未來性 (註1),在技術面上著墨不多,所以今天來談談技術面。

首先是關於「摩爾定律」,我在半年前寫了一篇「後摩爾定律的世界和台灣的產業發展」(註2),有興趣的人可以參考一下。我當時說:

「說白一點,摩爾定律是錢砸出來的。摩爾定律的黃金時代,開始於個人電腦急速成長的時代,但個人電腦的效能在十年前就已經能夠滿足大多數個人,所以「世界」對於摩爾定律的期待逐漸降低,雖然智慧手機和平板的異軍突起,但主要是希望摩爾定律能夠提供更高的性能耗能比(power-performance),然而這幾年手機平板已趨於飽和,也沒看到真正個人所需要的高性能耗能比的應用(killer apps),再加上像Qualcomm、Samsung這樣的公司上在推出新的行動晶片上屢次因為晶片過熱而踢到鐵板,所以在既然沒有消費者的需求,晶片製造商也裹足不前的情況下,自然就會降低對於摩爾定律的挹注。」

「我想,在缺乏資金挹注的情況下,摩爾定律在技術上能延續的機率不高,即便不少研究者熱中於此。除非有真正大眾需要的應用,或是再度出現軍備競賽,否則很難改變摩爾定律的終結。」

但任何事都可能有例外,不能太鐵嘴,還好我最後有加上一個以「除非」開頭的句子。人工智慧是否能成為大眾真正需要的應用,或是用於軍事用途? 我想其可能性還不小,所以我在這幾個月跟一些業界朋友說,不要再搞那些傳統的消費電子產品了,要想想如何將「智慧」加進產品之中。

怎麼把「智慧」加進小型的裝置之中? 基本上,有下列方法:

(1)由小型裝置自己做
(2)藉由網路把工作送到集中式的伺服器去做
(3)藉由網路把計算工作送到周遭多台機器分工合作
(4)上述三種的組合

先說「自己做」行不行? 現在很多人手上的手機,能做多少事情? 其實手機可以做很多事情,只是會遇到過熱和電量不足的問題,但是這兩個問題影響較大的是較長時間使用的應用,如果我們要的是「即時性的智慧」,那麼問題應該比較像是「如果手機在五秒內全速執行,能夠解決那些問題」?

舉例來說,即將出現在手機市場上的Qualcomm旗艦處理機Snapdragon 820有多厲害呢? 據說(註3) 這顆晶片的 4核CPU比前一代S810的8核快35%,省30%的電,支援600Mbps的無線網路,其中的GPU也快了40%、省40%的電,還支援OpenCL 2.0。不只如此,他還有一顆名為Spectra的影像訊號處理機(image signal processor),可以加速影像處理和支援電腦視覺(computer vision)。

要自己做,可以,要想辦法把各種運算能力整合到晶片上。要讓手機晶片有智慧,不能只靠跑在CPU上的純軟體,一定不夠力的。有些應用可藉由GPGPU來加速以資料為主的運算(data-parallel computing),例如做機器學習的開源軟體,Mahout和Caffe,都可以用OpenCL程式碼跑在GPU上。另外,以影像和聲音為主的應用,則最好設法在源頭解決問題,也就是說在感測器紀錄影像或聲音之後馬上送到訊號處理機,使用專門特殊化的(specialized)計算架構來提升效率,其實電腦視覺也可算是初步的人工智慧。

從上述的例子,可以看到「特殊化」處理機的趨勢越來越明顯,因為用CPU跑純軟體太沒有效率。時下很多人討厭寫C程式,喜歡用像是Java, Javascript, Python之類的高階語言來開發應用,但是對於開發與效能息息相關的系統軟體的人來說,光是懂得寫C程式可能還不夠,要懂得multithread、OpenCL、CUDA才會善用多核心的CPU/GPU,要懂得訊號處理機的架構和專用語言才能發揮其能力,甚至要會使用「硬體描述語言」才能用FPGA來加速計算。

我預測未來這十年,是大家各憑本事、各顯神通,想盡辦法來打造智慧系統的黃金年代。我們將會看到百家爭鳴,在計算架構和軟體設計上不斷推陳出新,快速發展。當然,演算法也極為重要 -- 再厲害的運算能力,也挽救不了愚笨的演算法。而且,針對大系統所開發的演算法和軟體,不見得適用於小機器,例如把Google釋出的Tensorflow裝在小機器上,可能會發現它的效率不彰,所以各公司可尋找屬於自己的利基市場(niche)。

當然,如果不限定要帶在身上,智慧型裝置也可能出現在車上、電線桿上的監視錄影機。因為體積和電力供應較大,我們有機會將百倍於手機的運算能力放進這些裝置。所以某些人工智慧的應用,可能會先出現在這類裝置上,例如前幾天的CES 2016,我們看到NVIDIA和Qualcomm都推出車用的處理機(註4)(註5),來搶攻這類市場。

這是新興市場,我希望台灣的業界人士看到以上幾段會頗為振奮,尤其是那些在硬體公司寫系統軟體的朋友們,這是值得把握的機會。如果您能夠針對某個智慧型應用設計出又快又省電的系統,那就有機會逐鹿天下。不過呢,要把握機會,必須先搞清楚這些研發工作將會需要「緊密的垂直整合」,最好有一個人才濟濟的團隊,針對應用的需求規劃系統軟硬體,要有「軟體為主,硬體為輔」的思維,最好要找到軟硬兼備的系統架構師(system architect)來領導研發工作,如我在這篇專訪上談到的(註6) 。

當然,我們也可如第二種方法,「藉由網路把工作送到集中式的伺服器去做」,來提升小型設備的智慧。但首先,網路傳輸需要時間,不利於即時性的應用;其次是隱私性和安全性的問題,我們未必希望讓大公司那麼清楚的知道我們的一舉一動,所以也可能不希望把全部的工作送到集中式的伺服器去做;再來,極為耗費運算資源的工作,除非Google能夠由此獲的廣告利益,否則它未必願意提供免費的伺服器資源來幫大眾做這個,所以並非所有應用都會有免費服務。

同時,在資料中心做人工智慧的運算,更需要高效率的加速技術。因此現今很多大公司都在積極找高手來加速需要大量運算的服務,例如微軟有個專門以FPGA加速資料中心服務的研究團隊Catapult,陸續發表加速搜尋引擎和機器學習的技術(註7)。

第三種方法與第二種方法的差別,在於利用較近的機器做計算來縮短時間,選擇能夠信任的機器來保護隱私,以及以互助會的模式來分享互惠資源。我們做過這類模式的相關研究,也實際建構出系統,例如這篇將Android程式中大量數據處理的工作轉移其他機器的作法(註8)。雖然目前還缺乏需要這種模式的高運算量行動應用,不過我相信在未來身邊需要人工智慧的時候,應該會有這類的需求和做法。

實際的作法,也可能是以上三種方法的排列組合。至於如何排列組合,就考驗系統架構師的能力。台灣現在很缺系統架構師的人才,缺到業界連如何善用系統架構師、去哪裡找這些人、如何培養這種人都不知道。以前做代工不需要這種人才就算了,如果現在還不知道,那就難做了。現在業界有不少地方都說要做人工智慧,但我奉勸想加入這類團隊的朋友,先看看帶頭大哥懂不懂,有沒有兩把刷子再說。

(註1) 人工智慧太厲害了,我們該怎麼辦?
臉書版: https://www.facebook.com/shihhaohung/posts/1072464976129323
部落格: http://hungsh-ntucsie.blogspot.tw/2016/01/blog-post.html

(註2) 後摩爾定律的世界和台灣的產業發展
臉書版: https://www.facebook.com/shihhaohung/posts/968793609829794
部落格: http://hungsh-ntucsie.blogspot.tw/2015/07/blog-post_13.html
轉載於Inside: http://www.inside.com.tw/2015/07/14/post-moores-law-and-the-industry-development-in-taiwan

(註3) Qualcomm's Snapdragon 820 INSANE Specs & Features DETAILED
http://www.knowyourmobile.com/samsung/qualcomm-snapdragon-820/23126/qualcomm-snapdragon-820-release-date-specs-features-android-n-launch

(註4) NVIDIA推出車用人工智慧電腦NVIDIA DRIVE PX 2,號稱性能比 Macbook Pro強150倍http://www.techbang.com/posts/40654-nvidia-at-ces-not-flagship-graphics-card-but-strong-for-a-taxi-containing-artificial-intelligence-supercomputers-nvidia-drive-px-2

(註5)
【CES 2016】高通發表 Snapdragon 820A 車用處理器,具機器智能神經學習系統
http://technews.tw/2016/01/08/qualcomm-snapdragon-820a-automotive-processor/

(註6) 深化產學合作!向沒有能力領導創新的大企業說掰
http://www.bnext.com.tw/article/view/id/38432

(註7) Project Catapult
http://research.microsoft.com/en-us/projects/catapult/

(註8) Shih-Hao Hung, Tien-Tzong Tzeng, Gyun-De Wu, Jeng-Peng Shieh. A Code Offloading Scheme for Big-Data Processing in Android Applications, Software—Practice and Experience, first published online May 2014.
http://onlinelibrary.wiley.com/doi/10.1002/spe.2265/abstract

2016年1月9日 星期六

人工智慧太厲害了,我們該怎麼辦?

我們為什麼要推計算思維呢? 因為未來各行各業都需要與電腦合作,否則有可能被電腦和機器人淘汰,例如這篇【機器人搶工作 律師、藥劑師也遭殃】所談到的(註1)狀況。如果不懂計算思維,很容易就迷惘了。

最近像這樣的文章和書籍很多,研究未來學的人,認為人工智慧是未來的重要趨勢,極盡能事去想像未來,但究竟有多少真實會發生,有多少只是虛無飄渺的幻想? 我想,很少人有能力確定,不過當前許多學生都跑來研究人工智慧相關的議題,則已成為我在台大所看到的事實。

我三十四年前在高中時,就對於人工智慧很感興趣,開始學LISP,後來進到台大念電機系,修了兩門人工智慧的課,還旁聽過神經網路,到密西根大學念書,也修過人工智慧,但我沒有繼續研究人工智慧,因為我覺得當時研究者走偏了,而且當年電腦的運算速度遠遠不足以支持有意義的人工智慧,所以根本做不出東西。

我猜對了,1990年代之後,人工智慧成為票房毒藥,沉寂了近二十年。

我選擇做電腦系統,看著電腦系統的效能持續成長,電腦系統的研究者想出各種方法來收割不斷成長的電腦效能,過去這三十年,最忙碌的研究領域之二,是計算機結構和系統軟體,我有幸能優游於兩者之間,探討一些軟硬體整合的議題。

如今,單一處理機的運算能力,約為30年前人工智慧全盛時期的100萬倍(註2),而且只要願意付些許錢,就可以租用雲端的上百台電腦,運算能力更是30年前的一億倍以上。

要注意到,這一億倍的運算效能,是人工智慧東山再起的關鍵。沒有足夠的效能,電腦很難生出智慧。然而,如今的運算效能,是否足以支持未來學想像中的人工智慧,則是一個大哉問。

大部份未來學專家的預測,都是基於以往的摩爾定律(註3),但這幾年摩爾定律已經放緩,甚至有可能停滯,主要是成本考量。以往這麼多年透過個人電腦、電子商務、行動運算、雲端服務等應用,半導體產業有足夠的利潤做研發來支撐摩爾定律,而大數據分析和人工智慧是否足以繼續支撐摩爾定律的延續? 如果摩爾定律停滯,那該如何是好?

有的人工智慧應用,需要比目前更高百倍的計算能力,有的實驗研究要成為產品之前,需要將龐大的運算能力縮小進到生活周邊,因此我認為我們做計算系統的,在產品化的過程中,還是扮演舉足輕重的角色,將來應該會有做不完的人工智慧系統設計的工作。

要創造出人工智慧的系統,關鍵在於要有能夠密切垂直整合的團隊,必須要有三種專家密切配合:
(1)領域專家,例如找律師、藥劑師來指導或教導電腦該領域的專業技能。
(2)人工智慧專家,綜合運用機器學習、數據分析、資料探勘等方式設計人工智慧演算法與軟體。
(3)系統專家,提供人工智慧所需的系統整合、資料蒐集、處理和計算能力,針對人工智慧應用優化系統軟體、設計晶片。

台灣比諸於其他許多國家,由於有硬體產業的基礎,非常適合發展「(3)系統專家」(這也是我想來培育的,也是目前即欠缺的人才),加上台灣目前很多學生對人工智慧很有興趣,學得很快,所以我不擔心會短缺「(2)人工智慧專家」,台灣在各行各業也有很多領域專家,但是能否聚集人才成為優質研發團隊,是真正的重點。

我想,很多有識之士已經看到這個局面,這是值得台灣去發展的好機會。我希望國家和社會多投入一些資源鼓勵產學界共同組成「對」的團隊,來把握這樣的機會,讓學術界多做些有益於這類幫助國家產業發展的研發工作。

然而,在謀求發展的機會的同時,我們也應該做好教育的工作,讓未來的世代能夠好好面對電腦和機器人。與其教學生背誦記憶一堆電腦瞬間可解的問題,不如教他們如何活用電腦、想辦法與電腦和機器人共榮。

另外,科技的民主化以及財富的合理分配,也將會是越來越重要的課題。我們絕對不希望大家多年努力的成果,被少數資本家收割,讓科技成為資本家搜刮社會資源和剝奪人民權益的打手 -- 這是社會大眾需要慎重看待和避免的議題。

(註1)機器人搶工作 律師、藥劑師也遭殃
http://www.cw.com.tw/article/article.action?id=5073792

(註2)以摩爾定律概算,假定每18個月電腦效能增加一倍。

(註3)https://zh.wikipedia.org/wiki/摩爾定律