深度學(xué)習(xí)面試題大闖關(guān):2026年大廠AI面試全解析

前言

翻開任何一個算法崗位的面試回憶貼,你會發(fā)現(xiàn)一個驚人的規(guī)律——無論你投遞的是字節(jié)、阿里、騰訊還是百度,“深度學(xué)習(xí)”三個字永遠(yuǎn)穩(wěn)穩(wěn)地占據(jù)著面經(jīng)榜單。一位候選人曾經(jīng)分享了這樣的面試心路歷程:“在校招剛開始的時候,我把李沐老師的《動手學(xué)深度學(xué)習(xí)》翻了兩遍,覺得自己已經(jīng)準(zhǔn)備萬全。結(jié)果面試官從‘為什么ResNet能設(shè)計到152層?’一路問到‘GPT-4的EEOP 推理 加速策略是怎么做的?’,整整90分鐘打得我毫無還手之力,最終面試灰溜溜地結(jié)束?!?/p>

這不是“坑”,而是2026年深度學(xué)習(xí)面試的常態(tài)。

如果你還在按照兩三年前的舊版題庫準(zhǔn)備——背誦 CNN 與RNN的區(qū)別、復(fù)述反向傳播公式、熟練描述幾種經(jīng)典激活函數(shù)——那么你很可能會在這次面試中“起得非???,掛得也很快”。行業(yè)內(nèi)部已經(jīng)形成了共識:能跑通模型、讀過幾篇論文、會用PyTorch和TensorFlow的候選人一抓一大把,面試官真正不確定的是——拿到一個深度學(xué)習(xí)模型的人,到底懂不懂它在真實世界中是怎么運轉(zhuǎn)的、會踩哪些坑。

因此,2026年的深度學(xué)習(xí)面試題,重點已經(jīng)遠(yuǎn)遠(yuǎn)離開了概念定義的背誦,而是轉(zhuǎn)向了對深層機(jī)制的理解和推理、對模型失效模式的分析,以及在生產(chǎn)環(huán)境下的決策能力。面試官現(xiàn)在要深挖的是:為什么這個訓(xùn)練過程不穩(wěn)定?為什么模型在指標(biāo)很好看的情況下泛化能力卻很差?為什么增加參數(shù)反而讓性能變得更糟?為什么一個“數(shù)學(xué)上正確”的模型 架構(gòu) 在生產(chǎn)環(huán)境中處處出問題?

本文從神經(jīng)網(wǎng)絡(luò)基礎(chǔ)、模型訓(xùn)練與優(yōu)化、經(jīng)典架構(gòu)深度剖析、Transformer與大模型、微調(diào)與高效參數(shù)優(yōu)化、生成模型與多模態(tài)、工程部署與AI Infra這七個板塊,系統(tǒng)整理了深度學(xué)習(xí)面試中最核心、最高頻的問題深入解析。從每一道題的解析,你都能梳理出完整的思維鏈條——每道題不僅給出答案,更把背后的“為什么”和“怎么用”說透。

一、 神經(jīng)網(wǎng)絡(luò)基礎(chǔ)

1.1 什么是神經(jīng)網(wǎng)絡(luò)?它與機(jī)器學(xué)習(xí)中的其他模型有什么本質(zhì)區(qū)別?

神經(jīng)網(wǎng)絡(luò)是由大量簡單的神經(jīng)元(計算單元)相互連接形成的計算系統(tǒng),每個神經(jīng)元接收來自其他神經(jīng)元的輸入,通過權(quán)重加權(quán)求和后,經(jīng)過非線性激活函數(shù)產(chǎn)生輸出。神經(jīng)網(wǎng)絡(luò)能夠自動從原始數(shù)據(jù)中學(xué)習(xí)到層次化的特征表示——低層檢測邊緣和紋理,高層組合成物體的部分,頂層識別出完整的對象類別。與傳統(tǒng)的機(jī)器學(xué)習(xí)模型(如線性回歸、決策樹、SVM)相比,神經(jīng)網(wǎng)絡(luò)最大的本質(zhì)區(qū)別在于它能夠在大規(guī)模數(shù)據(jù)中自適應(yīng)地學(xué)習(xí)到數(shù)據(jù)的多層次抽象特征,而傳統(tǒng)模型通常需要人工設(shè)計特征工程。

1.2 神經(jīng)網(wǎng)絡(luò)為什么需要激活函數(shù)?沒有激活函數(shù)會怎樣?

面試出現(xiàn)頻次:? 真實出現(xiàn)在字節(jié)、阿里、騰訊、百度等面試中

回答要點

激活函數(shù)的作用是為神經(jīng)網(wǎng)絡(luò)引入非線性變換。如果沒有激活函數(shù),無論你堆疊多少層,最終都可以化簡為單層線性變換:

設(shè)輸入為x,經(jīng)過第一層權(quán)重W?得到W?x,經(jīng)過第二層權(quán)重W?,結(jié)果為W?(W?x) = (W?W?)x。再疊第三層,無非是再乘一次,最終依然是線性變換。這意味著一個事實:沒有激活函數(shù)的多層神經(jīng)網(wǎng)絡(luò),完全等價于一個單層線性模型。這樣的模型連XOR這種簡單的非線性邏輯都處理不好——深度的意義就徹底消失了。

激活函數(shù)的本質(zhì)是讓網(wǎng)絡(luò)能夠逼近任意復(fù)雜函數(shù)的“必需品”。常見的激活函數(shù)包括:Sigmoid(將輸出壓縮到0-1之間,早期流行但存在梯度消失問題)、Tanh(輸出在-1到1之間,零均值特性)、ReLU(正區(qū)間梯度恒為1,現(xiàn)代深度學(xué)習(xí)的標(biāo)配)、Leaky ReLU(負(fù)半軸保留小梯度以解決“死神經(jīng)元”問題)、GeLU(在 Transformer 架構(gòu)中廣泛使用)、Swish和SwiGLU等。

面試回答陷阱:只答“為了引入非線性”是不夠的,面試官會追問“為什么非線性是必要的?”你需要說明:線性變換的組合仍然是線性變換,只有非線性才能讓網(wǎng)絡(luò)表達(dá)復(fù)雜的決策邊界,就像一條直線永遠(yuǎn)畫不出一條彎曲的分界線。

進(jìn)階追問:“什么情況下可以不用激活函數(shù)?”答案是:只在少量場景不用——輸出層做回歸任務(wù)且確認(rèn)數(shù)據(jù)已經(jīng)是線性關(guān)系時,或者網(wǎng)絡(luò)只有一層時。除此之外一切隱藏層都必須用激活函數(shù)。

1.3 Sigmoid、Tanh和ReLU的區(qū)別是什么?各自有什么優(yōu)缺點?

面試出現(xiàn)頻次:? ·

回答要點

維度

Sigmoid

Tanh

ReLU

輸出范圍

(0, 1)

(-1, 1)

[0, +∞)

梯度特性

兩端飽和,梯度趨近0

兩端飽和,梯度趨近0

正半軸恒為1

梯度消失

嚴(yán)重

嚴(yán)重

正半軸上無

計算速度

慢(指數(shù)運算)

慢(指數(shù)運算)

極快(max操作)

死神經(jīng)元

無此問題

無此問題

有風(fēng)險(負(fù)輸入恒為0)

適用范圍

二分類輸出層

傳統(tǒng)RNN

現(xiàn)代深層網(wǎng)絡(luò)首選

Sigmoid的輸出恰好落0和1之間,天然可以理解為概率,因此常用于二分類的最后一層。但它的致命問題在于飽和區(qū)梯度幾乎為零——當(dāng)輸入絕對值很大時,Sigmoid的輸出趨近于0或1,導(dǎo)數(shù)趨近于0;在深度網(wǎng)絡(luò)中,誤差信號從輸出層逐層回傳,每經(jīng)過一次Sigmoid就要乘以一個接近0的小數(shù),層數(shù)一多梯度就完全消失了。Tanh的輸出在-1到1之間,均值為0,在某些場景下收斂比Sigmoid稍快,但飽和區(qū)問題同樣存在。

