歡迎光臨
每天分享高質量文章

如何把薪資談高一倍?請看大廠offer拿到手軟的ML大神自述

 (點選上方快速關註並設定為星標,一起學Python)

來源:機器之心  作者:Generalized Error  連結:

https://mp.weixin.qq.com/s/Ah4vuqUqfmzUJorBxpBkYQ

 

本文作者剛剛博士畢業,在 NIPS、ICML、ICLR 等各大深度學習頂會上都發表過論文,其論文取用量在 500~1500 之間。他花了半年的時間面試了許多大的跨國公司,而且多數都拿到了 offer。在這份「面經」中,他講述了自己拿到高薪 offer 的秘訣:讓給出 offer 的公司「競標」……

面試必讀

根據我的經驗,幾乎所有與面試軟體工程職位相關的經驗都適用於機器學習研究職位,因為這些職位都出自同樣一批公司。在開始面試之前,我強烈推薦大家閱讀以下幾篇關於如何談薪資的部落格:

  • https://www.kalzumeus.com/2012/01/23/salary-negotiation/

  • https://medium.freecodecamp.org/ten-rules-for-negotiating-a-job-offer-ee17cccbdab6

  • https://medium.freecodecamp.org/how-not-to-bomb-your-offer-negotiation-c46bb9bc7dea

重要資料讀三遍:面試前一遍;談薪資前一遍;談薪期間再讀一遍。

公司

我只面試過全球大公司的產業研究實驗室職位,沒有面過初創企業或更小的公司。而且我面試的區域僅限於歐洲,其他地方的薪資、福利可能存在差別。

歐洲有很多大公司招聘 AI 科學家:亞馬遜在柏林有一個深度學習研究實驗室;蘋果在巴黎有深度學習職位;谷歌大腦在阿姆斯特丹、柏林、巴黎、蘇黎世都有實驗室;Facebook AI 研究院和 DeepMind 在倫敦和巴黎都提供職位……微軟、英偉達、Twitter、Uber 等公司在歐洲也有不少 ML 職位。

除此之外,應用領域也有很多有趣的職位,如自動駕駛(大眾/奧迪在慕尼黑有實驗室)、新藥研發(生物科技「獨角獸」Benevolent AI 位於倫敦,默克、強生、阿斯利康等公司也都在尋找 ML 人才)、金融(Citadel 和 Jane Street 等在倫敦都有辦公室)。

參加學術會議時逛一下招聘區域也能發現一些大公司有趣的研究職位,如彭博社(倫敦)、博世(斯圖加特)、迪士尼研究院(蘇黎世)。

雖然有一些心儀的公司,但我還是盡可能多申請了幾家:如果手裡沒有頗具競爭力的 offer,你在薪資談判中就會處於嚴重的劣勢。面試練習也的確給了我很大的幫助。

我第一次面試時的腎上腺素水平堪比在 3000 人註視下演講,但最後一次就像是午餐時和同事聊天。當然,你的確會毀掉一些面試,你和麵試官都有可能心情不好,或者你被問到自己的知識盲點,抑或那個職位不合你的胃口或者其他地方出什麼嚴重問題。

比如,不知道什麼原因,英偉達在約好的影片面試時間放了我鴿子,後來也沒理會我發的那些郵件,弄得我一頭霧水。所以,不要把雞蛋放在一個籃子裡。

然而,多面一些公司還是很有好處的:我瞭解的公司更多了。居然有那麼多不錯的工作我都沒有考慮過!一些最有趣的職位(以及最好的 offer)來自我最初沒有考慮過的公司。

事實證明,我的一些「安全選擇」真的非常適合我。雖然大家的情況可能不太一樣,但我還是建議多去和一些團隊聊聊他們的專案和願景,你會覺得深受啟發。

上面列出的公司或歐洲實驗室有一半是我投過簡歷的,研究科學家和研究工程師的職位都有,而且多數都給了我 offer。我找工作花了挺長時間(從投出第一份簡歷到接受 offer 大約有半年時間),但我也是精疲力盡:那幾個月我基本都是在機場、酒店、面試間度過的,不斷接電話、和 HR 談薪資。

不要指望在這個時期做什麼工作。正如一個同事所說:「你的頭腦總是被那些招聘反饋佔滿,沒有多餘的精力去想 ICML。」但我也收穫頗豐:我學到了很多東西,吸收了很多新的觀點,也談到了更高的薪水,如果我接受了第一份「心儀的工作」offer,我的薪水會比現在低得多。

面試過程

所有公司的面試過程都非常相似,在收到簡歷後,公司會先邀請我做一個簡單的篩選,看看我是不是一個合格的候選人。通常這種篩選會採用一兩個電話面試,且每個面試大概一小時左右。

然後,我經常受邀進行現場面試,這一般是在公司辦公室內,與多個專業人員進行一整天的面談,這個時候我通常會介紹我的博士研究。

隨後是每次約 1 小時的個人訪談,訪談的物件是我面試團隊的其它成員,或者是其它團隊的研究者或工程師。通常情況下,我在每次面試中都會遇到很多不同的人,因此基本上一天下來我能瞭解到該團隊的大部分成員。

