資料職涯分享
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
- 台灣與日本的職缺觀察
大綱
都是個人經驗!
新創那些事
資料科學的理想與現實
資料科學角色光譜圖
ref: 《資料科學角色光譜圖》
ref: 資料科學的職稱分類演進
如果你是那條龍
對老闆來說,不管你的職位叫什麼
你就是產品,產品就是你
最趕的流程
- 看資料、收集資料(沒資料什麼都是假的)
- 決定最快能動的 baseline
-
domain knowledge => feature engineering
-
rule based (decision tree, statistical history)
-
evaluation?maybe.
-
- 進入優化循環
- 一邊實驗新模型,一邊(偷偷)收技術債
(草創時期,一人一條龍)
理想的分工
- 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)
- 剩下的時間才是這裡
ref: 為何資料工程人才難以培養?
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
- 人都不知道要用什麼策略,所以人要先學習
- 實驗在另一個類似的專案,再轉移經驗過來
-
人工 transfer learning
無止盡的優化
人人有模型練
資料科學家這個職缺卻變得稀有
ref: 為什麼資料科學「曾經」比資料工程流行?
這些職缺還需要嗎?
-
讀 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
- 薪資天花板比台灣高
- 語言問題,資料科學與分析比較吃溝通
- 職缺比台灣多一點, e.g.
日本 IT 職場文化
- 精神狀態也是重要的考量
- 簡單的判斷標準:語言
- 英文化程度高:文化越不像傳統日商
- 樂天?
2019 我的資料科學轉職歷程
Thanks for your attention!!
聯絡我
更多文章
-
-
訂閱文章通知
-
-
-
不定時更新
-
資料職涯分享
By leafwind
資料職涯分享
從資料科學到資料工程、從台灣到日本的學習歷程
- 1,529