ReLU的公式f(x)=max(0, x)引入了完全不同的梯度特性。當(dāng)輸入為正時,導(dǎo)數(shù)為1,梯度可以暢通無阻地反向傳播;當(dāng)輸入為負(fù)時,輸出恒為0,導(dǎo)數(shù)也為0。這帶來兩個優(yōu)勢:一是正區(qū)域徹底解決了梯度消失問題,二是計算只需一個簡單的取最大值操作,非???。但代價是出現(xiàn)了“死神經(jīng)元”問題——如果某個神經(jīng)元的輸入在初始化后始終為負(fù),它的輸出永遠(yuǎn)是0,梯度永遠(yuǎn)是0,這個神經(jīng)元就永遠(yuǎn)“死了”,再也無法被激活。

常見面試追問:“ReLU的死神經(jīng)元問題怎么解決?”標(biāo)準(zhǔn)答案是:①換成Leaky ReLU,讓負(fù)半軸保留一個小斜率α(通常取0.01);②換成ELU(指數(shù)線性單元);③換成PReLU,讓斜率可以自動學(xué)習(xí);④調(diào)低學(xué)習(xí)率,避免參數(shù)更新一步跨得太遠(yuǎn)掉進(jìn)負(fù)半軸。

1.4 什么是反向傳播(Backpropagation)?它的原理是什么?

面試出現(xiàn)頻次:? ·

回答要點

反向傳播是用于計算神經(jīng)網(wǎng)絡(luò)參數(shù)梯度的一種高效方法。核心思想是從輸出層開始,逆向遍歷整個網(wǎng)絡(luò),利用鏈?zhǔn)椒▌t(Chain Rule)逐層計算 損失函數(shù) 對每個參數(shù)的偏導(dǎo)數(shù)。

用一句話總結(jié):“前向傳播算 Loss ,反向傳播算梯度。”

詳細(xì)步驟拆分

  1. 前向傳播階段:輸入一個訓(xùn)練樣本,信號依次經(jīng)過輸入層、各隱藏層到達(dá)輸出層,計算出當(dāng)前的預(yù)測結(jié)果和相應(yīng)的損失函數(shù)值。
  2. 反向傳播階段:從輸出層開始,計算損失函數(shù)關(guān)于輸出層激活的梯度;然后將該梯度沿連接權(quán)重反向傳遞回前一層,通過鏈?zhǔn)椒▌t計算該層參數(shù)的梯度和該層輸入的梯度;重復(fù)此過程直到輸入層。
  3. 參數(shù)更新階段:使用反向傳播計算出的梯度,由優(yōu)化器(如SGD、Adam等)更新每一層的權(quán)重和偏置。

梯度計算公式示意:對于第L層的權(quán)重矩陣W^(L),其梯度為?L/?W^(L) = (?L/?z^(L)) · (a^(L-1))^T,其中z^(L)是第L層的線性輸出,a^(L-1)是上一層的激活輸出。

1.5 常見的損失函數(shù)有哪些?分別在什么場景下使用?

回答要點

損失函數(shù)就是模型訓(xùn)練的目標(biāo)——“你想要模型優(yōu)化什么,就用什么樣的損失函數(shù)”。選錯損失函數(shù),就像把球門立錯了方向,越練越偏。

回歸任務(wù)的常用損失

  • 均方誤差(Mean Squared Error,MSE):公式為(預(yù)測值-真實值)2,對大誤差的懲罰非常大。誤差值為1時平方還是1,誤差值為10時平方變成100。這種特性使MSE對異常值非常敏感——如果數(shù)據(jù)中有離群點,MSE會用最大力度去“拉近”這些異常點,反而忽略了大多數(shù)正常樣本。適用于數(shù)據(jù)干凈、沒有明顯異常值的回歸任務(wù)。
  • 平均絕對誤差(Mean Absolute Error,MAE):公式為|預(yù)測值-真實值|,對大誤差的懲罰是線性的,比MSE溫和得多。當(dāng)數(shù)據(jù)中確定存在異常值時,MAE比MSE更穩(wěn)健,不會出現(xiàn)離群點主導(dǎo)訓(xùn)練方向的問題。但MAE在誤差接近0處不可導(dǎo),可能存在優(yōu)化方面的挑戰(zhàn)。

分類任務(wù)的常用損失

  • 交叉熵?fù)p失(Cross-Entropy Loss):配合Softmax函數(shù)使用,是二分類和多分類的絕對王者。對于二分類,損失函數(shù)為 -[y·log(?) + (1-y)·log(1-?)]。它的內(nèi)在邏輯是:正確類別的預(yù)測概率越高,損失越??;其他類別的概率越高,損失越大。這種特性讓分類模型能夠“更有信心”地做出判斷。在訓(xùn)練過程中,交叉熵?fù)p失會不斷拉大正確類別和錯誤類別之間的概率差距。
  • 合頁損失(Hinge Loss):支持向量機(jī)(SVM)的專屬損失函數(shù),數(shù)學(xué)形式為∑max(0, 1 - y_i·f(x_i))。它關(guān)心的是“間隔”——數(shù)據(jù)點到分類邊界的距離是否足夠大,而不是所有樣本都被正確分類。追求的是“最寬的馬里亞納海溝”式的大間隔,而非完整分類所有樣本。

1.6 什么是過擬合與欠擬合?如何判斷和解決?

回答要點

過擬合:模型在訓(xùn)練集上表現(xiàn)極好,但到了從未見過的測試集上表現(xiàn)卻很差。這表明模型“死記硬背”了訓(xùn)練數(shù)據(jù)中的噪聲和異常,學(xué)到了不該學(xué)的模式,而不是真正理解了數(shù)據(jù)背后的規(guī)律。反映在評估指標(biāo)上,就是訓(xùn)練集準(zhǔn)確率接近100%而測試集準(zhǔn)確率遠(yuǎn)遠(yuǎn)不如。

欠擬合:模型在訓(xùn)練集上表現(xiàn)就很差,更沒有能力泛化到測試集。這表明模型的表達(dá)能力不足以捕捉數(shù)據(jù)中的規(guī)律——要么模型太簡單(比如用線性模型去擬合一個彎曲的散點圖),要么關(guān)鍵特征被遺漏了。

判斷方法:比較訓(xùn)練誤差和驗證誤差的走勢。如果訓(xùn)練誤差不斷下降而驗證誤差也同步下降,一切正常;如果訓(xùn)練誤差持續(xù)下降但驗證誤差在第N個epoch之后開始上升——恭喜你,經(jīng)典的“過擬合曲線”來了。如果訓(xùn)練誤差一開始就很高并且遲遲不降——基本確定是欠擬合。

過擬合的解決方案(面試官至少期望你答出5種):

方案

原理

適用場景

增加訓(xùn)練數(shù)據(jù)

數(shù)據(jù)越多,模型越不容易陷入過擬合陷阱

所有場景,但數(shù)據(jù)難獲取時有限

正則化(L1/L2)

約束權(quán)重取值范圍,防止某些權(quán)重過大毛遂自薦

特征較多時首選

Dropout

訓(xùn)練時隨機(jī)失活部分神經(jīng)元,迫使網(wǎng)絡(luò)學(xué)習(xí)魯棒表示

深度神經(jīng)網(wǎng)絡(luò)

早停

在驗證集性能不再提升時停止訓(xùn)練

訓(xùn)練監(jiān)控容易實現(xiàn)

數(shù)據(jù)擴(kuò)增

變換現(xiàn)有數(shù)據(jù)創(chuàng)造更多訓(xùn)練樣本

圖像、文本、音頻等場景

降低模型復(fù)雜度

減少層數(shù)、神經(jīng)元數(shù)或剪枝

模型過度復(fù)雜時

交叉驗證

用不同數(shù)據(jù)子集評估模型穩(wěn)健性

小數(shù)據(jù)集

集成學(xué)習(xí)

Bagging(如隨機(jī)森林)降低方差

有足夠計算資源

