NLP社招面經(jīng)分享!
作者 | 年年的鏟屎官 整理 | NewBeeNLP https://zhuanlan.zhihu.com/p/546364420
背景介紹
知乎上有個(gè)問(wèn)題是有哪些行為堪比「1949年加入國(guó)民黨」?[1], 那么我覺(jué)得我選擇在2022年跳槽也算是一種吧[捂臉]。
2022年大環(huán)境不太好,整體hc(head count)比2021年少了很多 ,回想2021年,各個(gè)候選人所到之處,各家大廠中廠竭誠(chéng)歡迎,hc充足,大家挑花了眼,那種生機(jī)勃勃,萬(wàn)物競(jìng)發(fā)的景象猶在眼前,沒(méi)想到短短一年之后,居然情況急轉(zhuǎn)直下。
情況介紹:我主要做nlp,也涉及到多模態(tài)和強(qiáng)化學(xué)習(xí)的東西。2022年的大環(huán)境比較差,能投的公司不是很多,比如騰訊,主要還是高級(jí)別的,所以騰訊我就沒(méi)投(說(shuō)得好像我投了能面過(guò)一樣...)
面了的公司包括 小紅書,抖音,寒武紀(jì),螞蟻 ,還有一些 國(guó)企和研究院 ,比如北京智源人工智能研究院,某國(guó)內(nèi)金融公司,其他的用來(lái)練手也面了一些,比如 蔚來(lái)汽車,吉利汽車,華人運(yùn)通,boss直拒 ,還有一些元宇宙公司,AI制藥公司之類的,拿到了其中大部分offer,當(dāng)然我自己也遇到一些拉胯情況,比如小紅書二面掛[笑哭]
面試總結(jié)
這一個(gè)多月面下來(lái),總體面試考察主要包括下面幾個(gè)模塊: 代碼題+項(xiàng)目細(xì)節(jié)+八股文+場(chǎng)景題 ,其中:
代碼
代碼題,寫不出來(lái)大概率還是要跪的,我覺(jué)得刷200道左右一般就問(wèn)題不大。200道爭(zhēng)取達(dá)到肌肉記憶,就是給出你題目你要10s之內(nèi)給出思路,哪怕沒(méi)有bug free,但是一定要保證有思路。
有一點(diǎn)要注意, 200道高頻題刷2遍,好過(guò)400道題目刷一遍,重點(diǎn)還是刷高頻題 。另外推薦的 刷題地址 ,里面可以選擇公司和標(biāo)簽:
https://codetop.cc/home
項(xiàng)目
項(xiàng)目細(xì)節(jié)我的感觸最深,有些面試官會(huì)問(wèn)的很細(xì),在不斷的試探我們的邊界,所以項(xiàng)目細(xì)節(jié)還是要準(zhǔn)備到位。通過(guò)這段時(shí)間的面試我反而對(duì)項(xiàng)目的理解更深刻,不知道這算不算面試給我?guī)?lái)的收益?
這里有一個(gè) 提高通過(guò)率的小trick :可以和1個(gè)或者多個(gè) 靠譜 小伙伴一起, 讓大家看對(duì)方的簡(jiǎn)歷,假設(shè)自己是面試官,然后針對(duì)項(xiàng)目出一些題目 ,這樣一來(lái)可以查漏補(bǔ)缺,有點(diǎn)co-teaching的感覺(jué),這個(gè)方法還是挺管用的,大家可以試試~
八股文
八股文的話主要 圍繞項(xiàng)目出題 ,比如你做了強(qiáng)化學(xué)習(xí)的東西,那么常見(jiàn)的reinforce,actor-critic,on policy和off policy的區(qū)別,一定要掌握。
比如你項(xiàng)目用到了swin-transformer,那么swin-transformer和傳統(tǒng)的transformer的區(qū)別是什么,patch merging怎么做的,要清楚。
場(chǎng)景題
場(chǎng)景題可能是大廠喜歡考察,小廠不一定問(wèn)。
面經(jīng)
廢話不多說(shuō),面經(jīng)奉上:
小紅書
小紅書一面:
聊項(xiàng)目
你們的訓(xùn)練集和驗(yàn)證集,測(cè)試集分別是多少?怎么來(lái)的?
宏平均和微平均是用來(lái)干什么的?是如何計(jì)算的?他倆的主要區(qū)別?
知識(shí)蒸餾為什么有效,詳細(xì)介紹一下知識(shí)蒸餾?
強(qiáng)化學(xué)習(xí)適合在哪些場(chǎng)景使用?
智力題:如何用rand6實(shí)現(xiàn)rand10
代碼題:lc 76,最小覆蓋子串
小紅書二面:
聊項(xiàng)目
layer normalization的好處是?和batch normalization的區(qū)別?你有沒(méi)有看過(guò)有的transformer也用bn?
BERT的主要改進(jìn),包括結(jié)構(gòu)的改進(jìn),預(yù)訓(xùn)練方式的改進(jìn),都說(shuō)一下?(這里能說(shuō)的很多,挑自己熟悉的說(shuō)就行)
Reformer中,LSH(局部敏感哈希)是如何實(shí)現(xiàn)的?
CRF和HMM的區(qū)別,哪個(gè)假設(shè)更強(qiáng)?他們的解碼問(wèn)題用什么算法?
lstm參數(shù)量計(jì)算,給出emb_size和hidden_size,求lstm參數(shù)量
cv中有哪些常見(jiàn)的數(shù)據(jù)增強(qiáng)方式
簡(jiǎn)單實(shí)現(xiàn)一個(gè)layer normalization類,只需要實(shí)現(xiàn)__init__和forward就行
總結(jié):這一面壓力不小,而且面試官?gòu)囊婚_(kāi)始就多次打斷我的說(shuō)話,說(shuō)我目前做的項(xiàng)目沒(méi)意義,而且表情好像不耐煩,不知道是不是晚上面試耽誤他下班了。這是我體驗(yàn)最差的一場(chǎng)面試,當(dāng)時(shí)我有點(diǎn)想和他懟起來(lái),但是想想還是忍住了,最后掛了也是意料之中
抖音
抖音一面
聊項(xiàng)目
AUC的兩種公式是?你能證明這兩種等價(jià)的嗎?
BERT-CRF中,為什么要加CRF?好處是?
self-attention為什么要用QKV三個(gè)矩陣,不用有什么問(wèn)題?有沒(méi)有哪個(gè)模型的Q和K矩陣是一樣的?
reinforce屬于on-policy還是off-policy?為什么?
reinforce帶上baseline好處是?reinforce的loss寫一下?
策略梯度會(huì)推導(dǎo)嗎?簡(jiǎn)單寫一下?
代碼題(代碼題一般別著急寫,先跟面試官說(shuō)下思路,確定了再寫):
lc 46,全排列(lc表示leetcode,下同)
lc 73,矩陣置0
總結(jié):這一面我以為面試官只會(huì)問(wèn)多模態(tài),不會(huì)問(wèn)強(qiáng)化學(xué)習(xí),沒(méi)想到這個(gè)面試官好厲害,強(qiáng)化學(xué)習(xí)也很懂,真的很強(qiáng)啊,我比較好奇,他們哪里來(lái)那么多時(shí)間看那么多領(lǐng)域的東西
抖音二面
介紹項(xiàng)目
知識(shí)蒸餾有哪幾種?你覺(jué)得哪種效果最好?
nlp的數(shù)據(jù)增強(qiáng)方法,主要有哪幾種?每一種舉個(gè)例子?
分類的損失函數(shù)為什么是交叉熵而不是mse?
BERT對(duì)輸入文本的長(zhǎng)度有什么限制,為什么要限制長(zhǎng)度呢?
BigBird里面有哪幾種注意力機(jī)制?相比原始transformer的self-attention的優(yōu)勢(shì)?
場(chǎng)景題:如何根據(jù)拼多多的商品數(shù)量,估計(jì)淘寶的商品數(shù)量?
給出emb_size, max_len, vocab_size, ff_inner_size,num_heads, 12層,求BERT參數(shù)量
代碼題:n皇后問(wèn)題
總結(jié):給我來(lái)了一道hard題目,我以為我要掛了,結(jié)果沒(méi)幾分鐘HR告訴我過(guò)了
抖音三面
簡(jiǎn)單聊項(xiàng)目
CRF和HMM區(qū)別?CRF為什么比HMM效果好?
如果BERT詞表很大,比如vocab_size達(dá)到幾百萬(wàn),怎么辦?
快速手寫一些transformer的mha(多頭注意力),偽代碼意思一下就行
為什么對(duì)比學(xué)習(xí)中,temperature很小,而知識(shí)蒸餾的temperature比較大?
你覺(jué)得在抖音買東西,和淘寶、拼多多他們的區(qū)別是?(我沒(méi)在抖音買過(guò),就只能現(xiàn)場(chǎng)編。。)
你最近看到過(guò)哪些paper?簡(jiǎn)單介紹下?
你覺(jué)得自己有那些優(yōu)缺點(diǎn)?平時(shí)喜歡怎么緩解壓力?
總結(jié):這一面的面試官很和藹,一直笑呵呵的,后面就是閑聊了,體驗(yàn)很不錯(cuò)
螞蟻
螞蟻一面:
聊項(xiàng)目
多模態(tài)的預(yù)訓(xùn)練方式你知道哪些,知道的都說(shuō)一下?
coca和CLIP的區(qū)別?為什么coca效果比CLIP好?
CLIP預(yù)訓(xùn)練的時(shí)候,batch size達(dá)到了32768,他用到了哪些trick去提高batch size?
CRF的loss寫一下,CRF打破了HMM的哪個(gè)假設(shè)?
對(duì)比學(xué)習(xí)為什么有效?cv和nlp的經(jīng)典的對(duì)比學(xué)習(xí)的模型說(shuō)一下?
多頭注意力的頭的數(shù)量,對(duì)參數(shù)量有影響嗎?為什么?
transformer里面為什么要加add&norm模塊?好處是什么?
代碼:
簡(jiǎn)單實(shí)現(xiàn)一個(gè)transformer-encoder-layer,要求pre-norm和post-norm可選
編輯距離
這和我想的螞蟻的面試不太一樣,我以為螞蟻的代碼題會(huì)容易一些呢,之前看到的面經(jīng),螞蟻的代碼題一般以medium為主
螞蟻二面:
聊項(xiàng)目
衡量對(duì)比學(xué)習(xí)的兩個(gè)指標(biāo)是哪些?公式?
transformer相比lstm的優(yōu)勢(shì)有哪些?
distillBERT, tinyBERT, mobileBERT和miniLM,他們是如何對(duì)BERT蒸餾的?
ViT是如何對(duì)圖片進(jìn)行處理的?為什么要加position embedding?
說(shuō)到position embedding,transformer一定要加position embedding么?有些模型沒(méi)有加pe,你知道嗎?
beam search的思想,偽代碼實(shí)現(xiàn)
代碼題:lc 33,排序數(shù)組的搜索
螞蟻三面:
聊項(xiàng)目
多頭注意力,給出序列長(zhǎng)度n和hidden_size,那么多頭注意力的時(shí)間復(fù)雜度是多少?
ALBert相比BERT的改進(jìn),說(shuō)一下?
BERT預(yù)訓(xùn)練有哪些問(wèn)題?后面的模型怎么改進(jìn)的?重點(diǎn)說(shuō)說(shuō)ELECTRA和MacBERT
有沒(méi)有了解過(guò),有的模型用生成的方式做信息抽取?
講一下UIE模型是怎么做信息抽取的?其中的SSI和SEL說(shuō)一下?
你老家哪里的?有哪些興趣愛(ài)好?
你覺(jué)得自己優(yōu)缺點(diǎn)有哪些?
我們走個(gè)流程,來(lái)一道代碼題把,lc 207,課程表
寒武紀(jì)
寒武紀(jì)一面:
聊項(xiàng)目
你知道哪些對(duì)比學(xué)習(xí)的方法?cv和nlp都說(shuō)一下
simCLR和moco區(qū)別?moco里面加k_encoder的作用?
moco v2, moco v3相對(duì)moco的改進(jìn)有哪些?
resnet為什么效果好?殘差連接的好處?
pytorch中,dataloader dataset和sampler的關(guān)系?
動(dòng)態(tài)圖和靜態(tài)圖區(qū)別?
蒸餾,量化和剪枝的原理大致說(shuō)一下?
寒武紀(jì)二面:
聊項(xiàng)目
簡(jiǎn)單介紹一些CRF的好處,CRF條件概率的公式寫一下
transformer相比lstm的優(yōu)勢(shì)有哪些?
transformer優(yōu)點(diǎn)那么多,是不是可以淘汰lstm了,以后全用transformer?
swin-transformer和ViT的區(qū)別?數(shù)據(jù)量少的時(shí)候,他們和ResNet比,哪個(gè)效果好?為什么?
寒武紀(jì)做什么你知道嗎?分布式訓(xùn)練用過(guò)嗎?
pytorch的ddp和dp區(qū)別是什么?
你對(duì)混合精度的了解多嗎?說(shuō)一下混合精度的原理?
面試感受
高密度的面試挺累的,所以我建議 分階段面試 :前期面試一些練手的小公司,同時(shí)這些小公司也不能太水,不然達(dá)不到練手的效果,然后比如隔一周時(shí)間稍微總結(jié)下,接下來(lái)正式面試自己的dream company 結(jié)對(duì)跳槽 是個(gè)不錯(cuò)的選擇,這次跳槽我和朋友一起跳,相互給對(duì)方出題,相互吐槽自己遇到的奇葩面試官,比自己一個(gè)人跳槽有趣的多。這次面試的復(fù)習(xí)過(guò)程也得到了很多大佬的幫助,比如 @Notic、@顧逸、@還我漂漂拳、@馬東什么 給了我很多指點(diǎn)和建議,沒(méi)有他們的幫助我估計(jì)面試通過(guò)率下降一半,所以內(nèi)心真的特別感謝~
3,針對(duì)有些大廠,流程可能有些長(zhǎng),建議速戰(zhàn)速?zèng)Q(比如約面試時(shí)間,如果準(zhǔn)備好了,那面試安排的越早越好),不然拖得太久了可能被流程里面更match或者更優(yōu)秀的候選人擠掉
如何對(duì)待面經(jīng):
現(xiàn)在市面上面經(jīng)很多,我的感受是要有的放矢,避免對(duì)面經(jīng)的過(guò)擬合,比如我之前也看了很多學(xué)長(zhǎng)學(xué)姐的面經(jīng),里面很多傳統(tǒng)機(jī)器學(xué)習(xí)的問(wèn)題,比如GBDT,xgboost之類的,我這次面試,也花了不少時(shí)間準(zhǔn)備了一些相關(guān)內(nèi)容,然而面試的時(shí)候,GBDT,xgboost之類的壓根就沒(méi)遇到,白白準(zhǔn)備了半天。
究其原因,一個(gè)是因?yàn)樗麄兊暮?jiǎn)歷有相關(guān)內(nèi)容,所以面試官會(huì)問(wèn),第二個(gè)原因也可能是大家遇到的公司類型不一樣,有的喜歡順帶考察一些機(jī)器學(xué)習(xí)的內(nèi)容。所以大家如果時(shí)間緊張,那看面經(jīng)的時(shí)候,發(fā)現(xiàn)面經(jīng)里面很多問(wèn)題不會(huì),不用太過(guò)擔(dān)心,把項(xiàng)目相關(guān)的基礎(chǔ)知識(shí)+常見(jiàn)八股搞懂就可以了。當(dāng)然了如果你還是不放心,或者你要面試的部門可能考察,那可以花幾天準(zhǔn)備下。
END
分享
收藏
點(diǎn)贊
在看

