先有軟體與數據文化,才有AI(ver.2020)
此文撰於三年多前(2017-07-29),由於最近又有新的文化(遠端工作模式)產生,很多觀念仍然適用,就做了小幅度修改重發。
可能有些人不解,這張歷史街景的照片跟文章有什麼關係,2017 撰文的時候並沒有特別解釋,但心中覺得非常貼合主題。
這是賽爾維亞的首都貝爾格勒,它可能不是很先進,也有很多缺點,但它的歷史街區與建築卻非常有名,這是別的地方學不來的文化累積,乍看跟 AI 文化八竿子打不著,但道理卻是一樣的,不如說,還遠超過常識的一致,因為一般認為 AI 是一種技術,但從最基本的軟體服務開始,我就覺得它更像文化。
機器學習 vs. 製造業
台灣的製造業是頂尖的,所以我第一個想到跟製造業去比較它們的過程有什麼不同,而 machine learning
這個詞,比起 AI 更為貼切。
其中的差異點有:
- 製造產業鏈中完全找不到「資料」的角色
- 製造業的軟體(更精確地說是程式)只是做為輔助硬體的工具存在
台灣長年把作業系統底層的 driver、燒在硬體裡面的韌體程式,及所有程式碼都歸類在「軟體」,但在這些工廠中也沒有所謂的「軟體工程」;所以即便硬體以外的全部都被稱作軟體,但定位只是「用來輔助硬體的工具」而已。 - 製造業的鏈結是單向的,所有的箭頭只為了最後的 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 只是頂端的、最少數的那群人。
通常連象山都沒自信爬得上去的人,應該不會想要去爬玉山主峰。而台灣業界在這十年中並沒有積極培養基礎軟體工程、資料工程的人才;部分新創有在努力,但資源、人數與大企業相比,只能說是聊勝於無。
實務經驗吃重:資料科學仰賴從工作中大量的學習
AI 本質是軟體、它分析的是資料,雖然有時候營利的確不需要好產品(💩),但不懂軟體、不知道資料的價值,就無法做出有價值的產品,更遑論營利。
- 舒適的回頭路:把機器學習、人工智慧當做 API 接起來給硬體用
在沒有軟體與資料的心態之前就學習 AI,不會知道什麼對市場重要、什麼有潛在價值;通常會做的事情就是把機器學習當成 API、當做以前製造業當中的一個元件,接個語音辨識 API 想要賣機器人、或是想要接個影像辨識 API 想要賣各種衣服偵測、異常偵測、物體偵測服務。
但這些不明就裡兜出來能動的模型,常常無法抵抗產品環境的變動,沒有持續利用資料與隨之成長的軟體服務,很快就會失去價值。
最直接能賣的,或許就是這些智慧軟體服務周邊的硬體產品,回到以前的製造業老路,這也是「物聯網」這個名詞很受台灣喜愛的原因之一:新的智慧硬體設備「或許」在未來會有大量需求,因此把人工智慧、服務的部分交給其他人,而台灣繼續著重在製造代工這一塊,也或許可以賺上一筆。
但畢竟當年是硬體主導產品,未來是服務價值主導產品,若只想靠代工製造,提供的價值恐怕有限,企業也很難建立長久的護城河。
- 資料服務的學習曲線不只陡峭,連入門的機會都很少
那麼我們只要去累積軟體服務與資料的經驗不就好了?
可惜的是這些經驗在學校、學術界極難取得,如同 Adam Gibson 的訪談中所說,很多東西是只有在業界產品、使用 real data 才能學到的,像是你在 Kaggle 就無法涵蓋 ETL、軟體工程、特定領域資料的知識。並且也無法速成。
學校、學術界、Kaggle 學不到,那去業界學呢?
這又回到前面不斷提到的文化問題,台灣業界並不將軟體工程與資料科學視為顯學,因此只有非常少的地方(e.g. 少數跟大企業有真實資料合作的研究室、更少數擁有夠多資料的新創公司)有機會接觸到這些真實資料的產品;多數情況是連大企業都未必有好好收集、處理資料,而台灣人口少、多數以中小企業為主,有足夠資料的公司就更少了。
不管從文化、技能、經驗的角度來看,要跳過「軟體」與「資料」這兩大基礎,卻能做好 AI,都無疑是緣木求魚。
當年台灣政府的對策
當時有一篇 4年內追上 AI 國際腳步的新聞稿,呼應了我說的「跳科技」心態:
全文兩千多個字裡面,「軟體」這個詞沒有出現過;「軟硬體」出現了兩次,但都是著重在硬體基礎建設,看起來「軟」這個字也只是順便提到的。
用硬體主導來做 AI
2017 年三月新聞一出,我問:「用 50 億打造 AI 人工智慧研發中心,該不會就只是要買機器?」;四個月之後政府告訴我們:沒錯,「雲端服務與大數據平台」的內容就是砸 50 億買硬體主機,還特別強調 AI 的大腦是晶片。
做 AI 固然需要大量硬體資源與基礎建設,然而若只看到這個層面,就落入了極大的盲點,我們必須問兩個問題:一是政府打造的平台會比國外雲端服務廠商好用嗎?二是會比較便宜嗎?很可能兩者的答案都是否定的。
因此政府蓋廠房的投資,實質效益可能還比不上把這些錢拿來發 AWS/GCP 消費券。
給錢讓產學兩邊都往錯誤的方向努力,會讓狀況變得更糟
剩下的兩個建設項目,為的是能夠兼顧產學雙方的需求:
論學界的先進研究,「用 50 億預算打造『AI創新研究中心』希望整合學界演算、AI 教授學者去招攬國內外人才到台灣來研究」
論產業應用,「編列 20 億預算給『智慧機器人創新自造基地計畫』,可以應用在生技、機械跟醫療器材等領域」
看似既能培養研究人才,又幫助台灣產業,兩端好像能結合供需;然而沒有軟體與數據的文化藍圖,就像是在河的兩邊興建開發案,但是沒人會搭橋,最後西邊蓋起象牙塔、東邊蓋起百貨公司,兩者對彼此毫無幫助。
真正的橋樑是產品,而產品的基礎是軟體服務文化、AI 的競爭優勢是資料。
2017 年台灣政府完全沒有補助到這些基礎層面,反而讓產學都往錯誤的方向努力。:
- 研究機構的技術無法應用到產業端 -> 再補助更多經費跟機器,讓學界產出更多研究人員、創造更多失業人口。在 2020,我們已經看到大量的 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,實際上仍然不重視這兩樣基礎的重要性,那是毫無疑問會失敗的。