欠擬合的解決方案:增加模型復(fù)雜度(加層、加神經(jīng)元)、增加特征(添加有信息含量的新特征)、減少正則化強度、增加訓(xùn)練輪數(shù)、嘗試更適合的模型架構(gòu)、降低數(shù)據(jù)噪聲(清洗數(shù)據(jù))。

1.7 什么是梯度消失和梯度爆炸?如何應(yīng)對?

回答要點

梯度消失:在梯度反向傳播過程中,由于鏈?zhǔn)角髮?dǎo)法則,需要把前面每一層的梯度“乘起來”。如果每層的梯度都小于1(比如Sigmoid在飽和區(qū)的導(dǎo)數(shù)只有0.25),連續(xù)乘多次之后梯度趨向于0。越靠近輸入層的梯度越接近于0,導(dǎo)致靠近輸入層的網(wǎng)絡(luò)參數(shù)幾乎不更新,無法有效學(xué)習(xí)。典型的癥狀是:訓(xùn)練初期Loss下降很快,然后停滯不前,仿佛陷入了泥潭。

梯度爆炸:與梯度消失相反,如果每一層的梯度都大于1(比如不恰當(dāng)?shù)臋?quán)重初始化導(dǎo)致每層輸出放大),連續(xù)相乘后梯度指數(shù)級增大,參數(shù)更新大步流星“飛”出去——Loss突然變成NaN(Not a Number),參數(shù)的數(shù)值變得極其巨大,訓(xùn)練直接崩潰。

應(yīng)對方法

問題

解決方案

梯度消失

① 使用ReLU、Leaky ReLU、ELU等非飽和激活函數(shù);② 采用批歸一化(BatchNorm)或?qū)託w一化(LayerNorm);③ 使用殘差連接(Residual Connection);④ 使用門控架構(gòu)(如LSTM、GRU),讓信息有選擇性保留;⑤ 選擇合適的權(quán)值初始化方法(如He初始化配合ReLU)

梯度爆炸

① 梯度裁剪(Gradient Clipping):將梯度的范數(shù)限制在某個閾值內(nèi);② 使用較小的學(xué)習(xí)率;③ 添加權(quán)重正則化;④ 使用更適合的激活函數(shù);⑤ 使用批歸一化來穩(wěn)定梯度分布

1.8 如何理解Batch Normalization?它的核心作用和原理是什么?

回答要點

Batch Normalization(批量歸一化)是一種在深度神經(jīng)網(wǎng)絡(luò)的每一層中對當(dāng)前批次的激活值進(jìn)行標(biāo)準(zhǔn)化處理的技術(shù)。

具體操作

  1. 計算當(dāng)前batch的均值和方差
  2. μ_B = (1/m) * ∑x_i
  3. σ^2_B = (1/m) * ∑(x_i - μ_B)2
  4. 對輸入數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化:x_i? = (x_i - μ_B) / √(σ^2_B + ε)
  5. 縮放和平移:y_i = γ·x_i? + β(γ和β是可學(xué)習(xí)參數(shù),允許模型恢復(fù)最優(yōu)的數(shù)據(jù)分布)

四重核心價值

  • 加速訓(xùn)練收斂:讓每一層的輸入分布保持穩(wěn)定,允許使用更高的學(xué)習(xí)率,大幅縮短訓(xùn)練時間
  • 緩解梯度消失/爆炸:防止激活值落入Sigmoid/Tanh的飽和區(qū),保持梯度在健康區(qū)域
  • 減少對初始化的敏感度:對權(quán)重初始值不那么“挑剔”,網(wǎng)絡(luò)魯棒性更好
  • 輕微的正則化效果:批量統(tǒng)計引入了一定的隨機(jī)性,在某種程度上起到了類似Dropout的效果

限制與注意事項:BatchNorm在batch size較小的時候估計的均值和方差不穩(wěn)定;在RNN等變長序列任務(wù)中并不適用(因為序列長度在不斷變化);需要維護(hù)running_mean和running_mean等統(tǒng)計量,在推理時需要使用這些統(tǒng)計量而不是batch的統(tǒng)計數(shù)據(jù)。

1.9 什么是Layer Normalization?它與Batch Normalization有什么區(qū)別?

回答要點

Layer Normalization(層歸一化)是專門針對序列模型和自然語言處理任務(wù)設(shè)計的一種歸一化方法。對于每個單獨的樣本,它不沿著batch維度歸一化,而是沿著特征維度進(jìn)行歸一化。

計算公式:對于輸入x,計算其均值和方差μ_L = (1/H) * ∑x_i,σ2_L = (1/H) * ∑(x_i - μ_L)2,然后標(biāo)準(zhǔn)化。

對比維度

Batch Normalization

Layer Normalization

歸一化方向

沿著batch維度(對一批樣本的同一特征)

沿著特征維度(對一個樣本的所有特征)

依賴batch大小

強依賴,small batch表現(xiàn)差

不依賴,single sample可用

適用場景

圖像識別、卷積網(wǎng)絡(luò)(固定形狀)

NLP、Transformer、RNN(變長序列)

訓(xùn)練-推理一致性

需要維護(hù)移動平均,不一致風(fēng)險

完全一致,每步獨立計算

Transformer選擇

幾乎不用(和變長序列不兼容)

主流標(biāo)準(zhǔn),大模型首選

1.10 什么是Dropout?如何緩解過擬合?

回答要點

Dropout是深度學(xué)習(xí)中一種簡單通用的正則化技術(shù)。在訓(xùn)練過程中,每次迭代都以概率P(通常設(shè)為0.5)隨機(jī)“丟棄”(即設(shè)置成0)一部分神經(jīng)元的輸出,不參與前向傳播和反向傳播。這個過程讓神經(jīng)網(wǎng)絡(luò)無法依賴于任何一個特定神經(jīng)元——因為每一次迭代中它都可能被“跳過”。因此網(wǎng)絡(luò)被迫學(xué)習(xí)更多的冗余表示,且神經(jīng)元之間必須要互相協(xié)作才能完成任務(wù),最終提高了模型的泛化能力。

在訓(xùn)練時引入Dropout,需要在測試時對整個網(wǎng)絡(luò)的輸出乘以P,以補償訓(xùn)練時按概率丟棄神經(jīng)元導(dǎo)致的整體激活值降低。在深度學(xué)習(xí)中,這一操作等效于對多個子網(wǎng)絡(luò)(不同Dropout配置)的預(yù)測結(jié)果取平均。

常見面試追問

  • “訓(xùn)練時和推理階段的Dropout行為有區(qū)別嗎?”答:訓(xùn)練階段會隨機(jī)丟棄神經(jīng)元,每次網(wǎng)絡(luò)結(jié)構(gòu)都在變化;推理階段所有神經(jīng)元都參與計算,但輸出需要乘以(1 - Dropout rate)來補償。
  • “Dropout為什么不能解決所有過擬合問題?”答:Dropout主要打破神經(jīng)元之間的共適應(yīng)關(guān)系,但當(dāng)數(shù)據(jù)量過少或模型復(fù)雜度仍然過高時,仍需配合其他正則化方法(如L2正則化、數(shù)據(jù)擴(kuò)增)共同作用。

二、 模型訓(xùn)練與優(yōu)化

2.1 常用的優(yōu)化器有哪些?各自的核心思想是什么?

回答要點

SGD(隨機(jī)梯度下降) :每一輪迭代只隨機(jī)選取一個樣本計算梯度更新,計算快但梯度噪聲大,收斂路徑抖得厲害。每一步更新公式:θ = θ - η·?L(θ)。

優(yōu)化器

核心思想

優(yōu)點

缺點

適用場景

SGD

原始梯度下降,按實際梯度更新

理論簡單,可解釋性強

收斂慢,容易在平坦區(qū)震蕩

小規(guī)模、理論驗證

SGD+Momentum

累積歷史梯度方向,指數(shù)加權(quán)移動平均

加速收斂,減少震蕩

需要手動調(diào)優(yōu)動量參數(shù)

中等規(guī)模

AdaGrad

對不同參數(shù)自適應(yīng)學(xué)習(xí)率,梯度累計平方和