幾乎所有的面試官都會抽時間詢問職位、團隊或公司的相關問題,我喜歡詢問工作與生活的平衡、工作的難點或他們對工作不太喜歡的地方,大多數人都會誠實坦率地回答這些問題,這會展示未來工作一些尖銳的問題所在。

他們可能會告訴我「也許你在第二年或第三年才能將工作時長減少到 60h / week」、「辦公室真的很棒,你會愛上這裡」等等。

也有一些研究員對自己的研究成果非常興奮,從而忘了問我相關的技術問題,他們會將目前的突破及相關概念一股腦地介紹給我。這些都是瞭解公司和職位的好機會,絕對值得花時間問一些好問題。

面試型別

我曾多次遇到幾種不同型別的面試。其中一些面試(如程式設計或行為面試)準備起來很容易,而另一些則幾乎無法提前準備。

所有公司都會有不同的組合面試:一些公司給我發 offer,卻不曾核查我是否可以程式設計(不問程式設計問題),同時其他公司從不核查我是否瞭解期望值是什麼(不問數學問題)。

一些公司會更多地問我理論問題,而另一些公司更多地問我實際問題;但大多數公司會同時詢問理論和實際問題。一般來說,面試人員通常會在我感到困擾時給予提示。

我認為面試人員常常故意不具體說明一些問題,就是想要看看我的反應,並且願意提供幫助或與我討論細節。這種面試從不像是一種對抗過程,而更像是同事之間的討論。

1.「談談你的研究」

很多面試只是要求我談一下過去的論文。面試官通常會從簡歷中挑選一篇論文,然後讓我就此談一談。他們有時也會讓我選擇一個自己願意談論的專案。

一些面試官僅僅會問一些淺顯的問題,而另一些會深入瞭解(「你在定理 3 中假設了異方差性(heteroscedasticity),但通篇沒有進行驗證。你為什麼認為這是一個有效假設,它的蘊含是什麼呢?」)。

但是,我與面試官從未上升到「數學深度」的討論:在與他人合著的論文中,有一兩個微妙的論證,而這是我害怕提及的;但幸運的是,所有面試官像我一樣害怕討論這些內容。我通常被問及自己是第一作者的論文,但面試官也不介意我討論與他人合著的論文。

2. 程式設計面試

谷歌或 Facebook 的典型軟體工程面試非常有名:你需要想出實際的方案來解決有關演演算法性質的一些難題。通常使用你自己選擇的程式語言,如 C++或 Python。

每個問題需要反覆討論:首先,你想出一個簡單的解決方案並付諸實踐,然後面試官提出一些附加限制或者要求你提供另一種更有效的解決方案。之後,面試官通常希望我討論一下時間或記憶體複雜性,或者討論實現中的潛在測試用例。

很多時候,面試官會與我就同一問題進入深度探討階段。然後,面試官承認他們自己也不知道如何解決最後一個問題,只是想看一看我是否可以想出一些解決方法,或者我如何就無法解決的問題做出回應。

我發現這些面試準備起來是最容易的:瀏覽一些諸如 Princton’s Algorithms(第一、二部分)的內容以及在 leetcode.com 上做一些習題就足夠了。

3. 機器學習面試

一些面試只測試機器學習常識。這些面試也會包含大學正規機器學習課程所講的內容。這類面試通常分兩部分進行。

第一部分是機器學習的常識問題:你如何正則化一個深度網路?隨機森林訓練中如何提高效率?當預測速度較準確率更重要時,兩種合適的分類演演算法是什麼?你如何根據內容對檔案進行語意分組?你能談一下高斯混合模型和 k-means 聚類演演算法的聯絡嗎?

第二部分通常會包含「機器學習編碼」,這時我必須實現一些標準機器學習演演算法。例如,我記得實現決策樹的推理/剪枝、k-means 和 k-NN。面試官通常給我 30-45 分鐘來實現這些(並再次討論效率或者可能的測試用例)。

4.「我們有這個問題…」

在一些面試中,面試官只告訴我他們當前正在進行的專案,然後問我如何解決。

比如:「我們試圖找出影片資料庫中的重覆影片」、「我們需要根據一些模糊指定的標準對數百萬的物體進行排序,並以亞秒級(sub-second)延遲來實現」、「我們的標簽資料很少,同時想要使用 GAN 來擴大資料集,哪種方法最好呢?」…

這類面試確實沒有很好的方式去準備,但我認為面試官主要是想瞭解我的思維過程。所以,這類面試並不是想出完美的演演算法就可以了,更多地是進行頭腦風暴或討論權衡利弊,即使你連最初設想都沒有。

5. 行為面試

每當我被告知將被某位 HR 面試時,隨之而來的幾乎總是行為面試(Behavioral Interview)。幸運的是,問題也幾乎總是一樣的,所以你可以提前做好準備。有個公司甚至給我發了一本關於他們公司價值觀的小冊子,並告訴我面試中會問我如何在生活中反映這些價值觀。

只要用谷歌搜尋一下「行為面試」,你就可以找到很多相關資源。總之,這種面試我遇到的不多,大概三四次。

6. 其它

