AI大模型面試必問的20個問題:從Transformer到RLHF全覆蓋
大模型面試高頻20題全覆蓋:Transformer基礎、預訓練、微調SFT/LoRA/RLHF/DPO、推理KV Cache/量化/投機解碼、應用RAG/Agent/Prompt Engineering,每題含考察點與答案方向
背景介紹
說實話,我一開始準備大模型面試的時候,完全是一頭霧水。網上資料太多太雜,有的講Transformer講得特別深,有的又只聊應用層,根本不知道面試官到底會問什麼。後來我面了大概七八家做LLM的公司,從小創業團隊到大廠研究院都面過,慢慢摸出了一套規律——大模型面試的核心考察點其實就那幾個板塊,每個板塊的高頻題也就那麼幾道。今天我就把這20道必問題整理出來,希望能幫到正在準備面試的同學。
面試流程復盤
我面的幾家公司流程都差不多:先是簡歷篩選,然後一輪技術面(主要考基礎),二輪深入面(考項目+手推),三輪可能是交叉面或者系統設計面。大模型崗的技術面有個特點,就是基礎知識佔比特別大,不像傳統開發崗那樣主要考項目經驗。面試官會從Transformer原理開始問,一路問到訓練、微調、推理、應用,基本上每個環節都會出題。我印象最深的是某大廠二面,面試官一口氣問了40分鐘基礎題,從Self-Attention問到DPO,中間沒有任何項目相關的討論,純考八股。所以基礎不紮實真的很難過。
真題匯總
一、Transformer基礎(4題)
1. Self-Attention的原理是什麼?為什麼比RNN好?
考察點:理解注意力機制的核心計算流程,以及相比序列模型的優劣。
答案方向:Self-Attention的核心是QKV計算,輸入序列分別乘以Wq、Wk、Wv得到查詢、鍵、值矩陣,然後用Q和K的點積算注意力權重,再乘以V得到輸出。相比RNN,最大的優勢是並行計算和長距離依賴建模。RNN必須逐步處理序列,而Self-Attention可以一次性計算所有位置的關係,訓練速度快很多。而且RNN的長距離依賴會衰減,Attention則直接建模任意兩個位置的關係,沒有衰減問題。時間複雜度上Self-Attention是O(n²),這是它的劣勢,但通過稀疏注意力可以緩解。
2. 位置編碼有哪些方式?RoPE為什麼好用?
考察點:理解位置信息的注入方式,以及旋轉位置編碼的優勢。
答案方向:位置編碼主要有絕對位置編碼(正弦/餘弦、可學習)和相對位置編碼(RoPE、ALiBi)。RoPE的核心思想是通過旋轉矩陣將位置信息融入Q和K的點積中,使得內積自然包含相對位置信息。RoPE的好處是:外推性好,可以通過NTK-aware插值擴展到更長的上下文;計算高效,不需要額外的位置嵌入參數;相對位置感知,天然建模相對距離。現在主流大模型基本都用RoPE了。
3. 多頭注意力的作用是什麼?頭數怎麼選?
考察點:理解多頭機制的動機和設計選擇。
答案方向:多頭注意力讓模型可以在不同子空間中關注不同的信息模式,類似於CNN的多通道。每個頭學習不同的注意力分佈,有的關注局部語法,有的關注長距離語義。頭數的選擇一般是維度/頭維度,比如768維用12個頭(每頭64維)。頭數不是越多越好,太多會導致每個頭的維度太小,表達能力不足。GQA(分組查詢注意力)是近年的改進,多個Q頭共享K/V頭,在推理時減少KV Cache開銷。
4. FFN層的作用是什麼?為什麼用GLU變體?
考察點:理解前饋網絡的角色和GLU激活的優勢。
答案方向:FFN是Transformer中的"記憶"模組,Attention負責信息路由,FFN負責信息加工和存儲。標準FFN是兩層線性變換+ReLU激活。GLU變體(如SwiGLU)引入了門控機制,公式是Swish(xW1)⊙(xW2),其中⊙是逐元素乘法。GLU的優勢是表達能力更強,門控機制可以動態過濾信息;訓練更穩定,Swish激活比ReLU在深層網絡中表現更好。LLaMA、Mistral等模型都用SwiGLU。
二、預訓練(4題)
5. 預訓練的目標函數是什麼?為什麼用CLM而不是MLM?
考察點:理解語言建模目標的選擇。
答案方向:預訓練主要有兩種目標:CLM(因果語言建模,自回歸預測下一個token)和MLM(掩碼語言建模,預測被遮蔽的token)。現在主流大模型都用CLM,原因是:與生成任務天然對齊,下游應用主要是生成式任務;訓練數據利用率高,每個token都作為標籤參與訓練;擴展性好,CLM的scaling law更清晰。MLM雖然單步信息密度更高,但和生成式任務有gap,現在主要用於編碼器模型如BERT。
6. 預訓練數據清洗有哪些關鍵步驟?
考察點:理解數據質量對模型性能的影響。
答案方向:數據清洗是大模型訓練中最容易被低估的環節。關鍵步驟包括:去重(MinHash/LSH去重,避免記憶效應);質量過濾(用小模型打分,過濾低質量網頁);有害內容過濾(安全分類器過濾暴力色情內容);PII移除(脫敏個人身份信息);語言識別(過濾非目標語言數據);格式清洗(去除HTML標籤、模板文本等)。數據質量直接決定模型上限,GPT-4的訓練數據清洗流程據說比模型架構還複雜。
7. 訓練不穩定怎麼排查?loss spike怎麼處理?
考察點:理解大模型訓練的工程挑戰。
答案方向:訓練不穩定是大模型訓練最頭疼的問題。排查思路:檢查數據(是否有髒數據、異常分佈);檢查梯度(監控梯度範數,是否有爆炸/消失);檢查學習率(warmup是否充分,峰值是否過高);檢查精度(混合精度訓練是否有溢出)。Loss spike的處理:最直接的是跳過spike前後的checkpoint,回退到穩定點重新訓練;也可以降低學習率、增大梯度裁剪閾值。Meta訓練LLaMA時用了7個階段的學習率調度來保持穩定。
8. 長上下文怎麼實現?有哪些技術方案?
考察點:理解長上下文擴展的技術路線。
答案方向:長上下文主要有三種路線:訓練時擴展(直接增大序列長度訓練,成本高但效果最好);位置編碼外推(NTK-aware插值、YaRN等,通過調整RoPE的頻率基底來擴展上下文窗口);推理時擴展(StreamingLLM、注意力匯聚等,只保留sink token和局部窗口的KV Cache)。實際上往往是組合使用:先在4K上預訓練,再用NTK-aware擴展到32K做繼續預訓練,最後用長數據微調。GPT-4的128K上下文就是這麼做的。
三、微調(4題)
9. SFT的數據怎麼構造?有什麼坑?
考察點:理解指令微調的實踐細節。
答案方向:SFT數據構造的核心是多樣性和質量。數據來源包括:人工標註、GPT-4生成、開源數據集清洗。關鍵坑點:格式一致性(不同來源的數據格式要統一,否則模型會混亂);長度分佈(不能全是短回答,要有長文生成樣本);拒絕樣本(要加入模型應該拒絕回答的樣本,否則模型會亂答);重複去重(相似指令要去重,否則模型過擬合)。數據量不需要太多,LIMA論文證明了1000條高質量SFT數據就能得到不錯的效果。
10. LoRA和QLoRA的區別是什麼?怎麼選?
考察點:理解參數高效微調的原理和選擇。
答案方向:LoRA在原始權重矩陣旁添加低秩分解矩陣ΔW=BA,訓練時只更新A和B。QLoRA在LoRA基礎上加了三個優化:4-bit NormalFloat量化(用NF4數據類型替代FP16,更精確的量化);雙重量化(對量化常數再量化,節省顯存);分頁優化器(用CPU內存分頁處理優化器狀態,避免OOM)。選擇上,顯存夠用LoRA,顯存緊張用QLoRA。QLoRA的精度損失很小,基本可以替代LoRA。秩r的選擇一般是8-64,任務越複雜r越大。
11. RLHF的流程是什麼?PPO訓練有什麼難點?
考察點:理解人類反饋強化學習的完整流程。
答案方向:RLHF分三步:訓練獎勵模型(用人類偏好數據訓練一個打分模型);用PPO優化策略模型(最大化獎勵同時約束KL散度,防止偏離太遠);迭代優化(收集新偏好數據,重複上述過程)。PPO的難點:訓練不穩定(獎勵模型和策略模型的更新容易互相干擾);KL約束難調(太鬆模型會reward hacking,太緊模型學不到東西);顯存開銷大(需要同時加載4個模型:策略、參考、獎勵、價值)。InstructGPT用了非常精細的超參調優才穩定訓練。
12. DPO相比RLHF有什麼優勢?
考察點:理解直接偏好優化的原理和優劣。
答案方向:DPO的核心思想是跳過獎勵模型,直接用偏好數據優化策略。它通過數學推導證明了在特定條件下,最優策略可以用偏好數據直接參數化,損失函數是log-sigmoid形式。DPO的優勢:不需要訓練獎勵模型,流程簡單;訓練更穩定,沒有PPO的4模型聯合訓練問題;計算成本低,只需要2個模型(策略+參考)。劣勢:泛化性不如RLHF,DPO只優化訓練數據中的偏好,無法泛化到新的偏好維度;對數據質量更敏感,噪聲偏好數據會直接影響策略。實際中DPO和RLHF各有適用場景,簡單對齊用DPO,複雜對齊還是RLHF更靈活。
四、推理(4題)
13. KV Cache的原理是什麼?怎麼優化?
考察點:理解推理加速的核心技術。
答案方向:KV Cache是在自回歸生成時緩存已計算的K和V矩陣,避免重複計算。每個新token只需要和緩存的KV做注意力計算,不用重新計算之前所有token的KV。優化方法:GQA/MQA(多個Q頭共享KV頭,減少KV Cache大小);量化(KV Cache用8-bit或4-bit存儲);分頁注意力(vLLM的PagedAttention,像操作系統管理內存一樣管理KV Cache,避免碎片);滑動窗口(只保留最近W個token的KV,如Mistral的滑動窗口注意力)。KV Cache是大模型推理最大的顯存瓶頸,優化空間很大。
14. 量化有哪些方式?INT8和INT4的精度損失大嗎?
考察點:理解模型量化的原理和效果。
答案方向:量化分訓練後量化(PTQ)和量化感知訓練(QAT)。PTQ又分權重量化(只量化權重)和權重+激活量化(W8A8、W4A16等)。INT8權重量化精度損失很小,基本不影響效果;INT4權重量化在7B以上模型上損失也可接受,但小模型(1-3B)會有明顯退化。關鍵技巧:GPTQ(逐層量化,用Hessian信息補償量化誤差);AWQ(基於激活感知的權重量化,保護重要通道);SmoothQuant(把激活的量化難度遷移到權重上)。現在W4A16是最主流的推理量化方案。
15. 投機解碼是什麼?能加速多少?
考察點:理解投機推理的原理和加速效果。
答案方向:投機解碼的核心思想是用一個小模型(draft model)快速生成多個候選token,然後大模型一次前向傳播驗證這些token是否正確。如果小模型生成的k個token中有n個被大模型接受,就相當於一次前向傳播生成了n+1個token(n個接受的+1個大模型自己生成的)。加速比取決於小模型和大模型的分佈匹配程度,匹配越好加速越高。實際中一般能獲得2-3倍的加速,且不損失精度。Medusa是投機解碼的改進版,給大模型加多個預測頭來並行生成候選token,不需要單獨的小模型。
16. 主流推理框架有哪些?怎麼選?
考察點:了解推理框架的生態和選型。
答案方向:主流框架:vLLM(PagedAttention,吞吐量高,適合在線服務);TGI(HuggingFace出品,功能全面,部署方便);TensorRT-LLM(NVIDIA出品,GPU優化極致,但上手門檻高);llama.cpp(CPU/Apple Silicon推理,適合本地部署);MLC-LLM(編譯優化,跨平台)。選擇建議:在線服務選vLLM或TGI,追求極致性能選TensorRT-LLM,本地開發選llama.cpp。vLLM目前社區最活躍,是大多數團隊的首選。
五、應用(4題)
17. RAG的流程是什麼?怎麼提升效果?
考察點:理解檢索增強生成的實踐。
答案方向:RAG流程:用戶問題→Embedding→向量檢索→拼接上下文→LLM生成。提升效果的方法:檢索優化(混合檢索:向量+關鍵詞、重排序:用Cross-Encoder精排);分塊優化(語義分塊替代固定長度分塊、父子文檔策略);查詢優化(查詢改寫、多查詢擴展、HyDE假設性文檔嵌入);生成優化(上下文壓縮、引用追蹤、幻覺檢測)。RAG最大的坑是檢索質量,檢索不到相關文檔,生成再好也沒用。建議先花80%精力優化檢索,再優化生成。
18. Agent的核心架構是什麼?怎麼設計?
考察點:理解AI Agent的設計模式。
答案方向:Agent核心是感知-決策-執行循環:LLM作為大腦,接收環境信息→思考下一步行動→調用工具執行→觀察結果→繼續思考。主流架構:ReAct(推理+行動交替,簡單但token消耗大);Plan-and-Execute(先制定完整計劃再逐步執行,適合複雜任務);LATS(語言Agent樹搜索,用蒙特卡洛樹搜索做規劃)。設計要點:工具定義要清晰(名稱、描述、參數schema);錯誤處理要完善(工具調用失敗要有重試/回退);上下文管理要合理(對話歷史太長要截斷/摘要)。
19. Prompt Engineering有哪些技巧?
考察點:掌握提示詞工程的核心方法。
答案方向:核心技巧:角色設定(給模型一個專業角色,輸出更專業);少樣本學習(給幾個示例,模型能快速理解任務格式);思維鏈(加"讓我們一步步思考",讓模型展示推理過程);結構化輸出(要求JSON/Markdown格式,方便後處理);自我一致性(多次採樣取多數結果,提高可靠性);分步指令(複雜任務拆成多步,每步給明確指令)。進階技巧包括元提示(讓模型自己優化提示詞)和自動提示優化(如OPRO用LLM搜索最優提示)。
20. 多模態大模型怎麼做的?有什麼挑戰?
考察點:理解多模態模型的技術路線。
答案方向:主流方案:編碼器-對齊-LLM,用視覺編碼器(如ViT)提取視覺特徵,通過投影層對齊到語言空間,然後輸入LLM。代表模型:LLaVA(簡單線性投影)、Qwen-VL(交叉注意力)、GPT-4V(細節未公開但推測類似)。核心挑戰:模態對齊(視覺和語言的語義空間差異大,對齊質量決定多模態理解能力);高分辨率處理(圖像分辨率高,token數爆炸,需要動態分辨率或切片策略);訓練數據(高質量圖文對數據稀缺,需要精心構造);幻覺(多模態模型更容易產生視覺幻覺,需要專門的對齊訓練)。
心得建議
準備大模型面試,我的最大體會是基礎一定要紮實。Transformer的每個細節都要搞清楚,不能只背結論。面試官最喜歡追問"為什麼",比如你說RoPE好,他一定會問"為什麼RoPE能外推",你說DPO簡單,他一定會問"DPO的數學推導是什麼"。所以每個知識點不僅要知其然,還要知其所以然。
第二個建議是關注最新進展。大模型領域發展太快了,半年前的知識可能已經過時。面試前一定要看最近3個月的論文,特別是各大廠的最新工作。我面試時就因為不知道GQA被面試官提醒了,很尷尬。
第三個建議是動手實踐。光看不練是不夠的,至少要用HuggingFace跑一遍SFT和LoRA微調,用vLLM部署過推理服務,用LangChain搭過RAG系統。面試官很看重實踐經驗,能說出踩過的坑比背理論強一百倍。
FAQ
Q:大模型面試需要刷LeetCode嗎?
A:看崗位。如果是偏算法研究的崗位,一般不考算法題,主要考理論和推導。如果是偏工程的崗位(推理優化、訓練框架等),會考中等難度的算法題。建議至少刷50道中等題保底。
Q:沒有大模型訓練經驗怎麼辦?
A:可以用開源模型做微調實驗,用HuggingFace的TRL庫跑SFT/DPO,用vLLM部署推理。這些都可以寫在簡歷上。關鍵是能說出具體的技術細節和踩過的坑。
Q:面試被問到不會的問題怎麼辦?
A:誠實說不太了解,但可以說說自己的理解方向。比如被問到某個具體論文,可以說"這篇論文我沒讀過,但從問題來看我猜測可能的思路是..."。面試官更看重思考能力而非記憶能力。
Q:需要讀哪些論文?
A:必讀:Attention Is All You Need、GPT系列、LLaMA系列、InstructGPT(RLHF)、DPO。選讀:Flash Attention、vLLM、RAG相關論文。至少把必讀論文的方法部分仔細看一遍。
Q:大模型面試和傳統ML面試有什麼區別?
A:傳統ML面試更偏數學推導和統計基礎,大模型面試更偏系統工程和最新技術。但基礎是相通的,建議先打好傳統ML基礎,再學大模型專項知識。