【學長姊帶路】訊連/瑞昱/富智捷/聯發科/華碩/Dcard 等多間 機器學習工程師 面試分享
原標《工作 & 面試分享 — Machine Learning Engineer》
文/Gi-Luen Huang
背景
- 碩士:國立臺灣大學 電信工程所丙組 (主修資料科學)
- 學士:國立臺灣科技大學 電機工程系
- 研究領域:機器學習/深度學習、電腦視覺、影像/訊號處理
- 其他:可自行參考我的個人網站
求職方向
- 地點:雙北 >> 新竹
- 公司產業:IC廠、軟體業基本上都有投 (國內)
- 期望公司福利:基本上希望有彈性的WFH即可,其他像是健身房、游泳池…等等不是我主要的考量。
面試準備
- 刷LeetCode
因為預計2023/01會畢業,也趁著暑假刷了LeetCode題目 (我刷了大概20多題,主要用的語言是C++)。建議在刷題的時候要記錄自己刷了哪些題目,並且隨時記錄自己的刷題進度,之後要複習才知道自己當初做了哪些題目以及當時是如何解題的,若要看我刷過的題目可以參考我的Github,以及我用來記錄的Excel。
基本上刷題建議可以先從每個資料結構或是演算法的easy開始練手感,可能寫個3 ~ 4題再開始挑戰medium,寫完也一定要分析自己的time & space complexity,然後可以找看看解這題的人的最快以及最省空間的解法大概到多少,如果自己的解法跟其他人的最佳解一樣,那基本上你這題就算理解了 (當然也可以多方參考網路上大神的答案來幫助自己更理解這個題目的解法) ; 若自己的解法還未達到最佳解,也可以先記錄下來,看日後有沒有想到更好的解法,或是可以直接參考網路上寫出最佳解的思路大概是如何,再看自己能不能寫出來。
- 專業知識
準備方向基本上就是把修過相關課程的內容以及一些經典論文複習一遍。
- 個人簡介的ppt
建議會在面試前製作一份有關個人簡歷的slide (面試官會比較有方向做詢問),因為有時候面試官手裡沒有你的履歷可以參考,裡面可以放你的一些相關專案及競賽的經歷,不過在介紹時要high-level介紹就好,若面試官有興趣哪個經歷可以再講的更細節。
以上大概就是我在面試前做的一些準備,關於CV的部分可以在我的個人網站上找到,不過我通常在交履歷給公司的時候都是給一頁版本的,然後會附上我的完整版CV。
面試
1. 訊連 (Cyberlink)
職務:AI Engineer
面試前:程式題3題 (要用C或C++作答)
面試過程:跟一位部門主管以及同事做技術上的交流,首先會請你自我介紹,然後從你的經歷跟專案中來做相關的詢問,接著會問一些機器學習相關的問題:
- 給你看一些Learning Curve,從這些Curve中判斷哪些是收斂得不錯,哪些可能會有underfitting或overfitting的發生。並且出一個情境題,若要當中的某個loss降得更低,可以怎麼做修改等等
- Resnet當中的skip connection是做什麼用的
- 從Feed-forward network到CNN的演化有什麼好處
心得:對於自己做過的專案及競賽內容要很清楚了解,因為面試官會問技術細節,看你是不是真的了解自己做過的東西,並且可能要想一下這些專案的future work,面試官也會詢問如果是現在的你,會如何做這個work。
2. 瑞昱 (Realtek)
職務:PC camera Algorithm (RDSS)
面試前:無
面試過程:
一面:會跟一位公司的同事做面談,首先會請你先自我介紹,並從你的專案中去做一些詢問,接著跟我介紹公司內部目前在做什麼,以及有什麼手邊正在進行的專案等等。最後20分鐘的時間有考了一題程式題 (跟bit shift相關的題目),要用C++作答。
二面:跟主管進行面談,因為技術問題基本上一面都問完了,所以我簡單介紹完自己之後,主管就開始介紹部門在做什麼以及之後的發展會是什麼,基本上這關就是跟主管聊天,最後也很順利有拿到offer!
心得:同Cyberlink
3. 富智捷 (MobileDrive)
職務:Machine Learning Engineer
面試前:無
面試過程:跟部門主管做1對1的技術面談,首先會請你做自我介紹,並且問做過的一些專案細節、碩論內容等等,這場面試基本上花了1小時半討論我的專案跟碩論,剩下的時間就是主管在跟我介紹部門的一些願景以及手邊的一些專案。
心得:這場面試大概是我面到現在技術細節問最多的 (我還直接把我碩論口試的投影片拿出來報,也算當作口試Rehearsal XD),主管也給我一些碩論方法的建議,我覺得是個技術能力很厲害的主管。其他的同Cyberlink
4. 聯發科 (MTK)
職務:影像演算法 RDSS
面試前:無
面試過程:我面的是CAI2 SPT3 AI 演算法開發處,整個部門在做的事其實跟實驗室差不多,都是給你一個題目,然後要自己去發想做研究。在面試階段,聽完我自我介紹後,主管就要我介紹一下自己的碩論,我介紹完之後他就開始介紹部門,之後就是純聊天了,整體面試下來是算蠻容易的。
心得: 面試過程算簡單,基本上整體都在跟主管聊天,所以如果有去面試的話不用太緊張。
5. 華碩 (ASUS)
職務:RD20414 影像辨識與數據分析工程師(智慧製造)
面試前:無
面試過程:面試總共分兩個階段:
第一階段:會先進行口試及coding測驗 (可自行選擇用C或是Python),coding測驗的部份蠻容易的,就考一些基本的計算題 (一些基本的演算法題目跟統計計算)。口試的部份會考一些Machine Learning相關知識,整體考試還算容易,這部份我答的都蠻順的
第二階段:會有部門主管跟你做1 on 1的面談,這部份基本上就是從你的經歷下去問,主管對我的競賽經歷很有興趣,所以我參加的每個競賽他都問我是怎麼做的,還有困難點在哪裡。競賽經歷問完之後就開始問我的碩論相關的問題,基本上到這邊我都答的算蠻順的。之後主管就開始介紹部門在做什麼,以及在這裡可以學習到什麼,整理來說這個主管的技術能力也很厲害!
心得: 整體面試下來考的題目不會太難,而且在跟面試官做技術交流的時候其實也可以學到蠻多的,主管會介紹一些產業的發展以及未來的趨勢,所以我覺得整體面試感覺很好!
6. Dcard
職務:Junior Machine Learning Engineer
面試前:無
面試過程:會有一位裡面的同事與你做1 on 1的對談,首先會請你自我介紹,接著會從經歷中詢問問題。問完之後就問ML相關的問題,我被問的是如果有一家電商想要做推薦系統,那他們可以取得的是一些使用者有關的資料,如果要做一個推薦類似類別的推薦系統,我會怎麼做,但是我覺得我這部份沒有答的很好,因為我對推薦系統的ML沒有很熟QQ 結束之後他就做公司的簡介,接著考一題程式題,程式題我被考的是手刻一個Set (包含add, remove, search),最後就是問問題的時間。
心得: 面試我的工程師看起來臉有點厭世XD 可能想說為什麼做CV相關的人會跑來面這個,不過我覺得面試過程還算完整,從基礎的ML題目到情境題其實都有cover到,還算學習到蠻多的
7. 國泰數數發
職務:資料科學家
面試前:無
面試過程:
一面:會有一位主管跟兩位同事一起做面談,首先會由兩位同事先從經歷中詢問技術問題,基本上就是競賽跟碩論的部份會詢問一些相關細節,再從這些延伸一些相關問題,例如如果你現在做的話你會如何精進模型等等。接著基本上就是問ML相關的問題:
- 什麼時候可能會使用BatchNorm,什麼時候可能會使用LayerNorm等等
- 你最近有看什麼SOTA的論文嘛,並且是否有實作過?
- ViT模型相比於CNN-based模型的特色是什麼
- ViT 之後有一些論文對它有做改善,舉出一些例子,並說明他們如何進行改善的
- 在選擇使用Transformer-based及CNN-based模型的時候有什麼評斷基準嘛?
- Swin transformer中間的module是設計出來做什麼的?
這些問題基本上我都答的蠻順的。最後就是部門主管會介紹部門在做什麼,基本上這部份就是與他們聊天!總結來說,這個職缺在做的基本上就是實驗室在做的事,主要會有幾件事:
- 做研究
- 打競賽
- 接專案、計畫
二面:一面過了之後,因為我有兵役問題,所以他們要我退役前兩個月再與他們聯繫。
心得: 同華碩
8. 雲象科技 (Aether)
職務:Machine Learning Engineer
面試前:無
面試過程:
一面:會有兩位裡面的同事來與你做技術交流,首先會請你做自我介紹,接著從經歷裡面去做詢問,因為這家主要是做醫療的AI技術,所以他們對我在醫療產業的實習經歷以及競賽做了較多的詢問。接著他們會介紹公司的產品,以及未來的發展…等等。最後,考了一題程式題: 給定你要輸出的類別數量,要你把模型預測的probability distribution在有超過threshold的情況下找出dominant class。
二面:會跟部門的主管進行面試,這是我久違的實體面試了,所以比較緊張XD 基本上主管會先介紹部門在做什麼,然後請我自我介紹,接著再從經歷裡面去詢問問題,最後是一些情境題的問答:
- PM跟醫生開完需求後,要回來跟你討論實作過程,你會怎麼處理整個流程?
- 如果搜集到的資料是noisy的 (e.g. 標註標準不一),你會怎麼處理?
- 如果你跟同事合作開發一個web app,但是你跟這位同事所熟悉使用的套件不一樣,你會怎麼做協調?
- 如果PM在週五的時候跟你說醫生要你在下週二有一個model的demo,你會怎麼做協調
- 在專案中跟同事或是隊友cowork的形式
- 如果醫生質疑你模型的performance的話你會怎麼處理
心得: 在情境題的對答裡面,我覺得我有些題目都沒有回答的很好,這次的面試也讓我了解到軟實力的部份真的需要好好加強,所以多多面試是很有幫助的,可以知道自己的弱點在哪裡!
9. 台達研究院 (台北)
職務:AI電腦視覺與機器學習工程師 RDSS
面試前:無
面試過程:
一面:會有兩位部門同事與你做技術交流,首先會請你做自我介紹,從經歷中去做相關問題的詢問 (基本上每間公司都會這樣),接著就是介紹公司在做什麼,最後就是給我問問題的時間。到這邊我大概已經面了8、9家公司了,很多問題其實都會重複,所以基本上整體面試下來我都答的蠻順的。 (鼓勵大家多多面試!?)
二面:會與一位team leader以及部門主管做面談,首先會請你自我介紹,之後就照著你的經歷來做詢問,並會有一些額外的發想題,這部分基本上就照自己所認知的來回答即可。接著部門主管對於我在Jubo的MLops經歷很有興趣,就往這部分詢問細節,最後就是Q&A時間
心得: 同華碩
10. 遊戲橘子 (Gamania)
職務:Machine Learning Engineer
面試前:無
面試過程:
一面:與台達研究院的一面差不多,不過會focus在推薦系統上,資料主要是從Beanfun app (童年回憶XD)中取得,取得資料後就可以做一些新聞、遊戲推薦等等。基本上技術問題都答的蠻順的,不過遊戲橘子主要還是做推薦系統或是NLP居多,所以在面試時也有被問到若做NLP或推薦系統會不會排斥,最後基本上就是跟同事以及部門主管閒聊
心得: 同Dcard
11. DeepRad.AI
職務:Machine Learning Engineer
面試前:無
面試過程:
一面:會跟一位醫生以及教授做技術交流,跟其他公司差不多,就不多贅述。接著醫生會介紹公司未來的發展以及目前已經有的產品,目前已經有的產品是low-dose lung CT的肺結節預測以及骨骼鈣化預測。
二面:與創辦人做面談,基本上創辦人會在介紹公司未來的展望以及走向,這部份大概就是與創辦人聊天,創辦人對我的經歷很感興趣,也希望我能進去當RD部門的leader帶領RD部門。運算資源的部份聽說他們有10幾張的A6000,資料面的部份有自己的標註團隊。
心得: 面試過程大概就是了解公司未來的展望,畢竟這間公司還沒成立,所以都在跟創辦人了解公司未來的產品走向以及規劃,但一進去就當RD team的leader說實在壓力其實蠻大的,不過算是一個不錯的工作內容
12. 多方科技股份有限公司
職務:AI 演算法工程師_Intelligent Audio-Video Analysis and AI Algorithm Engineer
面試前:需寫一份20題的筆試題,其中包含機率、統計、DSP、影像/音訊處理或ML相關的題目,整體來說我覺得篇難…XD 我大概只寫了12題
總結
這次找工作面了許多間公司,其實也有抓到一些面試的訣竅跟準備要領,主要就列了以下幾點:
- 溝通技巧: 如何把自己的經歷以及技能完整的描述給面試官聽,並且有邏輯的應答是一件在面試中非常重要的事。
- 經歷: 對自己的所有經歷都要有一定的理解程度,履歷上寫的東西在面試前都要有所準備,不要想說面試官不會問到。
- 自介: 每間公司基本上開頭都會請你先自我介紹,所以這個事前可以先做準備,並且把自我介紹練得順一點,時間大概抓2~3分鐘即可,也蠻建議可以做簡單的slide,並把所有專案的內容都可以放進去,不過可以先隱藏起來,面試官看了你的履歷對哪個專案有興趣再打開說明即可。
本文由 Gi-Luen Huang 授權轉載, 原文: 《 工作 & 面試分享 — Machine Learning Engineer 》
___________
你也有經驗想分享嗎?快來投稿賺稿費吧!
瀏覽 3,970 次