處理稀疏特征好

學(xué)習(xí)率單調(diào)下降,后期可能過小

稀疏數(shù)據(jù)

RMSprop

用指數(shù)移動平均替代累加,緩解學(xué)習(xí)率衰減問題

自動調(diào)整學(xué)習(xí)率

對超參數(shù)敏感

RNN

Adam

組合Momentum和RMSprop,同時記錄一階矩和二階矩

收斂快,魯棒性好

需要足夠內(nèi)存存儲動量

幾乎所有場景(通用首選)

AdamW

Adam + 正確的權(quán)重衰減解耦

修正Adam的正則化

多了超參數(shù)

所有需要正則化的任務(wù)

RAdam

修正Adam初期的方差波動

起始階段更穩(wěn)定

復(fù)雜度略高

小batch訓(xùn)練

2.2 學(xué)習(xí)率的選擇與調(diào)度策略有哪些?

回答要點

學(xué)習(xí)率(Learning Rate)是優(yōu)化器每次參數(shù)更新的步長,是整個訓(xùn)練過程中需要調(diào)得最準(zhǔn)的超參數(shù)。

學(xué)習(xí)率過大的后果:Loss震蕩不收斂,甚至直接發(fā)散變成NaN;模型在大步長更新中可能直接跨過最優(yōu)點,發(fā)生“梯度爆炸”。

學(xué)習(xí)率過小的后果:訓(xùn)練時間成倍增長;模型可能陷入局部極小值無法跳出;梯度消失的風(fēng)險也更高。

主流調(diào)度策略

  • 步長衰減(Step Decay) :每隔固定epoch數(shù)將學(xué)習(xí)率乘以一個衰減因子,例如初始0.01,每20epoch乘以0.1
  • 指數(shù)衰減(Exponential Decay) :learning_rate = initial_lr * gamma^(epoch)
  • 余弦退火(Cosine Annealing) :學(xué)習(xí)率按照余弦曲線周期性從最大值下降到接近0,幫助模型跳出局部最優(yōu)
  • 預(yù)熱(Warmup) :訓(xùn)練初期學(xué)習(xí)率從一個非常小的值線性或余弦上升到初始學(xué)習(xí)率,穩(wěn)定訓(xùn)練早期階段的梯度方向
  • reduce on plateau :在驗證集Loss停滯時,自動降低學(xué)習(xí)率(PyTorch內(nèi)置的ReduceLROnPlateau調(diào)度器)

2.3 什么是動量(Momentum)?為什么它能加速收斂?

回答要點

在經(jīng)典的隨機(jī)梯度下降中,每個batch的梯度方向是隨機(jī)的,“小碎步”不停地來回抖動,特別在損失曲面的“峽谷”區(qū)域,梯度在垂直于谷底方向上來回震蕩,而沿著谷底走了很慢。

動量法(SGD with Momentum)可以理解為給梯度更新添加“慣性”:當(dāng)前的更新不僅依賴于當(dāng)前的梯度,還依賴于之前積累的方向和速度。

公式表達(dá)

v_t = β·v_{t-1} + (1-β)·?L(θ_t)

θ_{t+1} = θ_t - η·v_t

其中動量因子β通常取0.9或更大,表示過去梯度的信息可以保留得很久。

核心優(yōu)勢

  • 平滑梯度中的高頻噪聲,訓(xùn)練更穩(wěn)定
  • 在梯度方向一致的平坦區(qū)域加速收斂
  • 幫助模型跨越小的凸起

2.4 Adam為什么成為深度學(xué)習(xí)訓(xùn)練的事實標(biāo)準(zhǔn)優(yōu)化器?

回答要點

Adam(Adaptive Moment Estimation)結(jié)合了Momentum(保存一階矩均值)和RMSprop(保存二階矩方差)的思想,為每個參數(shù)自適應(yīng)地計算學(xué)習(xí)率。

Adam對所有參數(shù)維護(hù)兩個統(tǒng)計量:

  • m_t:一階矩(梯度均值),相當(dāng)于帶方向的平均梯度
  • v_t:二階矩(梯度方差),相當(dāng)于梯度平方的指數(shù)平均,反映了梯度的大小變化范圍

然后使用這些值來調(diào)整每個參數(shù)(每個維度)的更新步長。這樣做的結(jié)果是:對不同頻率的特征有不同的學(xué)習(xí)率,自動適應(yīng)不同參數(shù)的更新需求,在很多問題上大幅提高了收斂速度。

2.5 為什么要使用混合精度訓(xùn)練(AMP)?

回答要點

混合精度訓(xùn)練的核心理念是:訓(xùn)練過程中,大部分計算用16位浮點數(shù)(FP16或BF16)完成,只在必要時用32位精度保留關(guān)鍵狀態(tài)。FP16存儲數(shù)據(jù)量大約是FP32的一半,計算效率高,訓(xùn)練速度能快2-4倍,顯存占用也大大降低。

三個核心要點

  • 前向和反向傳播使用16位精度,顯著加速計算
  • 優(yōu)化器狀態(tài)、梯度累積等關(guān)鍵操作仍然在32位精度下完成,防止精度溢出
  • 引入損失縮放(Loss Scaling) 防止梯度在16位精度下變?yōu)?

BF16(Brain Floating Point)解決了FP16精度動態(tài)范圍不夠的問題——BF16與FP32指數(shù)位相同(8位),在數(shù)值范圍上與FP32一致。大模型訓(xùn)練中BF16逐漸成為更主流的選擇,特別是在NVIDIA A100/H100等當(dāng)代GPU的硬件層面原生支持。

2.6 什么是梯度累積?為什么需要它?

回答要點

梯度累積是一種訓(xùn)練技術(shù),通過多次前向傳播和反向傳播,累加梯度結(jié)果后再進(jìn)行一次參數(shù)更新。這種做法能夠模擬出更大的batch size,克服GPU顯存限制。

實現(xiàn)舉例:如果目標(biāo)batch size是256,但顯存只能裝下64的batch,就用累積步數(shù)為4來實現(xiàn):先將64樣本通過計算圖算出梯度,但不更新參數(shù),反復(fù)4次,累積4次梯度,最終對總共256個樣本做一次參數(shù)更新——效果和一次256的batch基本一致。

2.7 顯存的主要開銷在哪里?如何估算大模型的顯存占用?

回答要點

對于一個N參數(shù)的大模型,訓(xùn)練時顯存主要分為三大部分:

  1. 模型參數(shù)本身:N個參數(shù),用FP16/BF16(2字節(jié)/參數(shù))存儲為2N字節(jié)
  2. 梯度緩沖:保存每個參數(shù)的梯度,同樣在FP16/BF16精度下需要2N字節(jié)
  3. 優(yōu)化器狀態(tài):以Adam為例,需要維護(hù)FP32參數(shù)(4N字節(jié))+ 動量項m(4N字節(jié))+ 方差項v(4N字節(jié))= 12N字節(jié)

那么總的最小顯存約(2N + 2N + 12N = 16N字節(jié))。也就是說,一個7B參數(shù)的模型訓(xùn)練需要約112GB顯存,顯然單卡80GB的A100/H100不夠用,需要分布式策略來拆分。

補充:此外還有激活值(與前向計算的層深度、batch size、序列長度相關(guān))、臨時緩沖區(qū)、中間乘法結(jié)果等額外開銷,實際占用會更高。

2.8 如何提高模型訓(xùn)練的穩(wěn)定性?

回答要點

大模型訓(xùn)練不太穩(wěn)定是常態(tài),但有工程工具可以留用:

策略

作用

學(xué)習(xí)率預(yù)熱

從零逐步上升到初始學(xué)習(xí)率,防止早期梯度爆炸

梯度裁剪

限制梯度的L2范數(shù)到一個固定閾值(如1.0)

更好的歸一化層

RMSNorm在Transformer中的穩(wěn)定性優(yōu)于LayerNorm

殘差連接

始終保持梯度的高速公路通道

診斷工具

插入梯度監(jiān)控,跟蹤梯度的均值/最大值/范數(shù)、Layer分布,提早發(fā)現(xiàn)訓(xùn)練不穩(wěn)定性

