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


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

2017年12月9日 星期六

排球與體育改革

前天幾位熱愛排球的年輕人找上我,希望我出來參選排球協會的理事,談了兩小時,我被他們的熱情說動了,或許這就是所謂「義不容辭」吧?

我這輩子很少跟人家爭,在現實生活上對權力遊戲沒什麼興趣,比較想自己喜歡做的事情。寫臉書和部落格,只是抒發個人的想法,沒想當什麼意見領袖。因此,當他們希望我參選的時候,我心裡面頗為排拒,非常想推掉。

可是,排球正好是我最喜歡的運動項目,聽到這些年輕朋友對我述說許多排球界的陋習,以及他們正在積極從事的改革工作,我狠不下心腸置身事外。如果我的棉薄之力,可以幫助改善台灣的排球環境,看到更多排球場上的笑容,實在沒有理由不站出來。

對於台灣的排球界來說,我只是一個無名小卒、業餘的愛好者。我讀台大電機系的那四年,是每天傍晚到排球場報到的「球棍」,全年無休,遇到假日更是要提早到場。我沒有打校隊,沒有教練教我逼我練球,但是興趣使然,我花了很多時間研究如何打好排球。

有多少傻子,會在床角上鋪上棉被和枕頭,在房間裡反覆練習扣球的動作,希望能打出漂亮的弧線? 有幾個怪咖,會在晚上十點到公園去練彈跳? 在美國念博士的幾年,誰有那個美國時間一個人在體育館架起排球網練習扣球?

我想世界上就是有一群如此熱愛排球的傻子、怪咖、無聊人士,不是因為參加了校隊,不是因為打國家隊,也不是因為靠排球營生,只是單純的興趣使然。這樣的人種,在乎的是如何增進自己的球技,在球場上盡力拚搏、以球會友,到處欣賞排球美技。

我在美國這個排球的發源地待了13年,除了到體育館打排球之外,也打隨處可見沙灘排球,甚至打過草地排球。偶爾和友人組隊參加業餘季賽,認識了各國的朋友,從高中生到70歲的大學教授,都樂在其中,見識到勝不驕、敗不餒的全民運動精神。

至今還保留在我研究室,當年在美國買的、用過多年的百年排球紀念球 (註: 排球是1895年發明的)

12年前我回台大教書,其中有個不足為人道的原因,就是希望能像早年一樣,天天到球場打球。可惜在台大教書的日子不如當學生輕鬆,沒辦法重溫舊夢。前幾年還跟著系隊去比賽,拿到台大盃冠軍,後來工作忙到不可開交,只能周末抽空跟一些老球友打打球。

說起來,國內的排球場地實在不怎麼樣。對我們這群業餘愛好者來說,有個架著網的水泥場地可打,就得偷笑了,想要租到木頭地板而且屋頂高度符合標準的場地,除非有關係,否則要好好燒香拜拜,才能抽到好籤。在硬地板上打球,容易受傷,一堆老球友紛紛因傷退場,至為可惜。

各單項體育協會的黑暗面,大家可能略有耳聞,但我並非親眼所見,所以不在此多談。我如果有幸擔任理事,會和這群熱愛排球的朋友們一起努力去改善台灣的排球環境,盡力讓黑暗面消逝。

如果朋友們有興趣關切這次台灣排球史上第一次全民參與的改選,請參考以下這個網頁:

http://votionary.com/jumptotw/

自動化解決大問題的AI

阿基米德曾說只要給他一個支點,他就可以舉起整個地球。我想,類似的比喻可以來形容AI:只要給我一個無限大的計算能力,我就可以做出能自動化解決一個大問題的AI。

然而,因為我們沒有無限大的計算能力,我們必須重視平行計算的效率,這也是我研究AI的切入點。不過呢,比起人類,電腦佔了一個優勢,那就是用多台電腦進行平行處理的時候,電腦與電腦之間的通訊速度遠超過人類在物理世界的語言文字溝通方式,所以説,利用平行計算創造集體智慧是強AI的關鍵之一。

