節前,我們組織了一場算法崗技術&面試討論會,邀請了一些互聯網大廠同學、參加社招和校招面試的同學,針對大模型技術趨勢、大模型落地項目經驗分享、新手如何入門算法崗、該如何備戰、面試常考點分享等熱門話題進行了深入的討論。
今天整理我們社群一個同學面試字節 NLP 算法方向的面試題,分享給大家,希望對后續找工作的有所幫助。喜歡記得點贊、收藏、關注。更多技術交流&面經學習,可以加入我們。
我是內推途徑進行面試,速度比較快,在周日投遞簡歷,隔天周一hr就約了周四的面試,結果那天是2面視頻技術面+hr面直接走完了,緊接著就是offer call。整體投遞+面試+發錄用通知函的時間不到一周,而且面試官都是和簡歷對口的,整體體驗非常棒。
面試的崗位是“AI Lab實習生 — 自然語言處理NLP”,一共2面技術和一面hr,這里主要說下其中的技術面試。
一面
20min簡歷 + 30min題
先自我介紹,然后面試官說了句“好的了解”就直接進入項目了。
我的經歷主要是一些競賽,因此也是主要聊競賽,在競賽細節中扣一些細節提問。競賽主要是關于機器閱讀理解MRC的(百度機器閱讀、萊斯杯等),面試官也剛好懂,大致問題如下:
-
請你描述一下競賽背景,以及你在其中的工作/職責。
-
我看你數據做了很多預處理,這部分重要嗎,具體是如何做的預處理。這個不同項目應該不太一樣,不細說了。
-
我看你用了word2vec的詞向量,知道它是如何訓練的嗎,有哪些trick。這個很基礎了,trick就是負采樣和分層softmax。
-
glove了解嗎,elmo呢?
-
你把很多組件改成了transformer 的 multi-head attention,為什么要舍棄lstm的結構而選用它呢。我回答的是可并行+更強大的特征提取能力,順便還解釋了self attention的原理以及multi-head的作用。
-
說一下bidaf的匹配層,解釋了bidaf的c2q和q2c的意義和具體做法。
-
你取得top2的成績還有其他優化嗎。這部分答了很多,當時吃了沒用bert的虧,所以在很多方面進行了一定的優化。
-
你的第二個競賽用roberta,它和bert的區別。動態mask+去除NSP+大力出奇跡(更大的batch,更多的數據,更多的step)。
-
xlnet和bert有啥不同。自回歸&&自編碼的知識,其中解釋了xlnet排列語言模型以及雙流attention。
-
albert了解嗎?embedding層矩陣分解+參數共享 + SOP + 工程細節。
其他還有些小問題想不起來了,總體來說問的面不廣,但是扣了些細節。
兩道算法題:
-
順時針打印數組
-
編輯距離
大模型題目:
-
怎么解決大語言模型的幻覺問題,RLHF可以嗎?
-
為什么模型越大,貌似更多地具備AGI的能力?這背后的邏輯是什么?
-
有做過大模型訓練的實踐嗎,有哪些收獲或者感悟?
-
關于微調的方法有哪些?
-
如何評估大模型中數據集的質量?
-
怎么解決大語言模型的幻覺問題,RLHF可以嗎?
-
PPO算法和DQN算法的區別是什么?
二面
先同樣是自我介紹。
然后出了一道“智力題”?
10個袋子,1000個球,你用球填充袋子,然后就固定了。現在來一個客戶,無論他要1~1000哪個數量,你都能通過組裝幾個袋子給他。
我開始對面試官說可以動態規劃:第一個袋子放1個,第二個袋子放2個,這個時候3=1+2,所以第三個袋子不用放3個,放4個;此時5=4+1,6=4+2,7=4+2+1都能組合得到,所以第四個袋子放8個,以此類推。后來一想,這不就是個1,2,4,8的等比數列嗎…
因為我提到了動態規劃,面試官為了使用動態規劃要滿足的條件是什么?什么情況下時候動態規劃比較好呢?答:使用dp需要滿足最優子結構性質 + 無后效性,在子問題有重疊的時候可以自頂向下的記憶化搜索,或者直接寫成自底向上的dp。
問我了一個C++的問題,后來看我很懵逼,看一眼簡歷說哦你是會Java啊,那我們換個問題,你說一下堆和棧。我說了數據結構的堆和棧,被打斷,他說是內存分配中的堆和棧。這部分答得不好。
接著是簡歷了,主要也是問競賽相關,聽我這些競賽的細節,然后針對細節提問,沒咋問transformer、bert相關,問了更偏傳統機器學習一些, 主要是一些關于gbdt、xgb、crf。
gbdt和xgb的就不細說了。
crf部分問的很詳細,例如它的具體定義?什么是馬爾可夫隨機場?講講你對crf的理解?crf和hmm的區別知道嗎,為什么ner任務用crf而不是hmm?crf具體如何預測?感覺答得一般。
2道算法題:
-
口述了一道算法題,我記不起來了,是一道dp題來著,反正很快想到了方法,就pass了。
-
安卓手機的解碼方式多少種,就是那種9個點,可以上下左右、左上、左下、右上、右下連線的解鎖,最少一個第一點,最多可以全連上,一個點只能用一次。我用的dfs直接做的。
大模型題目:
- 大模型的網絡結構有哪幾個部分?
- 除了數據之外,還有哪些方向的工作可以進一步優化大模型的效果?
- 如果讓你訓練一個模型,基座,數據,finetune的方法怎么選?
- prefix LM 和 causal LM 區別是什么?
- 垂直領域數據訓練后,通用能力往往會有所下降,如何緩解模型遺忘通用能力?
技術交流群
前沿技術資訊、算法交流、求職內推、算法競賽、面試交流(校招、社招、實習)等、與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企開發者互動交流~
我們建了算法崗技術與面試交流群, 想要進交流群、需要源碼&資料、提升技術的同學,可以直接加微信號:mlc2060。加的時候備注一下:研究方向 +學校/公司+CSDN,即可。然后就可以拉你進群了。
方式①、微信搜索公眾號:機器學習社區,后臺回復:加群
方式②、添加微信號:mlc2060,備注:技術交流
用通俗易懂方式講解系列
- 用通俗易懂的方式講解:自然語言處理初學者指南(附1000頁的PPT講解)
- 用通俗易懂的方式講解:1.6萬字全面掌握 BERT
- 用通俗易懂的方式講解:NLP 這樣學習才是正確路線
- 用通俗易懂的方式講解:28張圖全解深度學習知識!
- 用通俗易懂的方式講解:不用再找了,這就是 NLP 方向最全面試題庫
- 用通俗易懂的方式講解:實體關系抽取入門教程
- 用通俗易懂的方式講解:靈魂 20 問幫你徹底搞定Transformer
- 用通俗易懂的方式講解:圖解 Transformer 架構
- 用通俗易懂的方式講解:大模型算法面經指南(附答案)
- 用通俗易懂的方式講解:十分鐘部署清華 ChatGLM-6B,實測效果超預期
- 用通俗易懂的方式講解:內容講解+代碼案例,輕松掌握大模型應用框架 LangChain
- 用通俗易懂的方式講解:如何用大語言模型構建一個知識問答系統
- 用通俗易懂的方式講解:最全的大模型 RAG 技術概覽
- 用通俗易懂的方式講解:利用 LangChain 和 Neo4j 向量索引,構建一個RAG應用程序
- 用通俗易懂的方式講解:使用 Neo4j 和 LangChain 集成非結構化知識圖增強 QA
- 用通俗易懂的方式講解:面了 5 家知名企業的NLP算法崗(大模型方向),被考倒了。。。。。
- 用通俗易懂的方式講解:NLP 算法實習崗,對我后續找工作太重要了!。
- 用通俗易懂的方式講解:理想汽車大模型算法工程師面試,被問的瑟瑟發抖。。。。
- 用通俗易懂的方式講解:基于 Langchain-Chatchat,我搭建了一個本地知識庫問答系統
- 用通俗易懂的方式講解:面試字節大模型算法崗(實習)
- 用通俗易懂的方式講解:大模型算法崗(含實習)最走心的總結
- 用通俗易懂的方式講解:大模型微調方法匯總