<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Facebook 工作四年總結/反思

          共 4651字,需瀏覽 10分鐘

           ·

          2021-07-09 16:53

          前段時間我做了一期視頻訪談:辭職讀博了,被訪者是在 Facebook 工作四年現在決定辭職讀博的范同學,這是他在知乎上寫的四年工作總結,貼過來大家可以看下。



          四年前加入 FB 的時候,當時只是把 FB 的工作經歷當作 gap 一年去讀 phd 的跳板,從沒想過竟會在 FB 待這么長時間。現在回頭看看,4年來自己成長了很多,是時候做個回顧總結了。

          目標一直蠻明確:去讀 phd。本來的打算是在 FB 工作一年,賺一年簽字費 + 大四做的 research 可以用在申請上。然而人算不如天算,大四 research 做的一團稀爛 + 申請 gg,一年跑路的想法擱淺了。。。只能繼續(xù)工作 + 換組積累背景了。

          17年 bootcamp 選組的時候,因為想做 ML + 背景不夠強,最終選擇了 production 組做從0到1的機器學習項目。當時的項目是 automate user report。從0到1搭一套簡單的 ML 系統第一次做很有趣,繼續(xù)再做就沒意思了,技術上很難深入。

          18年底決定轉組,去做更有技術深度的 ML 項目,也為 phd 申請繼續(xù)做積累。當時的選擇有 Applied ML(AML)組 和 Ads Ranking 組(FB product ML 做的最深的組之一),選擇 AML 的話可能重心是 infra 而不是 modeling,最終選擇了 Ads Ranking。現在回頭想,選擇 Ads Ranking 可能是我做的最正確的決定之一。在 Ads Ranking 我完成了自己預定的大部分目標。在 Ads Ranking 做了兩年半,2021年5月份從 FB 離職,準備8月份去 CMU 讀機器學習方向的 phd。

          這四年工作體會深刻的點總結下來其實也不多:

          1. 明確(當前)自己內心最想要的是什么,并為這個目標做出決定+付出努力。只有明確了目標,做決定時才能不為外界誘惑所動,堅定自己的選擇。個人的目標時常與公司/老板的目標不平行。就我個人來說,過去五年最想要的就是 phd 期間做有趣的 research 的 experience,那么換組(犧牲了更快的 promotion+錢),做更偏 core ML 的 project(犧牲了更好的 rating+錢)的選擇便自然而然了。


          2. 做有意義,有價值的工作。這也是我為什么會選擇讀 phd 的原因:我一直覺得推動科學的進步是最有意義的事情之一。當然,做 research 大概率會成為成功的分母,也許自己的 research 就是證明此路不通。然而,分母越大,科學向前發(fā)展的概率也就越大。心甘情愿的去做科學的分母,去看看世界最前沿的研究,并盡自己所能打打補丁,這種生活也不錯。“怕什么真理無窮,進一寸有一寸的歡喜”,得到知識時的喜悅也是無與倫比的。那么如何衡量自己的工作帶來的價值呢?首先這項工作應該是給世界帶來價值的。比如我個人認為,廣告推薦系統就是一項不能給世界帶來價值的工作:靠販賣用戶隱私信息來獲取利潤。當然很多人會說,更精準的廣告推薦能促進經濟發(fā)展。但與此同時的 cost 是更大的:大部分人不希望自己的點擊行為被 app tracking(這也是為什么 FB 根本不敢讓用戶來選擇)。從以人為本的角度來講,推薦系統帶來價值確實有些牽強,真心希望做推薦系統的小伙伴們能考慮一下其他更有意義的工作。當然,必須要承認,能夠自由選擇工作是一個很大的 privilege,有經濟壓力的情況下還是什么來錢快做什么吧。。。第二呢,自己能夠增加額外的價值。追逐學術熱點灌水是沒有價值的:即使工作有一點點意義,你不做別人也會做。要做一些有價值,且價值較難被別人取代的工作。


          3. 多看多聽多想,少做片面的結論。做到對事不對人。剛工作的時候,遇到看不慣的事情總會輕易否定一個人或者否定一個項目。比如之前同事著急 launch 一個做的非常失敗的項目導致我需要熬夜打補丁,當時心里非常不爽,并在心里徹底否定了這個項目以及項目的負責人們,覺得他們?yōu)榱俗约旱哪杲K review 好看而不負責任的 launch,導致很多同事熬夜修 bug。這種武斷的評價往往是不負責的,因為工程師們往往缺少 full context。也許 launch 的決定是 top down 決定的,或者本來是好心認為這個項目能夠提高工程師們的效率,結果好心辦了壞事兒。我時常會與我的老板們交流對于某些工作上事情的看法,并以“噴人”為主。但是80%的情況下,我之前的理解與判斷都是片面的。當老板們提供了更多的 context,我往往會對我原來看不慣的事情抱以更多的理解。


          4. 技術為產品服務。剛畢業(yè)的時候,總覺得自己想做最厲害的技術。這個世界上最值得欽佩的人是技術大拿,其他工作都是虛頭巴腦的“扯淡”。但其實不管多厲害的技術,最后始終要落地產生 production impact。很多時候一個產品的成功技術并不是瓶頸,所以也就沒有優(yōu)化的必要了。所以想做技術的同學們,選組的時候想一想技術真的是 bottleneck 嗎?這個組離產品足夠近嗎?舉個具體的例子,Ads Ranking 技術就是 bottleneck,模型0.1%的提升就能帶來億級別的盈利而且離產品足夠近;AML 相對來說就是一個較差的選擇,離產品組太遠,導致難以拿到 production impact 以及升職空間受限。相應的,除去技術能力,people skill / communication skill 也極為重要(甚至比技術能力更為重要)。可惜上學時短視的自己并沒有注重培養(yǎng)這方面能力。


          5. 身體 / 心理健康最重要。這四年見證了兩位同事的離世(其中一位在公司的食堂跳樓自殺,可想而知當時承受了多么大的壓力)。要有”此處不留爺,自有留爺處“的信心,留好 “fuck you money”,敢于與職場 PUA 做斗爭。CS相關工作踩在了時代風口上,工作10年已經賺了其他行業(yè)水平相似的人一輩子的工資。作為一只在飛的豬,我一直深刻認識到這個行業(yè)賺這么多錢是因為當前的供需,而不是自己的能力與之匹配。


          6. 堅持就是勝利。在 FB 壓力最大 / 最 frustrated 的時候就是剛轉進 Ads Ranking 的時候。作為一只 ML 小白,很多東西看不懂。加之當時負責 model 的 shipping,FB 的 infra 又極差(比如 4個 model 才能成功 1 個;infra 組寫的 model shipping tooling 跑都跑不了,更別說邏輯正確了),document 幾乎沒有,Tech Lead 能夠提供的幫助有限,每天都在 frustration 中度過。而且 project 又極其無聊,天天就是調 feature + 調參,跟我預想的 core ML 工作有極大差距,每天都想跑路。于是乎我給自己定了一個時限,給自己半年時間堅持一下,如果還是不入門,那就換個地方。慢慢的,不懂的 ML technique 看得多了,也就熟悉了。model shipping tooling 不 work,可以選擇不用,用大神一個周末寫出來的 script(10x engineer 誠不欺我,2天寫出的 script 比一個 team 幾個月寫出來的都好 lol)。Project 無聊,可以去申請換個更感興趣的 project && 換個更 match 的 Tech Lead(此處應感謝優(yōu)秀靠譜的老板)。就這樣堅持了幾個月,我終于入了門,并能提出新的想法。現在回過頭來思考,這次困境讓我收獲良多。技術上,ML入了門,且知道了 well-designed system 與 ill-designed system 的區(qū)別;people-wise,知道了好的 Tech Lead 是什么樣子的,以及自己適合與什么樣的人合作。如果當時沒有堅持下來,可能人生道路會完全不同(至少 phd 應該是 gg 的)


          7. 更有同理心。不是每個人都有一樣良好的教育資源 && 家庭條件,可能對自己來說輕而易舉能做到的東西別人需要更多的努力。我以前看不慣對自己的工作不負責,為了一己私利作弊的人。比如知道自己的模型改變對于模型來說沒有任何用處還硬要 propose。再比如為了 model launch 黑的說成白的(明明有 loss 非說沒有,claim 不 significant)。現在慢慢也于此和解了:也許別人需要更好的 rating 來支持家庭,也許別人當時正在經歷苦難需要一些工作來保證不被開除。雖說作弊行為還是不對的,但是不了解 context 的情況下不要輕易否定別人。否定別人對于解決問題沒有任何幫助,一個更好的解決方案是提出更好的 guideline 來杜絕作弊行為的發(fā)生。


          8. 有數據的情況下,從0到1搭建一個 (supervised)ML model 是極其容易且 impactful 的事情。模型用 GBDT,再保證 training / serving data 一致,模型一般來說就夠用了,不再成為 bottleneck。更重要的是知道在什么樣的產品下應用ML。我個人覺得這種比較成熟的技術與傳統行業(yè)結合能夠提高傳統行業(yè)的效率,比如預測某件衣服賣的好不好并決定其庫存。


          9. 深刻理解實踐 hypothesis-driven 的機器學習方法論。首先觀察數據發(fā)現 insight,然后提出可驗證,好驗證的假設,再做實驗去證明/證偽假設。工作時見過很多非常糟糕的“hypothesis”,很多是先有一個好的且不知道為什么好的結果,再反推(bian)一個 hypothesis。比如某些模型魔改工作,先搭了個積木試試,發(fā)現結果好,再編一個 hypothesis:比如“更好的利用了 feature 的 high order interation”。至于具體是不是這樣呢,誰知道呢?一個優(yōu)秀的工作應該是具有具體的,有邏輯,易驗證的假設,且驗證假設以后應該大概率可以提高模型的效果的。比如同樣是剛剛的模型魔改工作,如果一開始我們發(fā)現一些 n-gram feature 有 mis-calibration,這個 insight 說明我們的 model 并沒有很好的利用 feature 的 high order interation,然后我們可以設計模型的結構來更好的 capture high order interation,最后驗證新的模型結果減少了原來 n-gram feature 的 mis-calibration,完成了閉環(huán)。經過這樣的驗證,我們才能比較有信心的下結論:新模型的確更好的利用了 feature 的 high order interation。


          你好,我是公子龍,畢業(yè)于中科院,前大型計算機競賽冠軍,現算法工程師,拿過九家大廠的 offer 。

          北漂七年,從小白到計算機競賽冠軍,讀研時通過實習和比賽收入 50 萬,點擊藍字查看我的編程之路

          同時,我也是 b 站 up 主:公子龍龍龍,日常分享高質量資料,輸出面試、工作經驗,歡迎圍觀。

          瀏覽 73
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩Av手机在线观看 | 99亚洲婷婷伊人五月天久久欧美 | 国产大学生一级A片 | 欧美一区二区三区四区精品 | 国产午夜成人 |