有些公司的面試會出一些我在其它公司沒有遇到過的題。比如數學謎題,或「論文討論」面試——提前給我一篇論文讓我閱讀(通常是來自我不太熟悉的領域)。還有關於統計基本原理、機率和最佳化理論的幾小時筆試。

薪資談判

面試結束後,公司的招聘人員會聯絡我,然後告訴我「好訊息」。我總是會直截了當地告訴招聘方我還在參加其他面試,而招聘人員一般都能夠理解。

只有當我收到所有公司的回覆後,我才會準備討論下一步。然後開始了薪資談判。關於這個話題,已經有很多人討論過了。如果要瞭解更多相關資訊,一定要檢視文章開頭給出的部落格連結。

當然,不同的領域薪資水平不同。機器學習領域的薪資水平緊緊跟在軟體工程師之後,所以 levels.fyi 和 GlassDoor 可以給你提供很好的薪資參考。Blind 網站上也有很多關於薪資和麵試過程的資訊。

但是,你在這些網站看到的薪資水平嚴重偏向矽谷和整個美國。我的確可以從這些網站上找到關於歐洲薪資水平的資訊,但是不太好找。即使是在歐洲,不同國家之間的薪資水平也存在很大差異:比如,英國和瑞士提供的薪資水平要比其它國家高得多。

當面試公司問我對薪資的看法時,我總是告訴他們 10 萬歐元是開始談判的數字。即使在我面試之前,根據我在網上的研究、我之前的實習以及與朋友和同事的交談中所瞭解到的情況,我也知道這個數字在現實中是一個薪資下限。

英國或瑞士肯定有公司願意支付這麼多,雖然這個數字對歐洲其他地區來說相當高。但是,我認為先提出一個較高的數字總比笨拙地迴避這個問題要好。

多數公司最初給出的薪資為 8~12 萬歐元/年。請註意,這通常是年薪總額,所以它包括了基本薪資、預期獎金以及任何股票期權或額外的養老保險。我把我收到的最高報價報給了所有招聘人員。

總的來說,我覺得美國公司(即總部在美國)都能接受我提出的薪資要求,願意和我談判,但大部分歐洲公司表示它們無法接受(順便提一下,沒有一家歐洲公司最終在整個過程中給出超過 10 萬歐元的年薪)。

接下來,我選擇了一些值得接著往上談的公司。有些公司在面試過程中給我留下了很差的印象,而另一些公司則是我不需要再考慮的「保底」公司。我會感謝他們抽出時間,然後告訴他們我沒興趣了。

最後只留下了一小部分讓我感興趣的公司:我願意接受其中任何一家公司的 offer!我手裡的談判籌碼現在非常強大:我可以要求這些公司開出比當前出價最高的公司更高的薪水,而不必擔心嚇走任何一家。即使有公司撤回其 offer(或不願意滿足我的要求),我仍然有其它很好的選擇。

事情發展到最後:每家公司都報出了比別人更高的價,最後把我的年薪提高到了我做夢也沒想到的高度。這是一種非常超現實的感覺。

我在所有公司之間來回做了兩輪比較。這期間,我感覺那些招聘人員快要按捺不住了。他們邀請我去他們的城市度週末(包全程所有費用),給我郵寄驚喜的禮物籃、給我開出高額的薪資等等。

在他們都失去耐心之前,我覺得是時候做決定了。值得一提的是,儘管這些公司確實提供了更高的安家費和簽約獎金,但它們在提供額外的非貨幣福利方面不夠靈活。例如,沒有公司願意多給假期(這主要由地區標準決定,每年休假 25 至 45 天不等)。

最終,透過這種利用競爭報價的方式,我讓最終簽約的公司把薪資提高了一倍。我的最終年薪在 16~24 萬歐元之間(不包括簽約獎金和安家費)。

關於招聘人員

我從沒有見過像招聘人員這樣將胡蘿蔔加大棒的把戲玩得如此爐火純青的一群人。

他們會告訴你「這是我們能給的最高待遇」(一週後就變了),還會跟你強調「他們會為你破例,因為你是一個非常優秀的求職者」(而實際上提供給你的東西和別人相差無幾)。

他們還會憑空捏造出嚴格的 deadline(五分鐘之後就會告訴你他們完全接受延期),他們還會告訴你,他們不會重新談判(但只要你拿出更有競爭力的 offer,他們還是會重新跟你談),還會說他們在過去兩個月內在面試其他候選人(但他們絕對不會放棄跟你談)。

感覺招聘人員總是想確定我是不是真的想選擇另一份 offer 而不是他們的,還是隻是利用他們與另一家公司重新談判。我想這一切都在意料之中,而我最好的建議是始終保持禮貌、耐心和執著。

在我有限的經驗中,只要你收到了多份 offer(並且願意放棄其中任何一個),你就掌握了主動權。所以,努力談判吧。

  • 原文地址:https://generalizederror.github.io/My-Machine-Learning-Research-Jobhunt/

  • 討論地址:https://www.reddit.com/r/MachineLearning/comments/bb9umg/d_my_machine_learning_research_job_interview/

    已同步到看一看
    贊(0)

    分享創造快樂