撰文|OneFlow社區
AI/ML 大熱后,很多工程師跟著潮流學習新技術,再加上高薪誘惑,不少人就跳坑到機器學習的研究/工程職位,但進去后才知道這里并不是想象中那么美好,一入此坑深似海,你是不是也感同身受?
最近,Reddit 上的一位做了一年 ML [email protected],[email protected]?涌進機器學習領域,他也曾以為ML工作夢寐以求,但現在,他發現有錢難買我開心,準備棄坑跑路了。
他給出的的理由是查看損失曲線、調整特征和參數的工作實在太耗費精力,太無聊,尤其是生產模型時,當它們沒有產生預期的效果,他會不禁認為自己只要足夠努力,模型就會變得有效,但往往事與愿違,ML 模型效果難以捉摸,項目的交付難度無形中讓他壓力山大,他現在很厭惡花數個小時在“垃圾數據”中撞腦袋的機器學習工作中。
不過,他正在打軟件工程師的主意,當處理更純粹的編程和工程任務時,他覺得自己會獲得更多工作樂趣。
在他訴苦后,江湖上大致有 ML“棄坑”派、MLOps“真香”派和技多不壓身派給出了觀點,有人勸他打消這種想法,這樣做一定是瘋了,也有勸他跳坑做自己感興趣的軟件工程的,另一部分人則建議使用 MLOps 工具幫他減輕當前的工作壓力。
一時間,三大門派各抒己見,一頓輸出后,似乎讓這位工程師不知所措了......
1
機器學習“棄坑”派
實際上,@hedy-m 的抱怨在 ML 領域很常見?!皸壙印迸删W友表示很有共鳴,勸他去搞軟件工程。
基本上,不少機器學習項目需要為獲取相關資源和數據而四處奔走,你還需做耗時的數據處理工作,但最終 ML 項目的成功取決于你所擁有的數據甚至是運氣。模型沒有按預期工作總讓人感到沮喪,并且你還要為此負全部責任。
Reddit 網友 @knighttoken1 稱,如果你開始解決一個不可能或者非常困難的問題,無論如何嘗試使用不同的 ML 模型都不靈時(至少 ML 不是解決方案)。在這樣的項目中,很難不把個人價值與模型性能聯系起來。
“在 ML 工作中,你很容易工作 14 小時,同時失去友誼、社交和健康,最終仍然一無所獲”:)
此外,大部分 ML 工程師日常用的是知名模型或復現其他論文,創造性空間有限,難以獲得成就感,有人認為,要想在機器學習工作中做出好成績,還是要有 Phd 加持去做研究。當你成為?ML 的大牛,輕松輸出各種相關論文時,生活就美滿幸福,但要想有影響力和創新性,自然也會承受各種壓力。
即便在大廠,只有極少數地方才會用到最前沿的ML研究,[email protected] 提到,在大廠 ML 團隊帶過后,現在討厭關于 ML 的一切,他轉到了更標準化的后端工作,只是把ML當成一種業余愛好。
還有人提到,機器學習工程師還要努力展示與某些業務 KPI 相關的直接商業價值,而模型的改進不一定會對業務 KPI 產生直接影響,因為還有很多其他因素促成數據產品取得成功,由于涉及到如此多的不確定性,他們通常也不得不使用太花哨的東西,因此,舊招數不斷被重復使用。
相對而言,做軟件工程不確定性更小,優秀的軟件工程師投入必要的時間,就會獲得積極的結果,而且對任何科技公司來說,軟件工程項目都是更成熟的核心業務。
2
MLOps“真香”派
機器學習工作中讓人很糟心的是,要處理混雜的數據,并且沒有稱心的編程工具,如果能改變這兩點不足,機器學習工程師的生產力將得到大幅提升。
網友 @CuriousRonin 的回復得到了最高贊。他認為,在許多情況下,當你打算將代碼用于生產時,只有使用更高級別的框架才能節省大量時間,而不是將時間花在代碼和文檔、錯誤分析以及訓完模型后的很多其他工作上。
不過使用 PyTorch ?Lightning 或 fast.ai 等更高級別的框架也有很多麻煩。有人提到,從 Fastai 部署 PyTorch 模型非常痛苦,因為人們必須了解 Docker、PyTorch、WebAPI/flask 和云容器服務、監控......
因此,他建議使用 MLOps 工具。如果沒有良好的基礎設施,系統質量和開發體驗就會一塌糊涂,而 MLOps 就像是編程用的 IDE 或 Git,這是行業中最有價值的東西。
有人補充,機器學習工程師的工作是弄清楚如何將模型產品化,并將其擴展到軟件工程師構建的 Serving 平臺,如果發生模型漂移,還需要監測和調整,而 MLOps 平臺可以做到這一點。
網友 @chief167 更直接,他說自己根本不喜歡 Azure、Snowflake 或 ?Databricks 進行部署,現在模型就緒后,使用 MLOps 平臺在 15 分鐘內就可完成模型部署,API 就緒,完成監控,拋出接口并完成整個過程,確實消除了所有痛苦。
在他看來,谷歌 GCP 和 AWS 比傳統玩家要好很多,但離專用平臺還差得很遠,還推薦使用 Datarobot、H2O、Teradata Vantage 等 MLOps 平臺。
目前,MLOps 主要被用于由 AI 技術驅動的組織中,一般由數據工程師或應用工程師打造,不過在一些組織中,機器學習工程師也會承擔 MLOps 工具的開發工作。
3
技多不壓身派
溫和的中庸派也發話了,俗話說,多門技術多條路,不要搞得這么決絕。
許多公司在軟件工程和 ML 這兩個角色之間還沒有過于明顯的區分,實際上,如果你在這兩方面都擁有成熟的經驗,那你更有價值。
網友 @modernzen 現身說法,他目前的職位是機器學習工程師,但主要做的是軟件工程 + MLOps/DevOps 的工作,偶爾還會做數據科學任務。盡管他喜歡數學/統計/理論機器學習,但一直喜歡寫代碼勝過任何事情。
他將大部分時間都沉浸在編碼工作上,并且從不抱怨,只花 <10% 的工作時間在 fine-tuning 或調參的 ML/DS 任務上,這樣不至于對其感到厭倦。他建議在一個使用機器學習的團隊找到一份軟件工程師的工作,這樣即使大部分時間不直接使用 ML 模型,你仍然可以研究機器學習。
還有一位有 20 年軟件工程師經驗的網友寬慰道,無聊或壓力可能不是技術領域的問題,更多與團隊或者項目有關。當你看到軟件運行或輸出業務見解,并為用戶和企業帶來價值時會讓人感到滿足,開發項目也并不總是很順利。
聽了上述三大門派的觀點,你會選擇棄坑ML?繼續茍著?還是有其他選擇?
其他人都在看
資源依賴的“詛咒”?
“遠見者”特斯拉AI主管Karpathy
TVM:成為深度學習領域的“Linux”
對抗軟件系統復雜性:恰當分層,不多不少
解讀Pathways(二):向前一步是 OneFlow
OneFlow v0.7.0發布:全新分布式接口,LiBai、Serving等一應俱全
歡迎下載體驗OneFlow v0.7.0最新版本:https://github.com/Oneflow-Inc/oneflow/https://github.com/Oneflow-Inc/oneflow/
關鍵詞: 機器學習