2.9 什么是神經(jīng)架構(gòu)搜索(NAS)?與傳統(tǒng)手工設(shè)計架構(gòu)相比有什么優(yōu)勢?

回答要點

神經(jīng)架構(gòu)搜索(Neural Architecture Search,NAS)是一種自動化設(shè)計神經(jīng)網(wǎng)絡(luò)架構(gòu)的方法,通過搜索算法在預(yù)定義的搜索空間中自動找到最適合特定任務(wù)的架構(gòu)。

傳統(tǒng)方法的局限:手工設(shè)計架構(gòu)依賴專家經(jīng)驗,耗時且難以找到全局最優(yōu),例如從AlexNet到VGGNet、ResNet、EfficientNet的演進(jìn)靠的是大量試錯。

NAS的核心流程:①定義搜索空間(層類型、連接方式等);②選擇搜索策略(強化學(xué)習(xí)、進(jìn)化算法、貝葉斯優(yōu)化等);③評估候選架構(gòu)的性能。

NAS的優(yōu)勢:自動發(fā)現(xiàn)人類設(shè)計者可能忽略的反直覺架構(gòu);在特定任務(wù)上可能獲得超越手工設(shè)計的性能;極大減少設(shè)計者的工作量。限制在于搜索計算量巨大,需要數(shù)千GPU天。

三、 經(jīng)典深度學(xué)習(xí)架構(gòu)深度剖析

3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN)的核心機(jī)制是什么?為什么它非常適合圖像處理?

回答要點

CNN通過局部連接、權(quán)重共享和層次化的特征提取,在圖像領(lǐng)域取得了極大成功。它包括三個基礎(chǔ)操作:

卷積:用一個小窗口(稱為卷積核/kernel)掃描輸入,在每個局部區(qū)域上做點積計算。兩個關(guān)鍵特性——局部感受野(每個神經(jīng)元只關(guān)注輸入的一個小區(qū)域)和權(quán)重共享(同一個kernel在整個圖像上使用同一套權(quán)重)。這兩個特性極大減少了模型參數(shù)量。

池化:對局部區(qū)域做下采樣,如取最大值或平均值,減少特征圖的尺寸。

激活:使用ReLU引入非線性。

CNN典型的結(jié)構(gòu)是:卷積層→激活→池化層→卷積層→激活→池化層→... → 全連接層→Softmax輸出。隨著層數(shù)加深,特征從低層(邊緣、紋理)逐漸抽象到高層(物體部件、完整對象)。

3.2 1×1卷積的作用是什么?

回答要點

1×1卷積有三種重要價值:

  • 調(diào)整通道數(shù)(升維/降維) :改變特征圖的深度,而不改變其空間尺寸
  • 增加非線性:卷積后接激活函數(shù),增加網(wǎng)絡(luò)的表達(dá)能力
  • 跨通道的信息整合:線性組合不同通道的信息,產(chǎn)生新的特征表示,但不是空間組合

例如,在Inception模塊中,1×1卷積常被用來降低維度,控制計算復(fù)雜度,為后面的3×3、5×5卷積降維。

3.3 池化的作用是什么?最大池化和平均池化的區(qū)別是什么?

回答要點

池化(Pooling)是CNN中的下采樣操作,主要作用有:① 降維,減少特征圖大小,從而降低計算量和參數(shù);② 擴(kuò)大感受野;③ 增強平移不變性,輕微的位置變化不影響識別結(jié)果;④ 緩解過擬合。

類型

操作

特點

適用場景

最大池化

取鄰域內(nèi)的最大值

保留最顯著的特征,提取邊緣、紋理等模式

強于保留關(guān)鍵信息,多數(shù)CNN默認(rèn)選它

平均池化

取鄰域內(nèi)的平均值

保留背景信息,更平滑

需要全局信息聚合時(如分類層的全局平均池化)

3.4 ResNet的核心思想和作用是什么?為什么它能訓(xùn)練到152層?

回答要點

ResNet的核心創(chuàng)新是殘差學(xué)習(xí),通過引入恒等映射(跳接/跳躍連接) 直接跳過某些層的計算:

H(x) = F(x) + x

其中F(x)是待學(xué)習(xí)的殘差映射(通常由幾層卷積組成)。網(wǎng)絡(luò)不再直接學(xué)習(xí)最終的輸出映射;而是學(xué)習(xí)“輸入和輸出的差異”——殘差。當(dāng)最優(yōu)的F(x)是0時,下層的梯度仍能通過恒等路徑x直通達(dá)到前面的層,極大地緩解了梯度消失。

殘差塊的工程細(xì)節(jié):在殘差支路和恒等路徑對齊后相加再進(jìn)行非線性激活。通過這種設(shè)計,ResNet成功訓(xùn)練出比VGG等傳統(tǒng)網(wǎng)絡(luò)深得多的152層網(wǎng)絡(luò),同時參數(shù)量反而減少。

3.5 DenseNet與ResNet的關(guān)鍵差異是什么?

回答要點

DenseNet(密集連接網(wǎng)絡(luò))在ResNet的基礎(chǔ)上更進(jìn)一步:不是簡單地通過“加法”連接前后層,而是將所有前層特征圖拼接到一起(在通道維度上連接),每一層都接受前面所有層特征圖的輸入。即:第l層的輸入 = 前面第0到l-1層產(chǎn)生的特征圖。

這種設(shè)計帶來的優(yōu)勢

  • 每一層都可以直接從損失函數(shù)獲得梯度,梯度消失徹底消除
  • 特征復(fù)用率極高,參數(shù)效率上優(yōu)于ResNet
  • 通過密集路徑加強了特征在不同抽象級別之間的流動

但DenseNet在訓(xùn)練時對顯存的消耗高于ResNet。

3.6 MobileNet中深度可分離卷積的原理是什么?為什么能降低計算量?

回答要點

深度可分離卷積將標(biāo)準(zhǔn)卷積拆成兩個步驟,降低80%以上計算量:

  • 深度卷積(Depthwise Convolution,DW) :每個輸入通道各自用一個卷積核獨立卷積,不跨通道混合
  • 逐點卷積(Pointwise Convolution,PW) :用1×1卷積調(diào)整通道之間的信息融合

這種拆分的思想來源——標(biāo)準(zhǔn)卷積同時做濾波和合并兩個任務(wù),深度可分離卷積把它們分到兩個階段。MobileNet系列正是利用這個設(shè)計實現(xiàn)了參數(shù)少、速度快、精度高的輕量化神經(jīng)網(wǎng)絡(luò),對移動端和嵌入式設(shè)備特別友好。

3.7 循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的核心局限是什么?為什么LSTM能解決梯度消失問題?

回答要點

RNN在處理長序列上的階梯型依賴時存在兩個問題:長期記憶能力差(信息沿時間步指數(shù)衰減)訓(xùn)練不穩(wěn)定(梯度消失或爆炸)。主要根源在于重復(fù)運用相同的循環(huán)權(quán)重矩陣,導(dǎo)致反向傳播時梯度的冪次放大或衰減。

LSTM引入了新穎的門控機(jī)制——遺忘門決定“該忘記什么”,輸入門決定“該存儲什么”,輸出門決定“該輸出什么”。核心門控公式:

  • 遺忘門:f_t = σ(W_f·[h_{t-1}, x_t] + b_f),決定從“記憶細(xì)胞”C_{t-1}中丟棄哪些信息
  • 輸入門:i_t = σ(W_i·[h_{t-1}, x_t] + b_i),決定存儲什么新信息到細(xì)胞狀態(tài)
  • 細(xì)胞狀態(tài)更新:C_t = f_t * C_{t-1} + i_t * C?_t(C?_t是候選值)
  • 輸出門:o_t = σ(W_o·[h_{t-1}, x_t] + b_o),決定輸出
  • 隱藏狀態(tài):h_t = o_t * tanh(C_t)

這種機(jī)制的巧妙之處在于:梯度通過循環(huán)連接的路徑變得可控,可以保留長期記憶。

