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

Leafwind
對數據與資料有著高度好奇心,喜歡研究資訊落差、數據操弄與資料分析等議題,現為新創軟體工程師,每天在人工智慧與現實數據拉扯,閒暇時經營部落格《all about data》。

沒有軟體工程文化、不重視數據,就沒有絲毫追趕 AI 的可能性。

作者註:這篇文章篇幅不短(幾個月前開始想寫,實際動筆花了數週),但也沒有好方法分成上下篇,所以若您在通勤等零碎時間中,看到這篇文章覺得有興趣,不妨先加入書籤,否則可能會消化不完。

Machine learning vs. Manufacturing

原本圖中的標題要寫的是AI(人工智慧),不過AI是一個相對模糊的名詞。與其拿來跟 manufacturing (製造)對照,用 machine learning(機器學習)這個比較能代表「過程」的詞,會更適合一些。

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」,但因為他只給了「希望」,卻沒有點出問題。

很多創業家與老闆原本就有不切實際的幻想,聽了這些之後,這些幻想更會被加強,甚至天真地覺得:

軟體錯過了,卡位做Web就好;如果Web錯過了,卡位做行動與社群就好。

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

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

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

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

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

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

FLAG(Facebook、LinkedIn、Apple、Google)這幾家世界級的公司,近年在AI研究的能見度方面,遠大於軟體工程。

一方面的確是有一些新的研究突破,但另一方面則可能是軟體工程跟喝水一樣自然,沒有太多爆點;比起艱澀難懂的軟體工程技術,企業行銷部門與媒體更愛追逐與生活相關的AI題材。

(比較陰謀論的想法是:部分企業為了引導潛在競爭者走向毫無勝算的AI戰爭,但這是題外話)。

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

以下試著從幾個面向,來看開頭那段(或許不少人都有的)想法有多荒謬:

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

會有「可以跳過軟體」的錯覺,或許因為以為軟體與數據是硬技術,而且是「硬背起來就好的技術」;所以能夠照本宣科,有固定流程可以依循。

但事實上它們是「軟的文化」;人工智慧雖然可以跟硬體結合,但本質上無法逃離軟體服務的範疇。

「軟體服務」是由看不見實體的「軟體」、與沒有實體的「服務」所組成,而這些正是台灣長年漠視的文化;我們真正在意的,是看得見的包子與看得見的價格,對深遠的影響與內在的價值,卻鮮少認真評估。

美術設計?不就是畫幾張圖?只是我不想畫而已。

心理健康?看精神科吃吃藥就好了,再不好一定是他抗壓性差,活該。

電競?打電動不務正業也能賺錢?

一個 app 也要幾十萬?這不是看書自己學一學幾天就會了嗎?

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

譬如選舉。台北市長柯文哲曾經說:

對我而言,這不只是一場選舉而已,它更是一場改變政治、改變選舉文化的社會運動。

不懂的人,還會覺得是個成功的故事,從此過著幸福美滿的日子。但選舉時任何的改變都只是開頭;辛苦選上之後,如果沒有持續進行文化的抗爭,幾個月的波瀾很快就會被幾十年的文化打回原形。

而產業的文化,也並沒有比較輕鬆;不如說,整個台灣的文化都是類似的問題。

台灣是個小島,自然資源成本(土地、環境)在先天上有著絕對的劣勢,同時人口紅利也已經消失,廉價的勞動力優勢不再。

不管是軟體、人工智慧、設計、旅遊、文創,要轉型就必須從實體(硬體)文化走到「價值」文化。

十年前或許大家半信半疑,但在2017年的現在,這應該是很基本的常識。

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

軟體服務的價值,在於自己找到痛點並且解決

若軟體服務與數據文化不存在,那不管再怎麼拼命套模型,也很難套出一個有價值的服務。

製造業著重在硬體功能必須可以整合、每個元件都按照規格做好該做的事情;而數據服務則必須「端至端」(end-to-end)整個系統一起考量,否則很容易會落得資訊業界所謂「垃圾進、垃圾出」的下場。

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

這張國外三年半前就有的示意圖,可以看出機器學習是奠基在「ML Engineer」(機器學習工程師)與「Data Engineer」(資料工程師)之上。

這還不包括最普遍的「Software Engineer」(軟體工程師);而研究最前緣演算法的「ML Researcher」(機器學習研究員)只是頂端的、最少數的那群人。

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

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

AI 本質是軟體、它分析的是資料。

雖然有時候營利的確不一定需要好產品(唉),但不懂軟體、不知道資料的價值,就無法做出有價值的產品,更遑論營利?

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

在沒有軟體與資料的思維之前就學習AI,不會知道什麼對市場重要、什麼有潛在價值。

這類人士通常會做的事情,就是把機器學習當成API(程式介面)、當做以前製造業當中的一個元件,接個語音辨識API就想賣機器人,或是接個影像辨識API就想賣各種衣服偵測、異常偵測、物體偵測之類的服務。

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

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

但畢竟當年是硬體主導產品,以後恐怕會是服務價值主導產品,若只想靠代工製造,實在令人擔憂。

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

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

可惜的是這些經驗在學校、學術界極難取得,如同Adam Gibson在訪談中所說的,很多像是ETL(資料抽取轉換處理)、軟體工程等特定領域資料的知識,是只有在業界實際做產品才能學到的。

而且很遺憾地,這些也都無法速成:

資料科學終究是一門必須靠實際資料來學習的專業。Kaggle平台的出現,確實帶來了一些改變,但它的主要目的在於建立最好的機器學習模型;而這個部分並沒有涵蓋到ETL或軟體工程。

……問題在於,當你從事資料科學工作的時候,必須懂得如何跟資料來源溝通;你必須學習如何分析屬於特定學術領域的資料,也必須知道趨勢正在往好的方向、或是壞的方向走。

所以,要學的東西真的很多,你不可能像變魔術一樣,一下就全部學會了。

— Adam Gibson,Skymind共同創辦人、技術長

如果在學校、學術界、甚至Kaggle都學不到,那去業界學呢?

這又回到前面不斷提到的文化問題:台灣業界並不將軟體工程與資料科學視為顯學,因此只有非常少的地方(例如少數跟大企業有真實資料合作的研究室、更少數擁有夠多資料的新創公司)有機會接觸到這些真實資料的產品。

多數情況是,連大企業都未必有好好收集和處理資料,更遑論台灣是以中小企業為主的國家?

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

台灣政府的對策

這篇文章寫到一半,又看到了一份想要「跳科技」的新聞稿:〈陳良基︰4年內追上AI國際腳步〉,全文約2400個字(註:貼上Google Doc算的)裡面,「軟體」這個詞沒有出現過;其中出現兩次「軟硬體」,但「軟」這個字也只是順便的。

預計編列的三大 AI 項目

硬體主導的陰霾仍然揮之不去

台灣博士黃士傑近期回台灣就坦言,AlphaGo棋能下得那麼快,主因是Google提供TPU(機器學習定製晶片)讓它能快速學習及演變出新招數,棋力才能大增。AI要運作奏效,最重要還是「頭腦運作要快」、也就是輸入的資料數據演算要更快速,才能與思考、推理結合一起。

三月時新聞一出,我問:「用50億打造AI人工智慧研發中心,該不會就只是要買機器?」

四個月之後,政府告訴我們:「雲端服務與大數據平台」的內容就是砸50億買硬體主機。」(還特別強調AI的大腦是晶片)

中國有霧霾,台灣則是有看不見的心霾:一片揮之不去的硬體遺毒,長年籠罩著台灣揮之不去。

乍看之下產學端都考慮了,但卻看不到連接的橋樑

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

論學界的先進研究:

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

論產業應用:

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

看似既能培養研究人才、又幫助了台灣產業,兩端好像能結合供需;但如果有認真看這篇文章前半段,部長兩千多字的採訪也讀完,就會發現盲點:

沒有軟體與數據的文化藍圖,就像是在河的兩邊興建開發案,但是沒人會搭橋,最後西邊蓋起象牙塔、東邊蓋起百貨公司。

政府要鼓勵大家去想,而不是給錢讓兩邊玩自己的就結束了

有人會說:政府不應該告訴企業要解決什麼問題,產業營利、轉型是他們自己的責任。

誠然,政府不應該替企業煩惱這些事情,但也絕對不該只是砸錢產出一堆研究人員、再砸錢買廠房給大家用,最後兩邊搭不起來。

在目前這個時間點,我看到的不是鼓勵造橋,而是回過頭去補助既有的包袱,讓他們用以前的方法做事情:

  1. 研究機構的技術無法應用到產業端 ⇒ 再補助更多經費跟機器,讓學界產出更多研究人員(創造更多失業人口?)
  2. 有很多企業轉型困難 ⇒ 再補助這些包袱沈重的企業讓他們弄幾個創新專案(連軟體跟數據都不存在的企業,要怎麼養人才?)
  3. 不知道錢該怎麼花 ⇒ 先買機器、蓋工廠就對了(標準的製造業思維,而非服務業)。

當然,目前也只是從媒體報導的紙上談兵,去觀察人工智慧計畫而已;我還是很希望以後能夠被政府狠狠地打臉,說這些他們都考慮到了,是我太天真。那樣的話,表示台灣還有一點希望。

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?CNNRNN等這些學界正夯的機器學習模型,如何應用在既有產業上?以台灣業界長年忽視軟體產業的體質,如果幾年內暴增上千個優秀的研究人員,上萬個軟體工程師,能做好基礎建設嗎?

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

回頭做好基本的軟體與數據文化

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

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

目前的軟體生態系要支持AI產業,恐怕還是太脆弱。

不要一窩蜂追求最夯的研究議題,深度學習不是萬靈藥

近年深度學習(deep learning)正夯,在校園徵才時聽聞不少實驗室都開始在做深度學習;可以說只要是理工的實驗室,做深度學習就一點也不奇怪。

但我卻發現,有些案例只專注於研究深度學習,其他基礎的機器學習模型並不熟、甚至不會;或許這只是特例,但我卻開始擔心這是常態。

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

不是什麼東西都用「兜」的,有價值的服務得從文化改革開始

「給硬體就能生出 Alpha Go」、「給企業更多的研究人才就會迸出 AI 產品」、「拿硬體去套 deep learning 的 API 就能賣錢」。

所有認為「兜一兜就有」的人都應該想想,自己心中那個模糊的「AI」到底想解決什麼問題,戳破這些不切實際的幻想之後,才能正視問題。

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


喜歡我們的文章嗎?按讚立即加入粉絲團 :)

推薦您也參考

獎勵作者

歡迎您以點數獎勵作者:

關於點數的獲得與使用方式,請參閱說明