先有軟體與數據文化,才有AI ver.2020

此文撰於三年多前(2017-07-2),由於最近又有新的文化(遠端工作模式)產生,很多觀念仍然適用,就做了小幅度修改重發。

文化沒有捷徑。圖為貝爾格勒,這裡的歷史街區和建築極具吸引力 photo credit

可能有些人不解,這張歷史街景的照片跟文章有什麼關係,2017 撰文的時候並沒有特別解釋,但心中覺得非常貼合主題。

這是賽爾維亞的首都貝爾格勒,它可能不是很先進,也有很多缺點,但它的歷史街區與建築卻非常有名,這是別的地方學不來的文化累積,乍看跟 AI 文化八竿子打不著,但道理卻是一樣的,不如說,還遠超過常識的一致,因為一般認為 AI 是一種技術,但從最基本的軟體服務開始,我就覺得它更像文化。

機器學習 vs. 製造業

台灣的製造業是頂尖的,所以我第一個想到跟製造業去比較它們的過程有什麼不同,而 machine learning 這個詞,比起 AI 更為貼切。

Icons made by Eucalyp, Becris, Zlatko Najdenovski, Freepik from flaticon is licensed by CC 3.0 BY

其中的差異點有:

  1. 製造產業鏈中完全找不到「資料」的角色
  2. 製造業的軟體(更精確地說是程式)只是做為輔助硬體的工具存在台灣長年把作業系統底層的 driver、燒在硬體裡面的韌體程式,及所有程式碼都歸類在「軟體」,但在這些工廠中也沒有所謂的「軟體工程」;所以即便硬體以外的全部都被稱作軟體,但定位只是「用來輔助硬體的工具」而已。
  3. 製造業的鏈結是單向的,所有的箭頭只為了最後的 3C 產品,一旦產品上市,軟體的成長也幾乎停滯(更新只是為了 hotfix,鮮少增加新功能),並隨著硬體的壽命逐漸衰老而消失。

而軟體、資料、服務與需要人工智慧的產品則是相輔相成、迭代成長,舉幾個例子:

客戶需要服務替他們分析資料、提供 insight,於是利用所需要的資料提供他們軟體服務,在這過程中逐漸累積夠多資料,建構出機器學習分析的模型,進而提供更好的服務、累積更多資料、可以做出更精準的預測模型,如此循環。

又譬如地圖服務的推薦路徑功能:使用者在上面搜尋目的地、服務提供他最快速、距離最短、或最省錢的各種方案,也個別預測所需時間、塞車與否;而每次使用者的資料也會被收集起來,為下次預測模型的訓練做準備。


想做 AI,十年前就得先做好軟體與數據了

在當年 AI 熱門的時候,李開復用以下的句子鼓勵台灣創業:

軟體創業、互聯網、移動互聯網、社群網站四個領域都沒有建樹,而且落後了全球發展。在AI時代來臨時,台灣不要錯過這個最好的創新創業的機會

我相信他並不是要創業家「不做軟體就跳到 AI」,但因為太多這類的觀點都只給了「希望」,卻沒有點出問題(一部分也是媒體推波助瀾),很多創業家與老闆原本就有不切實際的幻想,聽了之後這些幻想更會被加強,天真地覺得:

軟體錯過了,卡位做 web 就好;Web 錯過了,卡位做行動與社群就好;行動與社群錯過了,卡位做大數據就好;現在大數據都還沒做,我們直接做 AI 就好

所以我們到處看得到這類荒謬的想法:

因為我們錯過軟體、大數據,所以現在趕快追上 AI因為我們不擅長軟體,所以用硬體優勢追上 AI

彷彿 AI 跟這些東西毫不相關似的。

只有一種事業可以忽略軟體與數據文化,直接做 AI,但卻有搞頭,那就是 B2VC,只是這個 VC 在台灣可能是「政府」,而投資人就是全民納稅買單。


從封建到帝王,再怎樣都不可能跳過城堡時代

FLAG 這些世界級的公司,近年在 AI 研究的能見度遠大於軟體工程。一方面的確是有一些新的研究突破;但另一方面可能是軟體工程跟喝水一樣自然,沒有太多爆點,另外比起艱澀難懂的軟體工程技術,企業行銷部門與媒體更愛追逐與生活相關的 AI 題材。

