資料職涯分享

connor (leafwind)

從資料科學到資料工程、從台灣到日本的學習歷程

自我介紹

  • 資工系+資工所

  • Appier 軟體工程師 2014 - 2019

    • Data Science (2y)

    • Data Engineering/Backend (3y)

  • SmartNews 軟體工程師 2019 - 2020

    • Data Engineering

自我介紹

  • 資料科學到資料工程

    • 十年前就在做 AI,AI 紅了之後反而做工程

  • 通才打雜工具人
    • Project Management

    • Mentor, Scrum Master

工作經驗(選最接近的)

  • 學生
  • 職場新鮮人(第一份工作)
  • 稍有經驗(三到五年)
  • 中等~資深(五年以上)
  • 新創那些事

    • 資料科學的理想與現實

  • 新創職涯發展

    • 最容易被忽略的職涯風險

  • Data job landscape

    • 台灣與日本的職缺觀察

大綱

都是個人經驗!

新創那些事

資料科學的理想與現實

資料科學角色光譜圖

如果你是那條龍

對老闆來說,不管你的職位叫什麼

你就是產品,產品就是你

最趕的流程

  1. 看資料、收集資料(沒資料什麼都是假的)
  2. 決定最快能動的 baseline
    • domain knowledge => feature engineering

    • rule based (decision tree, statistical history)

    • evaluation?maybe.

  3. 進入優化循環
    • 一邊實驗新模型,一邊(偷偷)收技術債

(草創時期,一人一條龍)

理想的分工

  • Data Collection
    • 有人幫你生 log 或是爬蟲抓資料
  • Data Lake / Data Warehouse
    • 有人幫你弄好分散式儲存、管理所有資料庫
  • Data Pipelining
    • 有人幫你管理、維護錯綜複雜的資料流
  • Data Cleansing
    • 有人幫你清資料、進來的資料都可以直接用
  • Modeling/Analysis(prediction/insight)
    • ​我的專業

實際的分工

  • Data Collection
    • 有人幫你生 log 或是爬蟲抓資料
  • Data Lake / Data Warehouse
    • 有人幫你弄好分散式儲存、管理所有資料庫
  • Data Pipelining
    • 有人幫你管理、維護錯綜複雜的資料流
  • Data Cleansing
    • 有人幫你清資料、進來的資料都可以直接用
  • Modeling/Analysis(prediction/insight)
    • 剩下的時間才是這裡

ML 在哪裡?

A mature system might end up being (at most) 5% machine learning code and (at least) 95% glue code — "Hidden Technical Debt in Machine Learning Systems", Sculley, NIPS 2015

這些問題誰來解決

  • ML model 以外的系統佔了 95%
    • 通常問題有大半都不是出在模型,如何 debug?
    • 例子:廣告出價失敗
  • data cleansing
    • raw log 非結構化、雜訊、被污染
  • data governance
    • 隱私控管、上下游管理、知識管理
  • data migration
    • 空中加油

找很多工程師?

科學 vs. 工程

工程比科學還多

但非工程的部份可能更多

管理、溝通、實驗流程

  • 貫穿全部的專案管理
  • 跟其他 team 的橫向需求/供給協調
  • 向上管理、presentation
  • 跑大地、考古挖資料
  • A/B 測試如何設計
  • 上線之後如何根據得到的結果修正、砍掉重練、嘗試新的模型

解決的問題不同

垂直應用 vs. 橫向平台

business problem (vertical) vs. generalized platform/solution (horizontal)

大平台

平台

平台

應用

應用

思考模式不同

  • 商業問題
    • 產品價值
    • 客戶需求
    • 試錯、驗證最小可行方案
    • 容易看得見的成果
  • 工程平台
    • 可靠性、穩定性
    • 泛用性、可擴展性
    • 較難看見的長期成效
  • 解決 X-Y 問題
    • 照著要求做很可能事倍功半
    • 了解科學家的痛點則會事半功倍
  • 建立合作關係
    • 提供工程師能理解的急迫原因與作法
    • 規劃償還技術債

常見案例:緊急 pipeline

資料科學的不確定性

開發模型與開發軟體的差別

資料產品能否做得起來

  • 跨團隊合作經驗

    • 一個人什麼都做不了

    • 小組織 vs. 大公司的合作模式完全不同

  • 領域知識

    • feature, feature, feature!

  • 應用模型的實務經驗

    • 太多現實問題,影響因素政治>>工程>>科學

  • 客戶買不買單是另一回事

探索的過程,時程難估

  • 一開始:不知道問題是什麼、資料是什麼

  • 要試多少 feature/model?做到多好才算完成?

    • Accuracy 100%?有更緊急專案的出現

  • Cold Start 成效差,要多久才能收集足夠資料?

    • 根據統計與檢定直到客戶不抱怨為止

  • Sprint 一次多長?

    • Task: 測試 A 模型、測試 B 模型、測試 C 模型...

    • 兩週不夠再兩週?

    • 有時候跑看板更實際

  • Evaluation
    • offline performance
    • online performance
      • offline 跟 online 表現可能會差很多(Dataset shift)
  • 實驗
    • 人工 transfer learning
      • 人都不知道要用什麼策略,所以人要先學習​
      • 實驗在另一個類似的專案,再轉移經驗過來

