從雲端加速技術看台灣高階人才培育問題#15:改變體質、找到方向/洪士灝
上一篇談到台灣待突破的研發文化,但批評容易,如果不提出有建設性的作法,又會被譏笑為酸民。不過真的提出建議後,通常長官沒時間看,酸民也不愛看,讀者寥寥無幾;如果光看點閱率,長久下去自然會造成電子媒體界酸文遠多於建設性文章的問題。
世界上很少有所有人都叫好的東西,「父子騎驢」的故事聽過吧?無論是意見或產品。對作家來說,最重要的是找到適合自己、可持續耕耘、有機會突穎而出的個人風格,而不是想去討好所有人;對產品開發者來說,最重要的也是找到適合自己、可持續耕耘、有機會脫穎而出的產品路線,才能長久經營下去。
台灣在過去二十餘年所耕耘的系統產業,曾經輝煌風光過。筆者說過,我並不反對代工和做代工的人,我反對的是「管理階級說台灣只能做代工,大聲疾呼要政府補貼代工產業,否則台灣就如何如何悲慘」的一套說詞。
代工又不是新創公司,如果獲利夠高,何必要政府補貼?
台灣高科技業的出路,其實十分寬廣
那麼台灣的高科技業的出路在哪裡呢?我看到的路太多了,無法一一列舉;但我資質駑鈍,不懂得走捷徑,所看到的路,都是需要充分學習、運用才智、磨練經驗之後才走得通的道路。
所以想走捷徑,請找別人。坊間有數不盡教人如何致富的暢銷書,搞不好寫書的人因此致富的數量比讀者還多。
要務實搞研發,隨手舉例來說,日前哈佛大學的David Brooks教授來到台大資工系演講,題目是「為深度學習而設計的計算機架構」(Computer architectures for deep learning applications),就是台灣系統產業非常感興趣而且可以做的題目。但是這個題目要做好並不容易,因為這不是那種設法把人家制定好的硬體規格,直接放進系統晶片的傳統作法。
怎麼說呢?
深度學習是當今的顯學,啟發了很多新的智慧型的應用,產值相當看好;但如何將深度學習的機能放入各種應用?除了發揮創意、打造應用之外,深度學習引擎的效能和效率必須具備足夠的競爭力。
以汽車產業為譬喻,作為動力來源的引擎,是最重要的技術。跑車需要大馬力、貨車需要大扭力、轎車要平順可靠、小車要經濟省油;各汽車廠如果沒有掌握好引擎技術,即便車子造型做得再漂亮、內裝再豪華,可能還是乏人問津。
因此,如何幫深度學習應用打造合適的引擎,也是當前計算機架構的研究重點。Brooks教授目前擔任ISCA 2017年會的Program Chair,這場年會受到計算機架構研究社群的高度重視。
他談到最近相關領域雖然是百家爭鳴,但是研究者似乎專注在某些容易產出結果的應用,業者似乎只憑著經驗法則來開發新的深度學習應用,都有不少的盲點,都還在摸索,所以還有很大的研發空間。
全球業界在深度學習領域,都還在摸索做法,所以台灣還有很大的發展空間。
正是如此。這幾年常有系統晶片業者來問筆者,怎麼做深度學習用的晶片?我的回答是這件事不容易,要真的做好的話,要先深入了解應用的特性,分析運算的分佈,再來談晶片設計。然後呢?就沒有然後了。
系統晶片設計業擅長的,是做客戶提供規格的設計工作;要他們從應用端出發,分析軟體的特性,就是他們相當不擅長的工作。
這就是代工產業多年以縝密分工來追求效率衍生的問題,鮮少有台灣的公司能夠做從應用到系統「端到端」(End-to-End)的創新研發。好比很多人詬病台灣教育體制訓練出很多擅於考試的學生,遇到沒見過的、複雜度高的題目,就不知如何下手,腦袋就無法運作。
我的想法與Brooks教授一致,正所謂「工欲善其事,必先利其器」,為了要針對百花齊放的智慧型應用,打造出最適用的深度學習引擎,我們還缺乏相當多的工具與分析方法。
因此他的演說,談的就是如何提供一套完整的做法(A Full-Stack Approach),講居於樞紐地位的工具設計,如下圖所示。
由上而下,他的團隊研究如何以深度學習設計深度學習的演算法(Algorithms)、打造一套供研究者使用,用以評估重要的深度學習工作量的開源專案Fathom、針對低功率應用設計的深度學習加速器架構設計工具Minerva、以及用台積電28nm製程做出的SM2深度學習加速晶片。這就是End-to-End的示範。
David Brooks教授的投影片。
台灣如何切入深度學習的軟硬體產業?
雖說遠來和尚會唸經,但我們也不是不懂。筆者指導的幾位研究生,也在研究深度學習引擎的架構與最佳化,為此開發效能分析工具。
例如Google雖然提供開源的Tensorflow深度學習中介軟體,但實際上要怎麼打造出一套高效能的Tensorflow引擎呢?我和Brooks教授都認為,雖然Google早已做出Tensorflow專用的TPU晶片,但世界上有太多這類型的研發工作,而台灣應該有機會在此扮演重要的角色。
筆者對Brooks教授說,是的,台灣應該做得到,只要把資源投在對的人事物上面。我的淺見是:
不需要補助大公司做這些,因為他們本來就該投資研發。如果他們自己不想出錢進行技術研發,即便政府提供補助,執行效果也是有限的,往往只是交差了事,錢最後還是會進到他們覺得更有利可圖的短期研發項目上。
如果大公司想做這些,最好是將部門獨立出來成為子公司,給予中長期的資金援助;此時政府可視該子公司的狀況決定是否該投資,而非補助。既然是投資,當然應該有監察和回饋機制,子公司較為單純,政府比較容易應對。
如果法人機構想做相關研究,也是請相關人等出來開公司比較好。我在幾個場合中對政府長官建言,建議政府應該重新評估工研院和資策會等法人的定位。過去這些法人的確扮演過舉足輕重的角色,尤其在引進國外技術和培育人才上貢獻卓著;但這些年演變下來,法人往往成為舒適圈,不夠積極。
有技術深度的新創公司,是政府最應該長期投資的對象。如上所述,台灣目前最缺乏的,是能從應用到硬體把產品End-to-End做出來的高階技術人才;但這類人才不易培養,需要足夠肥沃的土壤。所謂長期培養,就是不以一般業界的短期成敗來論英雄,但也不是放任;應該適度引進國外高階人才來帶領和砥礪,才不會閉門造車。
至於研究型大學的研究能量,如果要能夠釋放來協助業界,法令也必須鬆綁。如果一面批判高等教育有嚴重的產學落差,一面又嚴格規範大學教授與產業合作的範疇,那麼大學只會動輒得咎、進退失據。
現在資訊業所需的高階技術人才,不是學界和業界任何一方單獨可以培育出來的,因此產學研究非常重要。
現在資訊業所需的高階技術人才,不是學界和業界任何一方單獨可以培育出來的,請大家不要在用二十年前的觀點來看待產學落差和產學合作。這不是一般人熟知的技職教育和產業實習,而是產學共同投入資源,合作研究前瞻且有價值的高階應用領域。
總之,拔尖和均富,都是政府要做的,不可偏廢;重點是務實做每件事,不然說得再頭頭是道,也難以濟事。實際上產學雙方可以如何合作呢?留待下一篇再來談。