帶來的影響就是:有些新創企業被引導走向毫無勝算的 AI 演算法戰爭;另一群傳統企業則對 AI 技術所帶來的效益過度樂觀。

究其原因,矽谷的軟體公司有著遠比台灣「科技業」紮實的軟體工程基礎、而其中大型的軟體公司更是坐擁其他對手完全無法抗衡的資料數量。

下面試著從幾個面向來檢視「跳級」的想法:


硬(背)的技術 vs. 軟的文化

會有「可以跳過」的錯覺,或許是以為軟體與數據是硬技術,而且是「硬背的技術」:能夠照本宣科,有固定流程可以依循。但事實上它們不是,是軟的文化。

人工智慧雖然可以跟硬體結合,但本質上無法逃離軟體服務的範疇。

「軟體服務」,就是由看不見實體的「軟體」與沒有實體的「服務」所組成,而這些正是台灣長年漠視的文化:我們在意的是看得見的包子與看得見的價格;對深遠的影響與內在的價值卻鮮少認真評估,舉例來說,我們可能會在不同產業都看到類似的輕視現象:

美術設計?不就是畫幾張圖?只是我不想畫而已。心理健康?看精神科吃吃藥就好了,再不好一定是他抗壓性差活該。電競?打電動不務正業也能賺錢?一個 app 也要幾十萬?這不是看書自己學一學幾天就會了嗎?

凡是文化,必定得經過一段陣痛改變期、經過大家一起衝突、思考、異中求同、讓步,才好不容易進展到下一階段

譬如選舉:柯文哲曾經說:「對我而言,這不只是一場選舉而已,它更是一場改變政治、改變選舉文化的社會運動。」

聽起來可能覺得很美好,似乎一次選舉就能改變政治、從此過著幸福美滿的日子;但選舉時任何的改變都只是開頭,辛苦的在選上之後,如果沒有持續進行文化的抗爭,幾個月的波瀾很快就會被幾十年的文化打回原形。放在台灣產業的文化也是同樣道理。

台灣是個小島,自然資源成本(土地、環境)在先天上有著絕對的劣勢,同時人口紅利也已經消失,廉價的勞動力優勢不再,所以,不管是軟體、人工智慧、設計、旅遊、文創,要轉型就必須從實體文化走到「價值」文化。

這在 2017 年應該是常識;然而台灣目前的「軟體服務文化」、「產品開發文化」、「數據導向文化」目前都是不及格的狀態,要跳過這些課程,直接進到人工智慧,只怕在「課堂」上會鴨子聽雷。

軟體服務的價值在自己找到痛點並解決,若軟體服務與數據文化不存在,那不管再怎麼拼命套模型,也很難套出一個有價值的服務。

製造業著重在硬體功能必須兜得起來、每個元件有按照規格做好該做的事情;數據服務則必須整個產品一起考量,否則很容易會落得 garbage in garbage out 的下場。


機器學習技能金字塔底層廣且深 ,深厚的地基需求無法忽略

這張是 2014 年就有的示意圖,可以看出機器學習是奠基在 ML Engineer 與 Data Engineer 之上,還不包含最普遍的 Software Engineer;而研究最前緣演算法的 ML Researcher 只是頂端的、最少數的那群人。

通常連象山都沒自信爬得上去的人,應該不會想要去爬玉山主峰。而台灣業界在這十年中並沒有積極培養基礎軟體工程、資料工程的人才;部分新創有在努力,但資源、人數與大企業相比,只能說是聊勝於無。

credit: http://www.anlytcs.com/2014/01/machine-learning-skills-pyramid-v10.html


實務經驗吃重:資料科學仰賴從工作中大量的學習

AI 本質是軟體、它分析的是資料,雖然有時候營利的確不需要好產品(?),但不懂軟體、不知道資料的價值,就無法做出有價值的產品,更遑論營利。

  • 舒適的回頭路:把機器學習、人工智慧當做 API 接起來給硬體用

在沒有軟體與資料的心態之前就學習 AI,不會知道什麼對市場重要、什麼有潛在價值;通常會做的事情就是把機器學習當成 API、當做以前製造業當中的一個元件,接個語音辨識 API 想要賣機器人、或是想要接個影像辨識 API 想要賣各種衣服偵測、異常偵測、物體偵測服務。