有人形容「用大量計算能量搞深度學習」,是一種鍊金術,因為缺乏嚴謹的理論基礎,只知其然,而不知其所以然[1]。作為一位工程學者,我個人倒是不認同這樣的說法,因為有太多工程問題是無法用理論去得到解答的,而且深度學習已經成為實用的工程技術,並非中古世紀那種騙吃騙喝的鍊金術。

晶片也是一種有用的現代鍊金術,持續進步,造福人類數十年。台灣當年有幸學到一些晶片鍊金術,受惠了數十年。深度學習這套現代鍊金術究竟能將人類文明的智慧帶到何種境界呢?我們要用什麼角度切入參與呢?這是值得多思考的問題。

[1] http://bangqu.com/oES489.html

2017年12月8日 星期五

用AI設計AI?

日前Google Brain研究團隊公開了一篇論文[1],說明他們如何自動化機器學習模型的架構設計。

"In this paper, we attempt to automate this engineering process by learning the model architectures directly on the dataset of interest".

我說過優秀的軟體工程師是最擅長「日新又新」「革自己的命」的族群。這幾年,機器學習專家爭相發表強大的機器學習模型,尤其是影像辨認的應用。如今,這件工作,透過自動化,可以找到比「人類設計」更好的設計。

沒有自動替代文字。

如截圖所示,紅線的NASNet系列,是「機器設計」、自動化程序產生的,黑線則是目前「人類設計」中表現最佳的機器學習模型。所謂的表現佳,就是花費相同的運算能量(橫軸),可達到較高的準確度(縱軸)。

顯而易見的,紅線高於黑線。從另一個角度看,機器設計的NASnet-6,只要56%的計算量,就能達到與SENet相當的準確度。

問題來了:

Q1. 他們是怎麼辦到的?

Q2. 這個技術是否會開源?

Q3. 是否一大堆從事機器學習模型設計的學者、工程師都要失業了?

Q4. 這是不是意味著AI在各方面都有可能取代人類?

還有更多的問題值得深思,在此簡單地自問自答:

A1. 部分答案在論文中, 但要進行這樣的自動化工程,必須要有強大的計算能量。論文說道:

"In our experiments, the pool of workers in the workqueue consisted of 500 GPUs".

沒有像樣的計算能量,跑不出實驗結果,最好不要碰這樣的研究。然而,因為運算量太大,不能用暴力算法去做這件事。

"As this approach is expensive when the dataset is large, we propose to search for an architectural building block on a small dataset and then transfer the block to a larger dataset".

以上這句話就是文章標題所點到的Transferability的概念,請讀論文。

A2. 按照Google過去的作法,真正重要的東西,是不會開源的,但為了避免被指責,或是被以「反托拉斯」處理,Google應該會容許其他公司或社群發展(模仿)類似技術,或是使用其技術和專利,只要不威脅到Google的利益即可。

Google發展這類技術,主要是用以提升自家的服務。他不大可能把核心技術拿出去賣。我相信其他公司或開源社群應該會發展出一個或多個類似的東西。

A3. 這些Google Brain的人不會失業,他們會去做更有挑戰性的題目。天底下可以做的題目很多,除了影像辨認之外,還有很多應用。即便在影像辨認這個領域,還是有很多挑戰,例如醫學影像,與一般的影像辨認有很大的差異。

做機器學習的人,應該比別人更清楚「革自己的命」這件事。如果誤入此行,以為可以靠幾年中學到的東西做一輩子,這時再來抱怨工作沒了,應該是一種無知。

A4. 這篇論文再次提醒我們,只要是有規則可循的工作,就有可能被自動化。

往好處看,具有高度好奇心、熱愛挑戰的人類,可以善用自動化技術去提升他們探索未知領域的能力與效率。

工業革命之後,人們曾經擔心工作不保,但工業革命造成教育和生產力的提升,讓更多的人們能夠致力於發展文明,而非擔憂填不飽肚子的問題。

