PTT推薦

Re: 本來學ML是該轉路還是繼續鑽研

看板Soft_Job標題Re: 本來學ML是該轉路還是繼續鑽研作者
bowin
(盡其在我)
時間推噓23 推:23 噓:0 →:4

Quotes:“Strength is something you love doing and are good at.”

看了板上許多討論ML vs. DS和大公司 vs. Startups的文章
(這兩個面向是高度相關的) 很多都是很好的分享,例如
上一篇前同事frouscy的精闢灼見
(https://www.pttweb.cc/bbs/Soft_Job/M.1615543421.A.E10)
之前PCMan的深入剖析
(https://www.ptt.cc/Soft_Job/M.1582728233.A.45E)
自己也曾在幾間Startups和大公司貢獻,
所以想想也來參與討論一下、分享一點個人經驗。

TL;DR:

1. 你現在擁有和未來想要有的strength是什麼?
2. Data Scientist vs. ML Engineer vs. ML Researcher:
大小規模不同的公司(FAANG vs. Big Tech vs. Startups)對這些職位有不同需求。
你喜歡在大公司深入某一塊做為專家?
還是在Startups做end to end資料分析、或是產品開發?

想先問原Po:

1. 你瞭解自己“現在”的strength是什麼嗎?
2. 你“未來”想要有的strength是什麼?
3. 你現在與未來的strength差異有多少,你想要補上這塊差異嗎?

什麼是strength?
我很喜歡Facebook給engineers的這句話:
“Strength is something you love doing and are good at.”
公司也鼓勵你發揮、進一步強化strength.

而這三個問題是有連續性的,或許很多人無法回答第一個問題:
“你現在的strength是什麼?”
其實這也無妨,我很久以前也曾思考過它,但是開始思考這個問題後,
讓剛出社會工作的我逐漸站穩腳步,能安穩地累積自己和貢獻所長。

下一步就是思考第二個問題:“你未來想要的stregnth是什麼?”
再下一步就是深思第三個問題:
“你現在與未來的strength差異有多少,你想要補上這塊差異嗎?”

在試圖回答這些問題過程中,我被引導回學校攻讀PhD,
努力在工作中和自學Computer Science & Software Engineering,
現在還是一直很努力、辛苦地在黑暗中摸著石頭前進。

每個人都有自己的想要走的路,我覺得這些路沒有高下優劣之分,就只是不同的路。
而且這些路都沒有所謂終點,每當你覺得自己達到了某個goal,
後面就會有另一個更高的goal等著你。
你無論如何永遠不會滿足。

所以重點或許應該是享受每一段從goal i → goal (i+1)的過程,
品味那些引導你方向的大小石頭,享受與隊友一同奮鬥的酸甜苦辣。

現在回到ML。個人觀點是title永遠就只是title,工作內容比較重要。

Data Science自從2008年由DJ Patil & Jeff Hammerbacher提出這個詞之後,
一路一來由許多不同規模的公司做出了許多不同職位定義調整,
目前未來發展的態勢已經算是明朗了:

I. 以FAANG & Big Tech為例:
專精某個高度技術性工作,累積對large scale systems全面性的體認

1. Data Scientist (i.e. Data Analyst):
任務是深入進行data analysis,包含exploratory data analysis
來進一步瞭解某些特殊使用者或是產品面相的問題,
因為新挑戰或新產品而來定義創新的metrics等等,
協助甚至是引領Product Managers & Software Engineers進行上述相關工作。
過去從事類似工作的title是Data Analyst;
在Google過去是Quantitative Analysis,現在比較多為Data Scientist,
在Facebook過去是Product Analyst,現在也比較多為Data Scientist.

2. ML Engineer:
身為一個這一生只想做machine learning工作的人,這也我目前的工作內容。
以Facebook為例,裡面有許多Software Engineers的role為machine learning,
跟其他backend/frontend等都一樣是拿Software Engineer的title,
只是我們的任務是ML systems/products相關高度技術性工作,
從problem definition, ML modeling, data pipelines,
feature engineering, model training,
offline evaluation, online A/B testing,
production deployment, online monitoring等等;
另有一大群ML Engineers是負責開發ML infra相關高度技術性工作:
包含data engineering infra, A/B testing infra,
online/offline feature retrieval infra, serving infra等等。
我們可以想像將ML system end-to-end切成兩段:
1) ML model/system,目標就是開發能產生高價值的系統和產品,
2) ML infra,目標開發前述系統和產品所需要的底層,
能撐起planet-scale services。
在Google & Facebook上述人就是掛Software Engineer,
Software Engineer (Machine Learning),
Machine Learning Software Engineer
(在Facebook有PhD的Software Engineers蠻多人會掛Research Scientist,
在Google這點相對嚴謹很多,少數人才掛RS),
在其他big tech是掛Research Engineer,例如Netflix,
還有其他whatever titles.

3. ML Researcher:
普遍都是Research Scientist,絕大多數都有PhD,
任務就是研究發表最新的ML research成果。
有不少RS (謎之聲:諸多公司也越來越“鼓勵”)與ML Engineers合作,
將研究成果與ML systems/products結合與應用。這
類人集中密度最高的地方前幾名應該就是
Google Brain, DeepMind, Facebook AI Research, among many.

II. 以大中小型Startups為例:
技能樹能夠較為寬廣,累積對整個產品體系全面性的經驗