3.8 GRU與LSTM相比有什么特殊設(shè)計?

回答要點

GRU(Gated Recurrent Unit)可以看作LSTM的簡化版,它只有兩個門:更新門(Update Gate)和重置門(Reset Gate)。LSTM有獨立的“記憶細(xì)胞”C_t和“隱藏狀態(tài)”h_t,GRU則把兩者合并成單一的h_t。參數(shù)更少、速度更快、在小規(guī)模數(shù)據(jù)上不易過擬合。

3.9 編碼器-解碼器(Encoder-Decoder)結(jié)構(gòu)的適用場景是什么?

回答要點

編碼器將輸入序列壓縮成一個固定長度的語義向量(上下文向量),解碼器從這個向量依次生成輸出序列。這種結(jié)構(gòu)主要解決序列到序列(Seq2Seq)的任務(wù),輸入和輸出長度不相等的場景。

典型應(yīng)用場景包括:機(jī)器翻譯(輸入英文句子,輸出中文翻譯)、文本摘要(輸入長文,輸出短摘要)以及語音識別(輸入音頻信號,輸出識別后的文本)。

3.10 Transformer與傳統(tǒng)Seq2Seq模型相比有何革命性突破?

回答要點

Transformer完全拋棄了循環(huán)結(jié)構(gòu),僅使用自注意力前饋網(wǎng)絡(luò)作為計算組件。

它帶來的突破

  • 所有的輸出位置可以并行計算,遠(yuǎn)快于RNN
  • 自注意力機(jī)制使任意兩個位置之間建立起直達(dá)路徑,從根本上解決了長距離依賴問題
  • 計算效率顛覆了過往序列建模的訓(xùn)練范式

四、 Transformer與大模型核心

4.1 Transformer的整體架構(gòu)包含哪幾個重要模塊?

回答要點

Transformer的核心模塊包括編碼器(Encoder)和解碼器(Decoder)兩大部分:

位置編碼(Positional Encoding):給輸入注入順序信息。

多頭自注意力機(jī)制:讓一個詞關(guān)注到序列中的其他詞。

殘差連接層歸一化:保證梯度流動和訓(xùn)練穩(wěn)定。

前饋網(wǎng)絡(luò)(Feed-Forward Network):增加非線性和模型容量。

編碼器-解碼器注意力(僅在解碼器中存在):在生成目標(biāo)序列時對照編碼器輸出對齊信息。

4.2 自注意力機(jī)制的計算過程和公式是什么?

回答要點

給定輸入序列,對于每個位置,我們創(chuàng)建Query(查詢)、Key(鍵)、Value(值)三種向量。注意力分值由Q和K的點積算出:

Attention(Q, K, V) = softmax(QK?/√d_k)·V

其中除以√d_k是為了縮放點積結(jié)果。通過softmax得到權(quán)重分布,最后用權(quán)重對V做加權(quán)求和,得到該位置的最終輸出。

4.3 為什么需要多頭注意力?

回答要點

單頭注意力容易僅關(guān)注一種關(guān)系(如語法依賴或首詞),多頭多個自注意力機(jī)制并行,每個頭關(guān)注不同子空間,捕捉不同層面的語義特征。來自測試開發(fā)的視角,多頭意味著并行的子空間可分別評估,提升系統(tǒng)的魯棒性。最終將全部注意力頭的結(jié)果拼接起來線性投影回原始維度,可以捕獲更豐富的信息。

4.4 為什么Q和K不能共享同一個權(quán)重矩陣?

回答要點

如果Q和K共享權(quán)重,矩陣QK?就變成對稱矩陣,這強制要求序列中i關(guān)注j的得分等于j關(guān)注i的得分。但實際上,“我”關(guān)注“你”的程度和“你”關(guān)注“我”的程度完全不同,對稱矩陣無法刻畫這種不平衡。分開Q、K矩陣相當(dāng)于給模型提供了“提問者”和“被提問者”的不同視角視圖,表達(dá)力更強。

4.5 點積注意力為什么要除以√d_k?

回答要點

假設(shè)Q和K的各分量是獨立同分布的標(biāo)準(zhǔn)正態(tài)隨機(jī)變量,則它們的點積的期望是0,方差等于維度d_k(即QK?的元素達(dá)到O(√d_k)的數(shù)值大?。oftmax對大的輸入會變得敏感(梯度過?。?。除以√d_k將點積的方差壓回1,Softmax進(jìn)入一個梯度較平滑的區(qū)域,保持訓(xùn)練穩(wěn)定。

4.6 位置編碼的作用是什么?RoPE與其他位置編碼有什么優(yōu)勢?

回答要點

自注意力本身是置匿序的——“你好棒”與“棒你好”的注意力計算會在token級別上完全一樣。位置編碼就是給每個token的位置號附加一個向量。原始Transformer采用正余弦固定編碼。

到了2026年,RoPE(旋轉(zhuǎn)位置編碼)是面經(jīng)中出現(xiàn)42次的絕對霸主。它的核心創(chuàng)新是把注意力分?jǐn)?shù)與兩個位置之間的相對距離關(guān)聯(lián),而不是絕對位置。RoPE通過復(fù)數(shù)乘法將位置信息嵌入鍵值向量中。研究表明RoPE能滿足長卷積外推性,大量主流模型如LLaMA、Qwen都采用了RoPE。

4.7 什么是FlashAttention?如何優(yōu)化注意力計算的內(nèi)存訪問?

回答要點

FlashAttention通過IO感知的注意力算法,將計算拆分成獨立塊,利用SRAM快內(nèi)存計算塊級注意力,再將結(jié)果累加,避免了頻繁讀寫HBM(高帶寬內(nèi)存)。它將內(nèi)存復(fù)雜度從O(N2)降至O(N),在長上下文的推理場景中推快了顯著的速度提升。

4.8 SwiGLU是什么?為什么它取代了ReLU和GeLU?

回答要點

SwiGLU是在LLaMA架構(gòu)中廣泛應(yīng)用的新型激活函數(shù),沿用了GLU(門控線性單元)的框架:將輸入分成兩路,一路通過Sigmoid進(jìn)行門控,另一路不做處理,最終做逐元素乘積,整體經(jīng)過殘差結(jié)構(gòu)。

它相比于GeLU和ReLU提升了前饋網(wǎng)絡(luò)的計算陡峭性和表達(dá)能力。參數(shù)量計算是面試高頻陷阱:標(biāo)準(zhǔn)的FFN層包含兩個線性變換,而SwiGLU包含三個線性變換。為了保持與標(biāo)準(zhǔn)Transformer相同的參數(shù)量,使用SwiGLU時中間層維度應(yīng)設(shè)為2/3*d_model。

4.9 RMSNorm與LayerNorm相比有什么優(yōu)勢?

回答要點

RMSNorm只保留縮放部分,去掉了均值中心化:RMS(a) = sqrt(1/n ∑a_i2),然后輸出為a / RMS(a)。對大模型張量而言,這可以提升約10%到40%的核性能。

面試官會追問“去掉均值為什么不影響收斂?” 洞察在于,Transformer的激活值分布通常各向同性,均值偏移不攜帶核心語義,縮放部分才是歸一化的關(guān)鍵貢獻(xiàn)。

4.10 LLaMA相對于原始GPT有什么架構(gòu)改進(jìn)?

回答要點

LLaMA在原始Transformer上做了幾個關(guān)鍵的改進(jìn):

  • 采用RMSNorm替代LayerNorm,提升效率
  • 使用SwiGLU激活函數(shù),提升表達(dá)能力
  • 采用RoPE位置編碼,改善長上下文處理
  • 去掉了絕對位置編碼,改用旋轉(zhuǎn)位置編碼

這些改進(jìn)使得LLaMA系列模型以相對較小的參數(shù)規(guī)模,達(dá)到了與更大模型相當(dāng)?shù)男阅堋C嬖嚬俪?疾斓募?xì)節(jié)包括SwiGLU的參數(shù)量計算和Pre-Norm與Post-Norm的對比。

五、 大模型微調(diào)與高效參數(shù)優(yōu)化

