iT邦幫忙

2021 iThome 鐵人賽

DAY 2
0

在過去的5-7年當中,ML已經不再只限於研究人員能夠接觸、使用,越來越多的AI/ML工具以及產品出現,使得能夠談論這個領域的人變多了,踏入ML工作的門檻也逐漸降低。同時我們也看得出軟體業這幾年,在devops、產品管理這一塊進步得非常多,使得軟體的工作變得複雜。這樣的改變不管對於ML engineer、data scientist或是devops都是一件辛苦的事情。

當ML從模型走向產品,成為能夠面對市場的產品時,許多決策者和專案管理人員開始覺得無所依靠。過去在數位轉型的時候,已經學習了一次怎麼跟數位產品合作、怎麼跟軟體產品合作。而現在則是要懂得區份,ML產品與過去大家熟悉的軟體開發產品有什麼不同。讓自己可以更快的學習、適應未來產業的狀況。

接下來讓我們從ML產品與軟體產品的(1)使用目的(2)使用者歷程(3)開發者技能樹,這三個面向來討論,這兩者的同與異。

1. 從使用目的來看

相同:透過使用電腦、數位載具,不管是企業、學校、個人,都能夠ML與軟體專案當中得到益處。電腦的使用,在計算、記憶上面都可以借用電腦的軟硬體來幫我們突破人類既有的限制,提高了許多方便性。並且在網路的利基點上,你能夠跨區域性的,重複使用先前在另外一個城市、國家設定好的環境,享有同樣品質的服務,達到相同的目的。這些益處也幫助使用者在使用產品的過程,能夠更高效率的完成日常生活所需要的事情,讓省下來的時間能夠做更具有創造性的活動。提供了商業價值,也開啟文化與藝術新的面向。

不同:軟體專案能夠幫助你做的,是移除日常生活當中的重複性,幫你透過數位化的方式保存過去需要有紙本記載的資料,想想word、excel、outlook的核心功能有哪些,大概就可以有一些概念。而在ML 專案當中,專注的則是從數據當中尋找規則,需要有足夠數量的資料才能夠開展的一個服務。這個不同處也使得企業在導入數位產品與ML產品的時間也會不同,前者可以在公司剛開立的時候,就開始使用,例如客服系統、ERP等等,後者則是要等到累積用戶資料、行為觀測、歷史紀錄等資料數量足夠多才比較適當引入、開發。

2. 從使用者歷程(user journey)來看

相同:身為一個使用者可以在不同環境享有這兩種產品的好處,像是電腦、筆電、手機等數位用品。現在這兩者的產品也跟著擴展到IOT、嵌入式系統、邊緣裝置(edge device)、smart home等等。在生活當中的各式場景都能夠使用到這兩種產品。

不同:ML的產品大部分不會獨立存在,而是依賴、加強既有的數位產品。舉例來說,在使用gmail的這個服務,本身是數位產品的範疇,幫助你從實體郵件,進化成數位郵件的體驗。讓你用一台電腦的空間,取代過去好幾個櫃子的紙本紀錄。而在gmail裡面,有一些像是在信件寄來的時候幫你自動歸到垃圾信件、或是寫信時自動幫你完成想寫的句子,這兩個都是ML產品的範疇。

所以你大概能夠想見,ML產品的存在,是為了讓原有的數位產品體驗更上一層樓而有的存在。也因此企業在評估ML產品的效益時,除了其本身模型是否有提供對使用者有助益的預測及推薦,也需要不斷調整ML功能相對應的前端顯示,如何讓使用者更沒有障礙的去探索、發現這些新功能,而ML產品推送的預測結果,要如何最好的嵌入在使用者的流程中,讓大家可以順暢的使用這兩個產品所帶來的益處。

3. 從開發者的技能樹來看

相同:不管是軟體產品或者是ML產品,在背後都需要有技術開發人員支撐,這些開發人員的共通語言,就是他們在工作上使用的程式語言。這些技術人員也都需要能夠將市場的需求轉換成程式開發的規格,讓這些產品在上線之後能夠交付相對應的價值。

不同:開發ML產品的,不管是ML researcher, data scientist, ML engineer等職位,大部分都是使用python來作為開發語言,其職責大多關注在如何將商業問題轉換成ML問題、訓練模型、模型評測。如下圖所顯示,而軟體開發工程,則是包含網站前後端、基礎架構、資料庫以及安全等問題。要能夠發展成ML的全端工程師,能夠照顧從模型到部署上線; 跟軟體開發的全端工程師,所需要養成的技能以及時間是無法相對比較的。

GreekDataGuy 繪製軟體工程與ML的範疇
*圖片為GreekDataGuy繪製

稍微延伸一下,來說說之所以ML產品的開發團隊會不好找,則主要基於以下兩個原因:
(1) data scientist(資料科學家)的養成,學習過程並不總是有包含軟體開發的基礎知識,而是多專注於數理能力、實驗設計的範疇上。因此對於程式碼的維護、軟體產品的lifecycle跟DevOps 實踐就比較沒有完整的概念。
(2) 機器學習演算法的開發,算是在ML軟體裡面相對穩定且成熟的部分,幾乎每個資料科學家都知道自己在演算法與實驗階段要做什麼。但是載有訓練模型之後,關於部署的實作,以及模型帶來的商業影響,則沒有太多的想法。一個好的資料科學家也必須要能夠說得出,其工作的產業,有哪些面向之於其他產業是特別的,哪些模型與哪些資料是能夠為自己的公司或自己的研究題目帶來助益的。

在ML專案上技術上面的細節,之前我寫了另外一篇文章,整理了史丹佛的cs329s課程,其中一節談到兩個專案在版本控制, 測試資料, 資料中毒三個方面的不同之處。大家可以點過去看看。

結語

我們今天透過三個面向談論軟體開發產品跟機器學習產品的不同。明天來談談,知道這些不同的層面之後,要如何幫助你的ML開發團隊落地。

Reference
[1]. Machine Learning Is Getting Easier. Software Engineering Is Still Hard, https://towardsdatascience.com/machine-learning-is-getting-easier-software-engineering-is-still-hard-d4e8320bc046
[2]. The Rise of the term MLOPs, https://towardsdatascience.com/the-rise-of-the-term-mlops-3b14d5bd1bdb


上一篇
學習MLOps前暖身操:why, what, who?
下一篇
寫給MLOps人才培育苦手 | MLOps落地指南 - 團隊篇
系列文
談MLOps - 模型、專案架構、產品化及維運29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言