但這些不明就裡兜出來能動的模型,常常無法抵抗產品環境的變動,沒有持續利用資料與隨之成長的軟體服務,很快就會失去價值。

最直接能賣的,或許就是這些智慧軟體服務周邊的硬體產品,回到以前的製造業老路,這也是「物聯網」這個名詞很受台灣喜愛的原因之一:新的智慧硬體設備「或許」在未來會有大量需求,因此把人工智慧、服務的部分交給其他人,而台灣繼續著重在製造代工這一塊,也或許可以賺上一筆。

但畢竟當年是硬體主導產品,未來是服務價值主導產品,若只想靠代工製造,提供的價值恐怕有限,企業也很難建立長久的護城河。

  • 資料服務的學習曲線不只陡峭,連入門的機會都很少

那麼我們只要去累積軟體服務與資料的經驗不就好了?

可惜的是這些經驗在學校、學術界極難取得,如同 Adam Gibson 的訪談中所說,很多東西是只有在業界產品、使用 real data 才能學到的,像是你在 Kaggle 就無法涵蓋 ETL、軟體工程、特定領域資料的知識。並且也無法速成。

學校、學術界、Kaggle 學不到,那去業界學呢?

這又回到前面不斷提到的文化問題,台灣業界並不將軟體工程與資料科學視為顯學,因此只有非常少的地方(e.g. 少數跟大企業有真實資料合作的研究室、更少數擁有夠多資料的新創公司)有機會接觸到這些真實資料的產品;多數情況是連大企業都未必有好好收集、處理資料,而台灣人口少、多數以中小企業為主,有足夠資料的公司就更少了。

不管從文化、技能、經驗的角度來看,要跳過「軟體」與「資料」這兩大基礎,卻能做好 AI,都無疑是緣木求魚。


當年台灣政府的對策

當時有一篇 4年內追上 AI 國際腳步的新聞稿,呼應了我說的「跳科技」心態:

全文兩千多個字裡面,「軟體」這個詞沒有出現過;「軟硬體」出現了兩次,但都是著重在硬體基礎建設,看起來「軟」這個字也只是順便提到的。


預計編列的三大 AI 項目


用硬體主導來做 AI

2017 年三月新聞一出,我問:「用 50 億打造 AI 人工智慧研發中心,該不會就只是要買機器?」;四個月之後政府告訴我們:沒錯,「雲端服務與大數據平台」的內容就是砸 50 億買硬體主機,還特別強調 AI 的大腦是晶片。

做 AI 固然需要大量硬體資源與基礎建設,然而若只看到這個層面,就落入了極大的盲點,我們必須問兩個問題:一是政府打造的平台會比國外雲端服務廠商好用嗎?二是會比較便宜嗎?很可能兩者的答案都是否定的。

因此政府蓋廠房的投資,實質效益可能還比不上把這些錢拿來發 AWS/GCP 消費券。

給錢讓產學兩邊都往錯誤的方向努力,會讓狀況變得更糟

剩下的兩個建設項目,為的是能夠兼顧產學雙方的需求:

論學界的先進研究,「用 50 億預算打造『AI創新研究中心』希望整合學界演算、AI 教授學者去招攬國內外人才到台灣來研究」

論產業應用,「編列 20 億預算給『智慧機器人創新自造基地計畫』,可以應用在生技、機械跟醫療器材等領域」

看似既能培養研究人才,又幫助台灣產業,兩端好像能結合供需;然而沒有軟體與數據的文化藍圖,就像是在河的兩邊興建開發案,但是沒人會搭橋,最後西邊蓋起象牙塔、東邊蓋起百貨公司,兩者對彼此毫無幫助。

真正的橋樑是產品,而產品的基礎是軟體服務文化、AI 的競爭優勢是資料。

2017 年台灣政府完全沒有補助到這些基礎層面,反而讓產學都往錯誤的方向努力。:

  • 研究機構的技術無法應用到產業端 -> 再補助更多經費跟機器,讓學界產出更多研究人員、創造更多失業人口。在 2020,我們已經看到大量的 AI 研究領域學生畢業即失業,或是被迫出國尋求更好發展。
  • 有很多企業轉型困難 -> 再補助這些包袱沈重的企業讓他們弄幾個創新專案。然而連軟體跟數據都不存在的企業,也無法從根本上改變什麼。

