2024 Summer MLE/AS Internships
前言
趁著AI的熱潮,分享一下Machine Learning Engineer(MLE)/Applied Scientist(AS)的美國面試經驗。我是從2023.06開始投履歷的,陸陸續續面了20 rounds,直到2024.03才拿到第一個offer。在這段期間,無限的自我懷疑也低潮了很久,很感謝這段時間聽我抱怨和給我動力的朋友們。由於最近非常難拿到面試,我想藉由這篇文章總結一下我的面試經驗,希望能讓未來也想走MLE/AS的人知道如何準備!
背景
Education:
- UCLA MSCS 23Fall
- NTU EE b06
Experience:
- Microsoft (Research Intern)
- HTC (Research Intern)
Publications:
- co-first Findings@ NAACL'22
- co-first SLT'22
- co-first ICME'22
找工數據及Timeline
我總共約投了250個position (offer sponsorship, 主投MLE/AS/RS),拿到了8家公司的面試,其中3個內推5個海投。除了HR call之外,有遇到真人面試共 20 rounds,有6家到了final round,最後拿到JPMorgan Applied ML/AI的offer (這家是在1月的時候,我連續兩天寄了follow-up,最後那一封HR在我寄出3分鐘後用模板reject。結果突然在3月的時候打給我說有team要給我offer才拿到的,所以還是不要放棄希望!) 以下是我的Intern Timeline,有興趣的看看就好,這篇主旨是想總結我在這些MLE/AS面試中會考的題型:
MLE:
- Scale AI: OA(9.22) -> PS 1st(10.20) -> VO 2nd/3rd/4th(11.07) -> rej(11.10)
- JPMorgan: PS(10.17) -> VO 2nd/3rd/4th(11.09) -> rej(1.10) -> offer(3.14)
- TikTok: OA(9.15) -> PS 1st(11.09) -> PS 2nd(11.21) -> rej(2.14)
- Snap: VO 1st/2nd(1.24) -> ?
- X: PS 1st(2.08) -> rej(2.12)
- Milwaukee: PS 1st(2.09) -> ?
Applied Scientist:
- Specright: PS 1st(2.21) -> VO 2nd/3rd/4th/5th(3.07) -> offer(3.22)
- Amazon(UK): OA(3.03) -> VO 1st(3.11) -> ?
Note: PS(Phone Screen), VO(Virtual Onsite)
面試種類
我將面試會問到的問題大致分為8類,其中像是跟SWE有overlap的Leetcode, BQ和Project Diving已經太多人分享如何準備了,我就點到為止。
1. Leetcode
我目前總共只刷了240題(非常少qq),感覺有幾個面試是掛在coding。建議這部分可以提早準備,才不會拿到面試再懊悔沒刷這麼多。
2. BQ
這部分我是看一畝三分地的文章去準備的(link)。如果英文不好的話,建議可以把逐字稿直接打下來,然後洗澡或是走路的時候自己默背或一直煩室友背給他聽。
3. Project Diving
建議在面試之前把所有在履歷上的project都包裝好,講的越簡單越好,畢竟面試官不一定懂你的領域,如果他們有興趣會再繼續問。
4. ML八股
這部分一開始我也不太知道要怎麼準備,會先看一畝三分地有沒有之前的面經,然後也可以看網路上一些高頻題(link)、李宏毅老師的ML或是Andrew Ng的線上課程。隨著面的越來越多,我也有大致整理幾個面向:
Basic Knowledge:
- Gradient Descend, Stochastic Gradient Descend, Adam
- Backpropagation
- Bias and Varience
Loss:
- Cross Entropy
- Mean Squared Error
- KL Divergence
- Hinge Loss
- Contrastive Loss
Model:
- Attention (single-head, multi-head, cross)
- CNN
- RNN, LSTM
- Logistic Regression, SVM
- BERT, T5, Llama, Hubert (這就蠻看面的team,我面過NLP和Speech,就大概列幾個model)
Training, Evaluation:
- Data augmentation, Upsampling, Downsampling
- Overfit, Underfit
- Accuracy, Precision, Recall, F1, AUC/ROC
裡面其實有很多topic是連在一起的,可以依每個人自己的喜好去分類。但回答的時候要講得越簡單越好,有時候講太深面試官其實也不會,所以再次推薦宏毅老師的課程!!!老師都會把一個觀念講得很簡單。(這不是葉配文LOL)
5. ML Coding
這部分我考過兩種,不管是考a or b,一定要會numpy的基本操作(e.g. np.dot, np.multiply)!
a. 會給你一部分code叫你填空完成整個pipeline
- prepare data
- data filtering
- prepare model
- choose loss function
- complete training and evaluation
b. 請你implement一些ML methods
- Attention (single-head, multi-head, cross)
- CNN
- Gradient Descent
其他也可以參考這個github
6. Linear Algebra, Probability
我一開始比較鐵齒想說只有quant會考,結果有一關全部考這個,所以還是建議大家還是要把基礎的東西看一下。因為只被考過一次,我就列一下當時被考到的問題:
Linear Algebra
- Rank, Gaussian Elimination
- SVD
Probability
- PDF, CDF
7. ML Research Ability
這部分我感覺是偏research-oriented才會問到的,我真實被問過的也可以分成兩個part:
a. Research Presentation (45 mins)
要求報告你在ML領域做了什麼貢獻(可以報自己的paper或是別人的paper),我當時是報告自己的兩篇work,然後包裝成一個大的research goal,其實蠻像是寫SOP的career goal。報告完之後,來聽你報告的兩個interviewers會分別再跟你back-to-back各一個小時問問題。這部分其實跟實際去conference感覺蠻像的,別人會問你的問題都差不多。如果時間允許的話,也可以提早準備一下自己的ppt。
b. Paper Understanding (20 mins)
當時在面試快結束剩20分鐘的時候,面試官給了我一篇paper(2023年中的RL paper非常新)並讓我閱讀method部分15分鐘,之後會問我問題。那篇paper是有關Reinforcement Learning,因為我自己完全沒接觸過,所以一開始非常緊張,很多專有名詞當下看到也不知道是什麼。大概5分鐘看完method的數學式子後有一個方向,但還是很模糊,所以我就開始依照我平常看paper的模式,先去看Figure, Caption和Introduction,結果還真的從一個圖中的caption找到我一直卡的點,後來面試官考的也剛好是我所想的。
8. ML System Design (Case Study)
目前只遇過兩次,面試官會給data format以及要做的task,問我會怎麼處理。因為我也是ML菜鳥,我就自己按照之前的經驗回答(參考就好):
Data quality
- missing value
- outliers
- duplicate data
- imbalance data
Feature engineering
- Reduce dimension (SVD, NMF, Auto-encoder)
- Normalization
- Augmentation
Model selection
- Classification task (Logistic Regression, SVM, Naive Bayes, KNN, Neural Network)
- Generative task (Llama, T5)
Training
- Overfit, Underfit
Evaluation
- Acc, Precision, Recall, F1
Deployment
- Model latency
- System latency
- User Feedback
上面是我腦海中大致的流程,其中我認為蠻重要的是要隨時ask interviewer questions,像是how many data do we have, is there any missing data, what’s the input and the output,再根據interviewer給的資訊去analyze並給solutions。這部分我也準備的不是很充足,大家可以參考就好。這邊也有一本書可以推薦給大家!(感謝學長推薦)
結語
從去年九月開始陸陸續續收到蠻多面試的,我一開始都抱持著很正向的態度,覺得總有一家會讓我上岸。結果到今年過年,我那時候總共面了6家(4家Final round)一個offer都沒有,又看著身邊SWE的朋友陸續上岸,心態開始崩了。總覺得為什麼MLE/AS要準備這麼多、自己好爛、競爭對手又很多phd、自己就算表現再好也不可能比讀了4,5年的phd還厲害,就無限的在這個循環中自我懷疑。這期間很感謝聽我訴苦以及給我加油的朋友們,我會再一一私訊感謝!也很感謝家人無條件的支持我,讓我沒有這麼大的壓力。所以開學後,我就決定先去做自己喜歡做的研究,面試心態就比較chill,也很開心最後能有好結果。
這篇主要想根據我真實的面試經驗分類一下MLE/AS會考的題型,能幫助想來美國找MLE/AS的人更好準備面試!這是我的LinkedIn,有任何問題或想交流的話可以加我。
p.s. 這是我在很低潮時期,一位學長跟我鼓勵的話,我當下看了非常感動,也送給各位!
沒事啊全力準備就好 我現在的工作也是畢業後才找到的 我也從來沒想過沒找到工作怎麼辦 因為我知道一定會找到 有自信一點別想太多 全力準備每個面試就好