人工智慧產品/專案管理經驗雜談(上)

--

Photo by Levart_Photographer on Unsplash

隨著2022/2023 ChatGPT的成就受到世界矚目,我相信人工智慧又重返話題之鋒。個人從2017年開始接觸電腦視覺(Computer vision, CV)的產品與專案管理,到2020年接觸ML數值型的應用,主要提供銷售預測和分群分類等的解決方案。直到2023加入倫敦一間專注於智能決策(Decision Intelgence, DI)的新創公司。經歷了不少迂迴的專案,過程一直在探索該如何管理也輔助團隊往目標前進。

這篇文章我應該不會講太多技術面的東西,我會主要分享團隊角色的組成和責任,也會分享一些商業目標管理要點,以及Stakeholder(利害關係人)期望管理等。我自己也還在探索的旅程,非常歡迎大家留言一起討論或是提出不同的想法。由於篇幅可能會太長,我將會分上下兩篇來寫。上篇著重於技術角色的職能,下篇我將會敘述專案和產品經理的技能和責任多做敘述。也將會分享我是怎麼設定目標,和如何做利害關係人管理

團隊組成

我覺得要完成一個產品/專案,團隊成員應該分成兩大面向。商業管理和技術人才(本來想把商業和管理分開討論,但可能會太細,文章會太長)。我會把角色分得很細,但並不是說一定都要有這些人才有辦法產出,很多時候會有人身兼數職。可以把下面的角色想像成各種技能組,而我列舉的人才代表把這個專一技能發展到極致的樣子。有些奇才懂商業懂管理又懂技術,那他很可能靠自己就可以完成大業(?)不過在組成團隊的時候也必須考量當職能分的越細代表團隊合作的溝通成本越大,而把這些工作內容聚集於一人時,代表開發的速度和資源利用將受限。找到其平衡就是管理者展現實力的時候了。

技術人才

資料科學家 (Data Scientist, DS)

資料科學家絕對是這個時代最帥氣的職稱之一。他們代表了AI產業的靈魂,也是專案或是產品成敗與否的核心角色。一個稱職的資料科學家需要具備對演算法的理解與應用、也需要理解資料處理和應用、對於資料洞鑒的敏感、最重要的是產業知識。產業知識是最難獲取一環,而其重要的原因是若缺乏產業知識變很難提出能夠被客戶接納的解決方案或是產品。但也是一個雞生蛋、蛋生雞的問題,所以我覺得學習速度舉一反三的能力格外重要。我個人覺得這是很吃工作經驗技術實力的角色。

資料科學家可能來自很多背景,傳統的學科的話主要是資訊工程(電腦科學)、統計、數學。而目前也有很多直接培養資料科學家的系誕生,但我目前直接沒接觸者背景的人才,所以我也不多做評論。我可以分享我目前合作過,我個人覺得很稱科學家一職的經驗,而目前只有兩個人是讓我覺得非常稱職的人。一個是統計博士,在某大組裝廠約有5年經驗,在博士期間有很多的業界合作經驗。稍微深入了解AI的人應該都會知道,其實現在的AI其實就是很多統計模型的升級版,只不過配合上運算能力很強的電腦,讓過去已經有的概念得以在技術上實現。我合作的這位統計博士因為很熟悉各種演算法,所以他有辦法除了參數調整以外有很多的演算法修正的能力,甚至是結合再創造的可能。如果是產品開發我覺得擁有這樣的技能的人才是絕對必要的。不然充其量就只是一個調參數和試不同模型的公司而已。不是說這樣不好,都必須回到該公司的商業模型。但如果是想打造技術獨佔的公司來說,這樣的人才是不可或缺的角色。

我另外一個合作過的是一位太空物理博士,後來讀了MBA,也在NASA當過約六年的研究員(是真正的科學家啊啊啊啊啊)。他其實不是資料科學家職稱,但透過跟他的合作我大概見識到一個理解商業運作和技術的人可以創造什麼價值,這類人才很適合在B2B解決方案或是專案導向的公司,他們有辦法準確的成為技術與商業需求的橋樑,知道如何指引技術團隊提供正常人聽得懂看得懂的成果。他也理解資料科學產出的過程。但我跟他的合作目前才大約三個月,可能未來我有更多心得的時候可以在深入討論專案交付的差異。

機器學習工程師 (Machine Learning Engineer, ML Eng)

如果要簡單的敘述機器學習工程師一職,我會覺得這個角色很像是資料科學的後端/系統工程師。這類人才也大多是資工CS背景,我也看過數學、統計或電機背景的ML工程師。如果是產品導向的公司,ML工程師主要的指責是ML的流程(MLOps),理解演算法的特性,並且能設計且交付完整的地端或雲端基礎設施(Infra)。機器學習非常重要的一環是收集使用者數據後提供模型再訓練,如何有效的收集需要資料與驗證模型訓練成果、並設定評估的指標與將模型部署於正式環境。這些任務考驗ML工程師與資料科學家的溝通、對演算法和模型的理解、對於硬體或雲服務的認知與實踐能力。簡言之是一個不會對外展現風采但是懂貨人內心的英雄角色,我覺得非常吃硬實力。

