【撰文:詹峻陽 】
細想每個人工智慧的應用場景,若要從「雲」(雲端)到「端」(終端裝置),走過軟體、韌體、硬體,乃至於資料與服務邏輯串接,從頭至尾軟、硬整合一條龍提供服務,就需要許多不同的系統開發環節,但各環節之間卻又環環相扣。
單以人工智慧的開發框架2來說,該選擇哪一種框架訓練模型,方便開發者直接將應用模型放到終端去推論、提供真正的智慧服務,就是一個重要關鍵。
「對軟體或網路服務開發者來說,終端硬體通常不是我們熟悉的環境。」Deep Sentinel共同創辦人陳昭穎說。「我們需要晶片上面已經有完整的作業系統,可以跑特定的開發框架,例如Google的TensorFlow或是輝達(Nvidia)的CUDA,讓我們可以把訓練好的模型與終端應用的程式邏輯放上去。」
使用者多寡、雲服務支援度,牽動技術路線策略選擇
推論一定發生在訓練之後,也一定基於訓練的成果。訓練,是人工智慧應用的第一步,這項需要大量的數據儲存與計算量的工作流程,對雲服務大廠來說,是必然且龐大的市場需求。每家大廠都積極推廣,希望能夠將自身的生態系滲透進入更多的智慧應用,所以亞馬遜、Google、微軟甚至是Facebook無不卯足全力推出相應的開發框架,積極吸引想要投入人工智慧應用開發的開發者、新創、各類參與企業使用他們的開源工具。
由於多數的深度學習演算法仍在發展中,每每從學術理論到現實環境實作,需要耗費大量的理解時間與開發人力,專門將不同演算法彙整、實現成特定工具集,也因此,讓想要訓練資料的開發者不需要花費時間自己建造工具,就像取用不同螺絲起子般,輕鬆使用不同演算法的開發框架的確有其必要性。
然而如何選取開發框架,牽涉到一系列的技術路線策略選擇,也往往令企業頭大。
人工智慧應用讓開發團隊的戰線拉得比過去僅提供軟體或網路服務都長,而且每個環節都更碎片。
-Deep Sentinel共同創辦人陳昭穎
首先,開發人工智慧演算法的常見程式語言就是第一個門檻。「提供智慧服務的企業通常不會僅需要人工智慧這項應用,原先服務開發已經使用的語言環境是否可以直接接軌就是第一個門檻。」程沛科技執行長王建興說,不同的開發語言常因為適用於不同的應用環境而吸引不同的開發者,也因此,穩定的開發者來源也是企業選擇技術路線必須考慮的長期因素。
除此之外,縱然多數主流的人工智慧開發框架都已經開放其程式碼,但不同框架的社群大小、雲服務的支持程度、工具是否好用易上手、無論是訓練或推論端所需的加速晶片是否支援,都是考慮重點。
不同開發框架的社群大小,通常意味著有多少開發者應用。越多開發者在這個開發框架進行各種改寫或整理,除了表示這個開發框架在較短時間就有機會應用最新的深度學習演算法外,也意味著有更多同好可以討論、協助解決開發上的問題。
對企業來說,這同時也是人才來源較多、支援廠商可能也較多的一個重要訊號。除此之外,為了避免被鎖定(Lock-in)在一個特定的開發框架,導致沒有轉換其他工具的彈性,是否容許將訓練模型轉換到其他不同的工具也是考量點之一。
「當然性能與價格比也是關鍵!」陳昭穎說,「就算是性能好的晶片,可能因為耗電量高或是價格昂貴,甚至因為開發團隊沒辦法很快將訓練完成的人工智慧模型與服務程式裝上,而忍痛放棄。」
自行開發找人又耗時,外包有技術外流和資安疑慮
縱然大部分的開發工具都已經開源,意味著企業有機會自行建立開發團隊來發展人工智慧的相關智慧應用,但企業還是一而再、再而三的面臨要自己做,還是外包給特定團隊開發的選擇。自行開發通常掌控度最高,開發進度與設計邏輯都可以掌握在自家手上,但往往也意味著要現有團隊學習開發人工智慧應用的新技能,或是必須招募新的團隊成員,可能面臨不同企業的商業文化與開發慣性之間的磨合,這些都是時間成本。
除此之外,自行開發也有可能面對訓練資料不足,不是這麼容易就可以蒐集一個特定語庫或圖庫來進行訓練。
「人工智慧應用是碎片化的,分散在很多不同服務流程裡。」一位大型金控的技術負責人強調,「你必須把每個流程仔細拆開,確認不同階段所須對應的工具,再來考慮這個工具應該選用什麼樣的框架開發,應該內部做還是外部做。」
他進一步解釋:「以語音辨識相關智慧應用來說,這並非金融服務的核心項目,如果市場上已經有比較好的『語音轉文字』或『文字轉語音』工具,我們就可以考慮直接取用。」
「但是某些服務可能牽涉到企業所蒐集的個人資料處理,例如以機器學習預測客戶這次進線可能需要什麼樣的服務,這部分外包可能就有資料安全與核心知識邏輯流出的疑慮,就得自建團隊做資料分析。」這位金控技術主管說。
「而且所有問題都會在軟體引爆,技術團隊要有能力除錯。」陳昭穎解釋,如果要賦予監控攝影機人工智慧的相關應用,開發團隊就必須將軟體與網路服務邏輯,寫在攝影機上所加裝的運算晶片作業系統中。但硬體不聽話或服務中斷,問題可能發生在裝置過熱、硬體設計本身的問題、也可能韌體沒寫好,或是軟體設計本身的錯誤。無論如何,所有錯誤最終都會呈現在軟體或服務無法運作上,也因此,從軟體或服務起家的技術團隊,需要有硬體設計能力的顧問協助設計,幫忙排除硬體或韌體的問題,協助軟體團隊找出真正的問題;軟體團隊也必須從中學習必須直接與硬體、韌體和平共處的本事。
「為此我們也需要付出代價。」陳昭穎強調,除了與製造商之間的談判,也需要更長的產品開發與調整週期,新創團隊甚至可能必須為此招募硬體工程師或尋求與硬體設計團隊合作,協助原本擅長開發軟體與網路服務的團隊整合產品。陳昭穎苦笑說:「人工智慧應用讓開發團隊的戰線拉得比過去僅提供軟體或網路服務都長,而且每個環節都更碎片,讓人很懷念那過去僅需要在雲上開發相關應用服務的創業年代。」