退一萬步我相信政府或許是美意,而並非只是圖利廠商,但即使如此,我還是認為這些錢省下來補助傳統企業轉型、支持好的新創企業,甚至挪作國防、醫療、社會等預算都可以;雖然未必有 AI 這麼響亮的政績,但都會對台灣更有實質幫助。


Do’s and Don’ts

前面寫了不少悲觀的想法,當然,台灣也不缺我一個人去批評,所以最後試著提供個人愚見,希望改變一些陳舊的想法、也引起更多人的重視:

AI 要應用在產業,必須要能回答以下問題:

還沒有商業模式的新創:需要用什麼資料、解決什麼問題?

有什麼問題是有資料之後,可以雇用「人」來解決痛點的嗎?有什麼資料是「人」可以拿來分析並創造價值的嗎?

這裡都講用「人」而不是「人工智慧」,是因為很多服務要解決的問題,都是可以從透過人大量、簡單地、重複地分析資料來做,只是機器學習「有機會」讓服務更精準、更有效率。

所以在人工智慧之前,不妨先想想「工人智慧」可以做到什麼:比如影像監視、圖片物體辨識、語音辨識、自動駕駛,請人類來做,可以提供有價值的服務嗎?如果有,機器來做可以做得比人更有效率、或是做到差異化嗎?

如果沒有辦法回答這些問題的話,再強的模型都沒用,也沒必要去想 AI。

還在殺豬公的企業:要怎麼實現外太空的應用?

長年缺乏的軟體環境與無結構化的資料,要如何提供養分給機器學習?業界知道資料的重要性嗎?業界的 training data 哪裡來?大數據喊了很久,業界有在積極收集、處理、分析資料嗎?

企業主不應該輕易放棄收集資料,如果沒有頭緒,這篇 Brands are Hiring Chief Data Officers for all the Wrong Reasons (And What to Do About it) 給了一些收集資料的方向,是個不錯的參考。

怎麼導入 AI?CNN, RNN 等這些學界正夯的機器學習模型如何應用在既有產業?以台灣業界長年忽視軟體產業的體質,如果幾年內暴增上千個優秀的研究人員,有上萬個軟體的工程師能做好基礎建設嗎?

目標放在上太空固然是好事,但這類務實面的問題百廢待舉,我們每天要做的事,應該是考慮如何讓自己殺豬公的科技樹跟上,而不是興致勃勃地談那還上不去的外太空。


不要一窩蜂追求最熱門的技術,深度學習不是萬靈藥

不要民粹式地一窩蜂擠向頂尖研究、或盲目追逐任何 buzz word。頂尖研究很好,但要有對應的基礎支持。

硬體當然是基礎的一部分,但如前面所提,軟體的基礎是個大洞,即使有這麼多非資訊本科系的人才都拼命想做 AI,台灣每年大量的資訊科系畢業生卻都以投入硬體產業鏈居多,目前的軟體生態系要支持 AI 產業,恐怕還是太脆弱。

近年深度學習(deep learning)正夯,在校園徵才時聽聞不少實驗室都開始在做深度學習,可以說,只要是理工的實驗室,做深度學習就一點也不奇怪;但我卻發現有些案例只專注於研究深度學習,其他基礎的機器學習模型並不熟、甚至不會。或許這只是特例,但我卻開始擔心這是常態。

就像機器學習產品必須建構在軟體服務之上,深度學習模型也是建構在那些「不時髦的」機器學習理論基礎之上;如果連基本理論都不懂,那表面上說在研究深度學習,實際上只是參數調教罷了。


用「兜」的產品沒有意義,有價值的服務得從文化改革開始

以硬體出發的思維很容易落入簡單的組裝邏輯:「給硬體就能生出 Alpha Go」、「給企業更多的研究人才就會迸出 AI 產品」、「拿硬體去套 deep learning 的 API 就能賣錢」。

但比起「兜得出什麼產品」,更重要的是「你的產品想解決什麼問題」,如果沒有領悟這一點,就是「為了做 AI 而做」,不會做好產品。

最後,雖然重視軟體與數據不見得就做得起 AI;但任何組織若喊著 AI,實際上仍然不重視這兩樣基礎的重要性,那是毫無疑問會失敗的。