而對於專案或是解決方案導向的公司的話,我認為ML工程師著重的便會是對於開源社群和與其模型資源的應用,同樣也吃MLOps和雲服務的理解。不論是產品或是專案,我認為機器學習工程師都需要廣泛(橫向)的技術理解。但對於專案導向的公司來說,能因應各種客戶需求而調整是尤其重要的能力。舉例來說,在電商客群分群的成果案例,是否可以部分複製到製造業的物料分群上。兩個看似天差地遠的產業,有哪些成果是可以帶過去,哪些不合適。這樣的判斷力對專案導向的公司來說尤其重要。(有點扯遠到商業模式了,抱歉)

回歸正傳,總結來說,我覺得這個職業的兩極是資料科學家與後端/系統工程師。而ML工程師是這兩個角色的中間值。

資料/數據分析師 ( Data Analyst, DA)

從職稱或是職涯角度,有些人會視為數據分析師是資料科學家的下位版。這個職稱也常被跟商業分析師(Business Analyst, BA) 做比較。我沒有實際跟經驗豐富的數據分析師工作過,我就不多做定論。但我個人想像這是一個介於BA和資料科學家的角色。DA需要注重商業的應用,同時也需要有數據科學的技術觀點。

舉例來說,如果我要打造一個產品或交付一個解決方案給電商平台,客戶的難點是商家希望有一個公平的關鍵字排序,不會被廣告投放的商業模式給壟斷,預算低的公司也有公平的競爭機會。在這個需求假設之下,我覺得商業分析師(BA)的出發點會是,透過現有數據,(i)公平關鍵字系統對於客戶效益有多大?(ii)公平的曝光機會有可能為這個平台創造更多的獲利機會嗎(相較於投廣告)?(iii)如果平台提供更多公平競爭機會,這個平台可以吸引更多的店家來開店嗎?(iv)如果要廣告和關鍵字排序並進,怎樣的平衡會是最好的?這些問題商業分析師是否可以透過內部數據加上開放數據加以評估、假設與回答。而他們最主要使用的工具會是商業分析軟體(BI)

數據分析師(DA)的出發點則是如果要創造一個公平的關鍵字系統,(i)會需要收集哪些數據才符合商業邏輯?(ii)這些數據應該以什麼形式被儲存?(iii)數據的來源和數據該怎麼被清理與存取(ETL)?也要(iv)能夠通過營運或系統的數據來決定如何優化系統與收集資料的流程(跟資料工程師有點重疊)。DA使用的工具應該會是資料庫語言例如SQL程式語言Python或R。而資料科學家就會著重在演算法的選用和調整(一句帶過XD)。

看到這裡應該會有人疑惑DA和資料工程師的差異。如果要簡單區分資料分析師跟資料工程師,我覺得最主要的差異就是DA需要利用現有數據來佐證自己,而資料工程師是以技術與系統效能作為追求的目標(下一個章節細談)。

資料/數據工程師 (Data Engineer, DE)

我會把這個角色放在DA和後端系統工程師之間。資料工程師主要焦點是資料的處理流程,從資料的來源、如何儲存、如何轉化到可分析的格式(簡言之就是ETL),以及資料的質量和可用性。他們使用的技術可能包括數據庫系統(如SQL或NoSQL)、大數據平台(如Hadoop或Spark)、資料管道(Pipeline)設計等。一個DE不一定知道會為什麼要要整理收集這些數據,但他們必須知道該怎麼最有效的處理跟儲存和取用。如果用why、what、how來分的話,DS和DA提供收集數據的why和what、而DE負責how。 基本上我認為上述的每個角色都需要有最基礎數據工程的基本知識,例如如何使用SQL存取資料、如何透過程式整理數據。然而之所以會需要專職的DE,主要是因為這項工作是件永遠不會結束的工作,而且這件事情會花費大量的時間。一個正常的資料科學專案可能超過一半的時間都是在收集、整理和驗證數據。而我個人覺得這也是想轉行資料科學很好的入口,因為DE的過程會是十分紮實的訓練,而且基本上任何專案或產品都會需要這樣的人才。

後端系統工程師