然而,社會的「低端人口」該如何自處,社會該如何看待他們呢? 這是很嚴肅的問題。工業化的國家,已面對這類的問題多年,甚至因為爭權奪利而引發兩次世界大戰,乃至有社會主義思想的濫觴。

制式教育只是為了生產業界所需的勞工,將人的勞動力提升,但是心智並沒有太多的長進。如今面對AI,我認為是危機也是轉機,希望人類的智慧藉此機會提升,但中間會有渾沌的現象,也是難以避免的。

[1] https://arxiv.org/pdf/1707.07012.pdf

2017年12月2日 星期六

近來各大家系統災情頻傳?

今天iPhone災情慘重,一早就有長官打電話來問我,但眾說紛紜,而且我所有裝有最新版的iDevices都沒出問題,所以不知道發生何事,直到搜索這篇報導[1],才知道問題所在。(註: Apple已經提供新的iOS 11.2,更新後應該可解此問題,但我不負任何責任。)



各位可以好好酸Apple,挫挫他的銳氣也好,或許iPhone會因此降價。不過我不想當酸民,所以想從技術面來談談與此相關的事。

據推測[1],這次災情的原因可能如下:

"The problem seems to be tied to local notifications received from apps that offer daily or repeat reminders. For example, meditation app Headspace, one of the affected apps, sends daily reminders to users to encourage them to take some time to meditate. Any app using local (as in not pushed from a remote server) notifications that repeat will cause a crash".

出問題的使用者,大概跑了某個會在系統的告示板上重複提醒使用者的應用。不過,會因此而當機,作業系統難辭其咎。

為了效率,Apple對iOS做了很多優化。我們知道,如果把一些功能放在作業系統內部空間(kernel space),可以節省不少負擔(system call, context switch, memory copy),然而一旦有點小差錯,可能導致系統當機。

請不要小看這類站在時代尖端的系統軟體工程,這需要極度專業的軟體工程訓練,這不是修過基礎的作業系統原理就能勝任的,複雜度遠遠超過寫微控制器的程式,或是寫裝置驅動程式。

系統驗證的難度與日俱增。當系統越來越複雜的時候,越難以保證系統絕不犯錯。軟體驗證工具,如果使用得宜,可能降低出問題的機率。

由此可知系統軟體工程人才的重要性,但台灣這些年說要發展軟體,極力強調創新之餘,是否知道台灣業界極度缺乏專業、高階的系統軟體工程人才?

資安的問題也是如此。很多所謂的資安人才,學會如何運用現成的攻擊與防禦工具,但系統軟體內部的資安議題,則較缺乏關注,例如說,怎麼寫出沒有安全漏洞的軟體呢? 如何設計不會被駭客用硬體手法破解的系統?

上個月Intel的處理機被爆料出事了,幾乎所有2015年之後生產的處理機都中鏢[2]。主要是因為Intel在x86處理機內加裝一顆管理用的小處理機(Management Engine)有安全漏洞,影響Windows和Linux的使用者,但不影響Mac。

但Mac的使用者也不要高興得太早,因為OS X有個更離譜的資安漏洞也在幾天前被揭露出來[3]。使用者如果沒有設定root帳號的密碼,那麼駭客就可能可以輕鬆用root帳號登入,不需要任何密碼。

各位可以酸Intel和Apple,但大家每天在使用的Windows,三不五時就有security update,隨時都在補資安漏洞。

要發展複雜的應用與系統,勢必要有硬底子的系統軟體工程人才和系統資安人才,否則產品很容易出事。

話說,使用深度學習打造出來的現代AI系統是否穩定和安全? 這也是相當值得研究的議題。

[1] Date Bug in iOS 11.1.2 Causing Crash Loop on iPhones as December 2 Hits
https://www.macrumors.com/2017/12/02/ios-11-1-2-date-bug-crash-loop/

[2] 英特爾修補影響數百萬台PC與伺服器的CPU韌體漏洞
https://www.ithome.com.tw/news/118487

[3] Mac作業系統重大資安漏洞 蘋果忙補破網
http://www.cna.com.tw/news/firstnews/201711295007-1.aspx