5.1 什么是LoRA?為什么它能高效微調(diào)大模型?

回答要點

大模型在傳統(tǒng)微調(diào)時所有參數(shù)都需要更新,需要海量顯存。LoRA(Low-Rank Adaptation)的革命性思想是:微調(diào)產(chǎn)生的“更新矩陣”ΔW可以用兩個低秩矩陣的乘積來近似。在訓(xùn)練中,原始的預(yù)訓(xùn)練參數(shù)W0被凍結(jié),只有低秩矩陣A和B參與更新,可訓(xùn)練參數(shù)減少到原來的約1/10000。

LoRA的公式是h = W?x + BAx,其中B ∈ ?^{d×r},A ∈ ?^{r×d},r遠(yuǎn)小于d。經(jīng)此優(yōu)化,7B模型的全參數(shù)SFT顯存占用大幅降低。

5.2 全參數(shù)微調(diào)的顯存占用怎么計算?

回答要點

全參數(shù)微調(diào)需要存儲參數(shù)、梯度和優(yōu)化器狀態(tài)。以7B模型用Adam優(yōu)化器為例:參數(shù)量7B × 2字節(jié)(BF16)= 14GB,梯度也是14GB,優(yōu)化器狀態(tài)大約7B × 4字節(jié) × 3 = 84GB,合計約112GB。這還不包含激活值和KV Cache的開銷。因此全參數(shù)微調(diào)一般需要分布到多張GPU上或用ZeRO優(yōu)化器切分優(yōu)化器狀態(tài)。

5.3 ZeRO-1、ZeRO-2、ZeRO-3分別做什么劃分?

回答要點

ZeRO(Zero Redundancy Optimizer)通過劃分優(yōu)化器狀態(tài)、梯度和參數(shù)來消除冗余:

方案

切分內(nèi)容

顯存節(jié)省

ZeRO-1

優(yōu)化器狀態(tài)分片到各GPU

約4倍

ZeRO-2

優(yōu)化器狀態(tài)+梯度分片

約8倍

ZeRO-3

優(yōu)化器狀態(tài)+梯度+參數(shù)分片

約16倍以上

ZeRO-3把模型參數(shù)本身也切分了。前向傳播時,每張卡只持有自己那部分參數(shù),需要其他參數(shù)時從對應(yīng)的GPU中動態(tài)取回。

5.4 SFT后模型變“傻”的原因是什么?如何緩解?

回答要點

當(dāng)用測試用例微調(diào)大模型時,數(shù)據(jù)質(zhì)量不高或指令風(fēng)格太窄,模型會過度學(xué)習(xí)某些模式,失去原有的探索能力。

減輕這個問題的方法有:① 保證指令數(shù)據(jù)有足夠的多樣性;② 混入部分通用預(yù)訓(xùn)練數(shù)據(jù);③ 使用低學(xué)習(xí)率逐步微調(diào);④ 微調(diào)后做一次輕量“能力拉回”對齊訓(xùn)練。

5.5 如何構(gòu)建SFT的指令數(shù)據(jù)?

回答要點

成熟的SFT數(shù)據(jù)格式是:

{
"instruction": “給定的任務(wù)指令”,
“input”: “可選的補充信息”,
“output”: “期望的模型回答”
}

關(guān)鍵不在數(shù)據(jù)量,而是指令覆蓋度、風(fēng)格一致性、內(nèi)容真實準(zhǔn)確。對算法工程師來說,在面試中更應(yīng)說明如何為業(yè)務(wù)場景(推薦、搜索、風(fēng)控、代碼等)設(shè)計高質(zhì)量的指令-輸出對。

5.6 P-Tuning和Prompt Tuning的原理是什么?

回答要點

Prompt Tuning:在輸入層的前面加載一些可學(xué)習(xí)的連續(xù)向量(虛擬Token),并凍結(jié)大模型的所有參數(shù)。只對這些虛擬Token進(jìn)行參數(shù)更新。其優(yōu)勢是每個任務(wù)只需存儲少量參數(shù),推理時靈活快捷。

P-Tuning v2:將可學(xué)習(xí)的提示向量插入Transformer的每一層輸入中,而不僅是第一層,性能更強且適合各類下游任務(wù)。

5.7 什么時候選RAG,什么時候選微調(diào)?

回答要點

  • 知識實時更新頻繁 → RAG(微調(diào)成本高無法頻繁重訓(xùn))
  • 回答需要精確引用來源 → RAG(微調(diào)不會主動提供來源)
  • 需要讓模型模仿特定的風(fēng)格或語氣 → 微調(diào)(RAG不能改變模型的說話方式)
  • 硬件資源有限 → RAG(微調(diào)至少需要多張A100)
  • 數(shù)據(jù)高度敏感 → 微調(diào)(RAG需經(jīng)過外掛知識庫)

5.8 為什么微調(diào)后模型會出現(xiàn)災(zāi)難性遺忘?

回答要點

災(zāi)難性遺忘發(fā)生在微調(diào)階段數(shù)據(jù)與預(yù)訓(xùn)練分布偏差太大,模型只記住了新任務(wù)而丟棄了之前學(xué)習(xí)的通用知識。解決方案包括彈性權(quán)重鞏固(EWC)、結(jié)合舊數(shù)據(jù)一起訓(xùn)練、知識蒸餾、低秩適應(yīng)(LoRA)等方法。

5.9 微調(diào)時應(yīng)該選擇Base模型還是Chat模型作為起點?

回答要點

Base模型純粹是做語言建模,沒有經(jīng)過對話數(shù)據(jù)微調(diào)。Chat模型已經(jīng)過對話風(fēng)格微調(diào)。如果是面向指令對齊的任務(wù),一般選Base從頭SFT;如果只是調(diào)整已有Chat模型適應(yīng)特定任務(wù),選Chat基礎(chǔ)模型更高效。

5.10 向量數(shù)據(jù)庫在RAG中的作用是什么?如何評估檢索召回的質(zhì)量?

回答要點

RAG的檢索召回將用戶的原始查詢轉(zhuǎn)化為向量Embedding,在向量數(shù)據(jù)庫中做近似最近鄰搜索,返回語義相似度最高的K個文本塊。

評估召回質(zhì)量一般采用Hit Rate(召回率)、MRR(平均倒數(shù)排名)、NDCG(歸一化折損累積增益)等指標(biāo),并結(jié)合生成質(zhì)量的端到端人工評估。

六、 生成模型與多模態(tài)學(xué)習(xí)

6.1 GAN的核心思想是什么?生成器和判別器的關(guān)系是什么?

回答要點

GAN(生成對抗網(wǎng)絡(luò))由生成器(Generator)和判別器(Discriminator)兩個神經(jīng)網(wǎng)絡(luò)通過對抗博弈的方式共同進(jìn)化。

生成器嘗試生成“以假亂真”的數(shù)據(jù);判別器學(xué)習(xí)區(qū)分輸入是真的來自真實數(shù)據(jù)還是生成器搞出來的假貨。在訓(xùn)練中,生成器的優(yōu)化目標(biāo)是增加判別器分類錯誤率,判別器的目標(biāo)是最小化分類錯誤率。兩種力量達(dá)到平衡(納什均衡)時,生成器才能產(chǎn)出與真實數(shù)據(jù)分布一致的樣本。

6.2 擴(kuò)散模型(Diffusion Model)相比GAN有什么優(yōu)勢?

回答要點

擴(kuò)散模型的核心是定義一條前向加噪路線(逐漸把圖像變成純噪聲),學(xué)習(xí)一個逆過程(從噪聲逐步還原圖像)。與GAN相比有如下優(yōu)勢:

  • 訓(xùn)練穩(wěn)定:不存在收斂困難、模式坍塌等問題
  • 生成質(zhì)量高:在圖像生成質(zhì)量上持平甚至超過GAN
  • 多樣性好:生成的圖像種類豐富,不局限于少數(shù)模式
  • 可解釋性強:逐步去噪的過程是可觀測的

缺點是推理速度慢,需要幾十到幾百步才能生成高質(zhì)量圖像。