1. Data Scientist / ML Engineer:
因為較容易吸引人才的緣故,
過去幾年也普遍將Data Analyst改為Data Scientist,
公司和當事人也都期望能從事ML system end-to-end,
也真的有機會體驗這整條路的滋味,
所以我們可以想像工作內容為FAANG & Big Tech裡面的
Data Scientist + ML Engineer兩者相加,
希望能包山包海掌握整個data analysis & ML system (與Software Engineers合作)。
但因為product/service scale相對“合理”許多,
掌握相當程度以上的AWS/GCP和open source tools就可以開發產品。
我也很感謝過去自己有這個機會在Startups學習成長了許多。

2. Data Scientist / Data Analyst / Business Intelligence Analyst:
現在似乎不少Startups也將上述titles混用,
主要負責data analysis相關工作。
個人樂觀其成,因為其實不少人對於應用一些
machine learning / statistical inference挖掘資料
來進一步回答問題是很有興趣的,這也是對公司非常有價值的工作。

IMHO未來各工作內容會更加收斂 (還是要強調無高下之分,
只是術業有專攻對個人和公司長期以來都會良性發展)

1. Software Engineer:frontend, backend, or ML
2. Data Analyst:data analysis
3. Research Scientist:research (只有大公司才有需求而且有能耐養一群PhD做研究)

至於在大公司還是Startups做DS/ML,那屬於另一個問題。

回到你的問題。
Recall:“Strength is something you love doing and are good at.”
有了上面的討論後,你對於下面的問題有近一步的想法了嗎?

1. 你瞭解自己“現在”的strength是什麼嗎?
2. 你“未來”想要有的strength是什麼?
3. 你現在與未來的strength差異有多少,你想要補上這塊差異嗎?

現在我們可以再加上幾個follow up questions

1. 你現在與未來的strength是frontend, backend or ML?
2. 你現在與未來的strength比較適合在Startups貢獻還是在大公司發揮呢?

若能回答上述多個問題,希望你就能對下一步有個概略的想法和目標了。

最後再強調一下,工作內容無高下之分,術業有專攻,
重要的是相同職位和不同職位的所有人們都能相互合作。
然後不同大小規模的公司都有我們需要學習和可以貢獻的地方,無絕對利弊,
任何公司和職位都有辛苦的一面,
絕對沒有所謂“啊我達到這個目標了,可以從此過著幸福快樂的生活”這種事,
因此我們的重點或許應該是:享受每一段的過程。 :)


※ 引述《ckrmpuhv (阿瓜)》之銘言:
: 各位板上大大好
: 小弟是後段國立科大資管碩即將畢業
: 因為一些私人原因是不用當兵
: 所以論文完成後準備開始找工作
: 目前程度:
: 大學學過JAVA
: 網頁跟資料庫也只有課堂學習過沒實際做小專案
: 因為對Ml有興趣
: 在碩階段期間 都是自學ML相關
: 聽過李宏毅老師的課
: 實作過他課程的作業
: Keras的一些神經網路搭建也沒捨問題
: Kaggle只參加過一兩次 排名都很爛
: 大部分的實作和論文都是跟影像辨識相關
: 最近看板上大大各式各樣建議
: 非四大四中 也不是kaggle的佼佼者
: 數學方面 線代沒學 統計學大學學過但也不熟
: 看完覺得自己很爛出去可能沒人要?
: 目前都還在做ml各種模型實作
: 但看完板上很迷茫要往哪些方向學習怕找不到工作非常憂鬱
: 我不清楚該橫向發展拓別的領域
: 像是網頁、App 自己做一些小專案增加作品集
: 還是去補數學 更深入研究Ml
: 又或者先去刷Leetcode打底
: 還請各位大大指教 謝謝
: -----
: Sent from JPTT on my iPhone

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 188.213.136.249 (英國)
PTT 網址

Apache03/14 00:03這篇英文真的有點多了 你要不要全打英文比較好機翻

哈哈不好意思請見諒,專有名詞有時覺得很難英翻中

IcecreamHsu03/14 00:12推 是說目標和過程那段也是我最近在思考的

longlyeagle03/14 00:12大公司不同部門的Data Scientist定義也可能完全不同

其實若StitchFix也算大公司的話,他們的DS也是負責modeling 但是這樣的DS配置以大公司來說有越來愈少的趨勢

LordCHTsai03/14 03:14G也是有掛research engineer的

是,看過的大多在Google Brain.不確定product teams有沒有

branie03/14 03:35晶晶體?

請branie見諒,解釋如上

Dartmoor03/14 03:56感謝分享

LordCHTsai03/14 04:03看閣下的IP莫非是DM的?

drajan03/14 07:21好文啊

testPtt03/14 08:47出來工作結果老闆要你用ml寫一支算命程式

nubao12303/14 09:55推!

landysh03/14 09:59好文推

frouscy03/14 10:53推強者bowin大大

kevinfilter03/14 12:14推~很清楚的描述

Wush97803/14 14:45

AmosYang03/14 20:47推「過程」的觀點

APTON03/14 22:18

tokei03/14 23:13好文推

fig49803/15 00:09大推,非常感謝B大分享

aphiya03/15 08:25nice

Kocolook03/15 09:59推!

Ouranos03/15 17:32大推!

answerseeker03/18 12:38大推這篇 基本闡述灣區現況 敝公司DS80%+ PhD也做

answerseeker03/18 12:38modeling

meRscliche03/18 23:52優文推,感謝

jt85111303/23 16:50推好文 感謝

bearsteak04/01 05:14推好文

※ 編輯: bowin (152.37.94.249 美國), 06/17/2021 18:53:52

annboy10/05 23:58