無止盡的優化

人人有模型練

資料科學家這個職缺卻變得稀有

這些職缺還需要嗎?

  • 讀 paper 研究機器學習模型實作的科學家

    • 多數只存在於研究單位與巨頭公司
  • 一條龍的假科學家/真工程師
    • 極少數小新創才有,而且台灣所剩不多

2020年建模型的門檻極低

 五分鐘嘗試第一個深度學習(Caffe)

60分鐘入門PyTorch

新科技廣泛被運用,工程需求凸顯

MLOps:除了中間,全都歸他管

MLOps vs. 一條龍科學家

  • 乍看都管很寬,實際上卻剛好相反

    • 一條龍科學家是要科學家扛 95% 工程活

    • MLOps 則是從工程角度全盤考量
  • 然而實際上卻不一定找得到...

    • 找 DevOps 卻變成 Ops
    • 找 SRE 卻變成 on call support eng..

科學

工程

MLOps

Dragon Scientiest

實務上都很極端

  • 人數不夠的新團隊

    • 只有一條龍
  • 擴張之後

    • 反而切割過細、溝通成本太高
    • 一個產品好幾個團隊來做
    • 一個功能有多個類似的團隊可以做
  • 政治/管理問題比技術更難解決

新創職涯發展

最容易被忽略的職涯風險

就職的公司規模

(選主要的經驗即可)

  • 自己創業過或 10 人以下新創
  • 10 - 30 員工
  • 30 - 100 員工
  • 100 - 300 員工
  • 300 - 1000 員工
  • 1000+ 員工

很多人會擔心新創倒閉

比起公司的風險,自己的職涯風險更大

更重要的問題:職涯成長

  • 當新鮮人進了新創...

    • 基礎學歪的機率高
    • 整天瞎忙、成長緩慢的風險也高
    • 時間永遠是最大的成本

通才(打雜)困境

第一份工作在新創最大的風險

我的情況

  • 資料科學、資料工程、後端、專案管理都碰過

    • 但並不專精

  • 面試責任分工明確的大公司相較吃虧
    • 新創或小團隊的機會較多
  • 通才的經驗對擔任 Leader/Manager 有幫助
    • 因此常猶豫轉換跑道
  • 習慣彈性、跨團隊、轉換環境較容易適應
    • 工程師同事認為我是科學家
      科學家同事也認為我比他們懂工程

    • 完成工作也幫助團隊,卻常常陷入冒牌者症候群

面試的優劣勢

  • 專精技術職
    • 較容易在技術/刷題取得優勢,拿到較高的階級
    • 大公司職缺量較多
  • 擁有多樣領域與非技術經驗的工程師
    • 能力不容易用客觀標準衡量
    • 有多項優勢互補,較不會因為單一缺陷被刷掉
  • 很多人在 behavior 或溝通被刷掉,我則是相反,但拿到的工程師 level 似乎比較低

選擇公司

同時從外人角度理解自己

資料先行 vs. 演算法先行?

  • 資料先行(通常已經有產品需要 AI 加值)
    • 護城河高
    • 看得到自家的 Data 很有趣
    • Domain knowledge 吃重
    • 比較務實(髒資料、合作夥伴關係)
    • 使用者行為相關(廣告、行銷、社群、電商、媒體)
  • AI 先行(通常先做 AI 才)
    • 專注研究、馬上應用最先進演算法
    • 電腦視覺相關

了解市場概況跟自身定位

  • 透過周遭人脈
    • 公司(多數人都會在幾年內離開)
    • ​社群(Meetup、讀書會)
  • 透過面試
    • ​定時面試很重要,就算原本工作不差
    • 少數有業界人士認真對話的機會
    • 只有自己清楚自己想要的工作

我適合很小的團隊嗎?

  • 移動開火能力

    • 仰賴個人時間管理、學習能力與工作經驗
    • 移動開火能力低於公司要求 -> 瞎忙

Data job landscape

台灣與日本的職缺觀察

海外就職意向

  • 人在台灣,想找日本工作

  • 人在台灣,想找日本以外的國家工作

  • 人在台灣,暫時不會離開目前國家

  • 已經在國外,但想換國家

  • 已經在國外,暫時不會離開目前國家

日本 vs. 台灣(軟體)

  • 台灣軟體業

    • 有一些外商開始移入 e.g. 微軟,但像 Google 的軟體工程師還是著重在硬體產品
  • 日本 IT

    • 日本不是軟體產業大國(相較於新加坡、美國
    • 但相較於台灣,還是有較大的本土市場
    • 往上跳的選擇不多,幾乎只剩外商

日本 vs. 台灣(Data)

  • 台灣

    • 較多資料分析、較少工程
  • 日本

    • 職缺比台灣多一點, e.g.
      • 樂天 Data Engineer
      • Google Data Scientist
    • 薪資天花板比台灣高
    • 語言問題,資料科學與分析比較吃溝通

日本 IT 職場文化

  • 精神狀態也是重要的考量
  • 簡單的判斷標準:語言
  • 英文化程度高:文化越不像傳統日商
  • 樂天?

Thanks for your attention!!

聯絡我

更多文章

Made with Slides.com