6.3 什么是CLIP?它在多模態(tài)對齊中扮演什么角色?

回答要點

CLIP(Contrastive Language-Image Pre-training)是OpenAI提出的圖文對比預(yù)訓(xùn)練模型。它在5億條圖文對上進(jìn)行訓(xùn)練,將圖像編碼器與文本編碼器的表示空間對齊。訓(xùn)練時最大化匹配圖文對的余弦相似度,同時最小化非匹配圖文對的相似度。

CLIP最強大的能力在于Zero-shot學(xué)習(xí):無需微調(diào),直接進(jìn)行圖像分類、檢索等多種任務(wù),實現(xiàn)了語言和視覺的對齊。

6.4 什么是對比學(xué)習(xí)?SimCLR的核心框架是什么?

回答要點

對比學(xué)習(xí)的核心想法是做實例級別的判別:對圖片進(jìn)行兩種增強后,在一批數(shù)據(jù)內(nèi),拉近增強正視圖的距離,推遠(yuǎn)其余圖片的視圖。讓編碼器學(xué)到對數(shù)據(jù)增強不變的良好表示。

SimCLR框架包括數(shù)據(jù)增強、編碼器網(wǎng)絡(luò)、投影頭和對比損失(如NT-Xent損失)。

6.5 自監(jiān)督學(xué)習(xí)為何成為大模型時代的趨勢?

回答要點

自監(jiān)督學(xué)習(xí)利用輸入數(shù)據(jù)本身——而不是人工標(biāo)簽——來構(gòu)造監(jiān)督信號。常用的方法有預(yù)測被mask掉的token、預(yù)測圖片旋轉(zhuǎn)角度、時序?qū)Ρ鹊?。因為互?lián)網(wǎng)海量的未標(biāo)注文本和圖像都可以轉(zhuǎn)化為監(jiān)督信號,自監(jiān)督預(yù)訓(xùn)練為規(guī)模法提供了天然的“燃料”。

七、 工程部署與AI Infra

7.1 如何估算大模型的推理顯存需求(KV Cache)?

回答要點

推理時顯存消耗包含模型權(quán)重和KV Cache兩部分。模型權(quán)重簡單估算:參數(shù)量×精度字節(jié)數(shù)。KV Cache = 2 × batch_size × num_layers × num_heads × d_head × seq_len。例如7B模型參數(shù)14GB,seq_len=4096時KV Cache約4GB,合計18GB左右。

7.2 怎么判斷一個算子是否需要優(yōu)化?優(yōu)化路徑是什么?

回答要點

在AI Infra面試中,首先需要給面試官一個清晰的排查鏈:使用Profiler連續(xù)分析、判斷瓶頸(算力還是訪存)——走Hotspot分析、瓶頸判斷和選擇優(yōu)化的路線。

  • 如果是計算瓶頸 → 使用算子融合、向量化/并行
  • 如果是訪存瓶頸 → 數(shù)據(jù)布局調(diào)整、KV Cache壓縮、量化

關(guān)鍵點:不是每個算子都能被優(yōu)化,需權(quán)衡效果和復(fù)雜度。

7.3 vLLM的PagedAttention核心原理是什么?

回答要點

PagedAttention從現(xiàn)代操作系統(tǒng)的分頁內(nèi)存機(jī)制汲取靈感,將Key-Value Cache劃分為“頁”存儲在非連續(xù)內(nèi)存中,每次需要時用邏輯到物理的映射索引。這樣一方面極大減少了內(nèi)存碎片,另一方面避免了為每個請求預(yù)留固定大小的KV空間,實現(xiàn)了高并發(fā)、低延遲的推理。

7.4 量化推理中,INT8/INT4的精度損失和收益如何權(quán)衡?

回答要點

精度

內(nèi)存倍數(shù)

精度損失

適用場景

BF16/FP16

1x參考

無損失

推理精度要求極高

INT8

0.5x

較小

主流量化加速(Per-token/Per-channel調(diào)整)

INT4

0.25x

明顯

邊緣設(shè)備、內(nèi)存極度受限場景

常用GPTQ/AWQ/GGUF等量化框架來微調(diào)校準(zhǔn),降低精度損失。問答類模型用INT8損失很小,但數(shù)學(xué)推理或代碼生成任務(wù)需要謹(jǐn)慎選擇。

7.5 Prefill和Decode階段的計算負(fù)載為什么不同?

回答要點

Prefill階段一次性處理整個輸入的Prompt,計算Attention所有位置,算得又多又快;Decode階段逐個生成詞,每生成一個token都需要將所有歷史token的KV加載到緩存中。由于每步計算少但數(shù)據(jù)移動多,實際成了內(nèi)存訪存瓶頸。

7.6 投機(jī)采樣(Speculative Decoding)如何提升推理速度?

回答要點

投機(jī)采樣用一個小模型(draft model)快速生成若干“候選”token,再用原始大模型(target model)并行驗證這些token的合理性,一次性接受多個正確的token。改進(jìn)點是:一次性驗證多個候選,減少了多次前向傳播的調(diào)用,提升了解碼速度。

7.7 為什么張量并行比數(shù)據(jù)并行更適合千億模型訓(xùn)練?

回答要點

數(shù)據(jù)并行對每個GPU都復(fù)制一份完整模型,當(dāng)模型參數(shù)超過單卡的顯存上限(如千億參數(shù))就無法運行。張量并行將每個Transformer層的權(quán)重參數(shù)切分到多張GPU上,每張卡只存一部分,協(xié)同完成計算。雖然通信開銷較高,但使得訓(xùn)練超出單卡內(nèi)存上限的模型成為可能。

7.8 百卡/千卡分布式訓(xùn)練的主要挑戰(zhàn)是什么?

回答要點

一是通信瓶頸:All-Reduce在多機(jī)之間通信時間線性增長;二是負(fù)載不均衡:一些GPU等待其他卡同步;三是容錯成本:上千GPU訓(xùn)練,單卡失敗概率高。

7.9 怎樣快速定位大模型訓(xùn)練中的NAN?

回答要點

  1. 檢查損失函數(shù)是否包含除0或Log負(fù)數(shù)
  2. 開啟torch.autograd.detect_anomaly()記錄NaN出現(xiàn)路徑
  3. 在關(guān)鍵位置插入assert not torch.isnan(tensor).any()
  4. 監(jiān)控梯度的最大和最小值

7.10 大模型推理系統(tǒng)中有哪些常見的延遲優(yōu)化手段?

回答要點

① Continuous Batching(動態(tài)批處理)替代靜態(tài)Batching;② 使用FlashAttention-2計算注意力;③ 采用FP8/INT8/INT4量化;④ 結(jié)合Speculative Decoding;⑤ 使用ONNX Runtime或TensorRT等推理優(yōu)化框架。

總結(jié)

回看這些深度學(xué)習(xí)面試題,我們可以把它歸納成幾個關(guān)鍵的觀念轉(zhuǎn)變:

面試本質(zhì)變了:從背誦定義深入到了解機(jī)制、權(quán)衡決策,面試官只相信你對“為什么”做出的回答是否站得住腳。

必備基本功:反向傳播、激活函數(shù)、CNN的機(jī)理等永遠(yuǎn)逃不掉,但只會這些不夠。

Transformer是敲門磚:你需要在被問及RoPE、RMSNorm、SwiGLU這些細(xì)枝末節(jié)的工程參數(shù)時也能給出合理回答。

大模型和微調(diào):SFT的顯存估算、RAG與微調(diào)的選型、LoRA原理——這些都是2026年的硬通貨。

AI Infra不再只是擺設(shè):從KV Cache、Prefill/Decode調(diào)度到算子分析的每個工程環(huán)節(jié),都能把高水平候選人和初級選手區(qū)分出來。

備考深度學(xué)習(xí)面試,建議采用“分專題+手撕代碼”的方式,面試題挨個過一遍,把每個工程決策思路整理出來。當(dāng)面試官的所有追問,你都能給出清晰、專業(yè)、有項目背景的回答,offer自然會來。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容