我本來沒有打算寫這個角色的,但既然我前面都有提及,也稍作說明一下。其實我用後端系統工程師可能不是十分洽當,因為事實上含括的部分真的太廣泛了。細分的話可能可以有後端工程師、系統工程師、系統架構師、雲端工程師、Infra工程師、資料庫工程師等。這些工程師的共同點就是必須懂基礎軟體工程的運作,他們使用的語言可能跨及C、C++、Java、JavaScript、Python等等。做雲端應用的需要懂AWS、GCP或Azure等公有雲服務,不做雲的必須懂計算機概論、伺服器建構、網路通訊和分散式系統等等。我想詳細職稱、技能和工作被內容我就不在這裡多做敘述。用興趣的人可以去問ChatGPT。

綜合以上幾個角色,下圖是建立於我的理解並且畫出他們的關係圖。可能角色在不同產業或是公司會有不一樣的定義,這些都是基於我自己的經驗所彙整的。歡迎大家留言或是私訊指教。

Glossary 名詞解釋

  • 電腦視覺(Computer vision, CV) :
    圖像辨識的技術基本上都屬於電腦視覺的應用、最知名的應用應該就是人臉辨識。商品瑕疵檢測、商品辨識(機器手臂夾東西的應用)、自動駕駛(特斯拉可以辨識路人、紅綠燈、前後車這類)等等。基本上算是AI應用的第一波。
  • Infra 基礎設施:
    可以想像成充滿伺服器的機房(?)或是可以理解成眼睛看得到的一切。網路線、路由器、數據機、伺服器主機這類的。雲服務簡言之就是有人統一管理這些機器,也開發相對應的商業軟體服務讓你可以遠端操作這些機器。基礎設施的建構與維護複雜且成本也高。隨著網路技術的發展,越來越快也越穩,使這種麻煩事的外包變成可能的事,雲服務因此崛起。
  • ETL :
    基本上就是Extract(提取):從資料源(如資料庫、CSV 檔案、API 等)提取資料。Transform(轉換):將原始資料清洗和轉換成一種更方便分析的格式。Load(載入):將轉換後的資料載入到目標資料庫或資料倉儲中。的縮寫。網路很多文章解釋,但我覺得通過一個好懂的例子來認識很重要。我舉例來說,今天你老闆請你整理貢獻你們營收的前十的客戶電話表。 首先是提取,你去跟財務部門要營收額的資料,去業務跟要客戶資料。 再來是轉換,可能業務只有大家的名片,沒有整理好的表格。可能財務部門的Excel金額那欄寫“100萬台幣” “2000美金”,你根本沒辦法用excel直接相加。你需要把“100萬台幣”改成“1,000,000”並加一個欄位給幣值。整理後才可以排序找出前十大,最後在靠肉眼找名片把電話填寫上去。 最後是載入(Load其實就是存起來的意思),你把做後做好的excel,改成Google Sheet存在Google Drive裡面,分享連結給你老闆(或是截圖傳line)。 這是人工ETL的概念,想像這件事情條件變很複雜(例如資本額一億以上,營業貢獻前十,台北地區需要獨立出來,每週一次,兩個月以上沒有購買紀錄的客戶不要)你絕對會希望有程式幫你完成這些事。
  • BI 商業視覺化軟體:
    著名的就是PowerBI或是Tableau。就是高級、可以互動點來點去的圖表系統。不像Excel畫出死死的圖,例如你畫了一張全台灣城市的平均營收,老闆問你啊台北的客戶都是什麼產業的?你只能說,我明天算好再跟你說。如果這時候你的圖可以點一下就展開各產業佔比是不是很酷炫。就大概是這樣的軟體。1970出現的概念,約2000開始有人做,PowerBI於2011第一版釋出,Tableau 於2013釋出第一版。基本上是目前非常成熟的產業。
  • SQL,NonSQL :
    資料庫的兩大宗,SQL是關聯式資料庫的程式語言,要用麻瓜語敘述的話,就是欄位固定的Excel,好處是快且穩定,也有明確的規則,知名產品就是Oracle(甲骨文)、微軟的是SQL Server,開源最常見是postgreSQL,太多SQL系列的服務了,每家雲也都有自己的。NonSQL(或NoSQL)就是不關聯式(X),簡單來說就是為了方便跟高彈性,不把欄位定義過死資料庫,但還是有它定義的方式。好處就是快速開發(改得彈性比較高),也可以存半結構或非結構化資料。(半結構可以想成是email,收件者是必要的欄位,標題是很重要但是沒有也可以寄,內文你愛放什麼就放什麼,基本上亂亂的但又有那麼一點規律。非結構就是聲音檔、圖片等資料。你沒辦法放聲音到Excel裡面吧!的感覺。應該不行吧?老闆給你一個excel,每一格都是他的錄音,好可怕XDD)

--

--

Jun Wang 旅英曼人

在台灣軟體新創業界打滾五年後,於 2021 年,前往英國曼徹斯特商學院讀新創所。目前在倫敦任職於決策智能 (Decision Inteligence) 新創公司產品經理一職。文章將討論對於科技發展個人淺見、產品/專案經理職涯培育與歐洲生活。