:從簡歷篩選到技術(shù)面試的完整復(fù)盤)
2021年秋招那會(huì)兒我正好也在看機(jī)會(huì)前后聊了十來家做視覺的團(tuán)隊(duì)從安防到自動(dòng)駕駛再到AIOT都有。市場上對(duì)視覺算法崗的要求其實(shí)已經(jīng)分得很細(xì)了有人臉檢測、車牌識(shí)別這類傳統(tǒng)安防方向也有做BEV感知、純視覺方案的新勢力還有做邊緣端模型壓縮的。面完一圈最大的感受是社招和校招完全是兩個(gè)物種。校招還能靠刷題和背八股混過去社招面試官基本只關(guān)心三件事——你做過什么、做到什么程度、遇到問題怎么解決。這篇面經(jīng)我就按自己真實(shí)經(jīng)歷加上身邊同事的反饋整理一份2021年視覺算法崗社招的完整復(fù)盤從簡歷篩選到技術(shù)面到HR面把每個(gè)環(huán)節(jié)的考察邏輯和避坑點(diǎn)都聊透。作為參考我的背景是雙非碩士畢業(yè)兩年在一家做安防設(shè)備的公司做視覺算法工程師主要接觸的是目標(biāo)檢測、人臉識(shí)別、ReID這幾個(gè)方向日常用PyTorch部署用的是TensorRT和OpenVINO。秋招時(shí)面的崗位從純算法到算法部署一體化都有薪資范圍從25k到40k不等最后拿了三家offer。接下來直接進(jìn)入正題按我的面試經(jīng)歷把每個(gè)環(huán)節(jié)拆開講。1. 簡歷篩選階段的底層邏輯與準(zhǔn)備思路很多人以為社招簡歷就是把自己做過的事情列上去其實(shí)面試官在看簡歷的時(shí)候心里已經(jīng)有一套過濾邏輯了。視覺算法崗的簡歷篩選核心就兩個(gè)字匹配。1.1 簡歷篩選的真正看重點(diǎn)技術(shù)面試官篩簡歷的速度比你想象中快得多基本一分鐘內(nèi)就能定性。他們首先看的是項(xiàng)目方向是否和崗位匹配。比如崗位明確寫著要做OCR你簡歷里全是人臉識(shí)別項(xiàng)目就算技術(shù)深度不錯(cuò)面試官也會(huì)猶豫。其次看你使用的技術(shù)棧是否是團(tuán)隊(duì)熟悉的用PyTorch還是TensorFlow訓(xùn)練平臺(tái)是自研的還是開源的部署走的是什么推理引擎這些細(xì)節(jié)決定了你入職后的上手成本。還有一個(gè)容易被忽略的點(diǎn)是簡歷里對(duì)項(xiàng)目結(jié)果的量化描述。寫“提升了檢測精度”等于沒說寫“通過改進(jìn)NMS策略將檢測mAP從78.4提升到81.2推理速度保持30FPS不變”才是有效表達(dá)。面試官需要數(shù)據(jù)來判斷你的項(xiàng)目真實(shí)性和投入程度沒有數(shù)字支撐的描述很難讓人信服。我在準(zhǔn)備簡歷的時(shí)候把每個(gè)項(xiàng)目都改寫成三層結(jié)構(gòu)項(xiàng)目背景解決什么問題、我的職責(zé)具體負(fù)責(zé)哪塊、核心成果量化指標(biāo)技術(shù)亮點(diǎn)。每段經(jīng)歷控制在五行以內(nèi)重點(diǎn)突出最近的一段工作更早的經(jīng)歷只寫和視覺算法相關(guān)的部分。1.2 社招與校招簡歷的本質(zhì)差異社招簡歷的核心邏輯已經(jīng)從“我學(xué)過什么”轉(zhuǎn)變成“我解決過什么問題”。校招簡歷可以羅列課程、比賽、論文但社招面試官對(duì)這些內(nèi)容的信任度很低他們更想看真實(shí)業(yè)務(wù)場景下的問題定義和解決方案。舉個(gè)例子一個(gè)做工業(yè)瑕疵檢測的候選人如果能在簡歷里寫清楚“針對(duì)金屬表面反光導(dǎo)致的誤檢問題通過改進(jìn)打光方案配合圖像增強(qiáng)算法將缺陷召回率從82%提升到93%”面試官一眼就能看出這是真實(shí)做過項(xiàng)目的人因?yàn)槠胀ㄈ司幉怀鲞@么具體的問題和解決路徑。簡歷里面還有一個(gè)我踩過的坑過度包裝模型結(jié)構(gòu)。第一次更新簡歷時(shí)我寫了很多類似于“基于改進(jìn)的CSPDarknet結(jié)構(gòu)”這種話實(shí)際面試時(shí)被追問到底改了哪里、為什么這么改差點(diǎn)答不上來。后來把簡歷里的技術(shù)描述全部調(diào)整成自己能講透的內(nèi)容寧可用簡單但完整的技術(shù)鏈路也不堆砌自己說不清的高級(jí)名詞。提示簡歷里寫的每一項(xiàng)技術(shù)點(diǎn)默認(rèn)面試官都會(huì)往深挖兩到三層。寫之前先自問三個(gè)問題——它解決什么問題、為什么選擇它、有沒有更好的方案。三個(gè)問題答不上來的內(nèi)容趁早刪掉。2. 技術(shù)面試的核心知識(shí)框架與高頻考點(diǎn)拆解準(zhǔn)備社招面試時(shí)我發(fā)現(xiàn)一個(gè)現(xiàn)象考察范圍雖然很廣但高頻考點(diǎn)非常集中。把面了十幾家的題目匯總來看基礎(chǔ)知識(shí)、手撕代碼和項(xiàng)目深挖這三塊占了幾乎百分之百的面試時(shí)長。每家的側(cè)重點(diǎn)不同但底層邏輯是想通的。2.1 深度學(xué)習(xí)基礎(chǔ)題的高頻考察方式視覺算法崗的深度學(xué)習(xí)基礎(chǔ)題翻來覆去就是BN原理、卷積計(jì)算量、梯度消失與爆炸、防止過擬合這幾板斧。但社招面試官的出題方式會(huì)和校招很不一樣他們更喜歡追問原理背后的為什么。比如問BN不會(huì)只讓你背“歸一化到均值為0方差為1”而是會(huì)追問BN在訓(xùn)練和推理階段有什么區(qū)別為什么推理時(shí)要用全局統(tǒng)計(jì)量而不是當(dāng)前batch的統(tǒng)計(jì)量BN在小batch size下為什么效果明顯下降如果把BN放在卷積之前和之后有什么區(qū)別這些問題如果只停留在背公式的層面很容易被問穿。還有卷積計(jì)算量和感受野的計(jì)算也是必考項(xiàng)。比如給你一個(gè)224x224x3的輸入用一個(gè)7x7的卷積核stride2padding3輸出特征圖的尺寸是多少計(jì)算量是多少這種問題看起來簡單但現(xiàn)場手算的時(shí)候很容易因?yàn)榫o張而出錯(cuò)。我的經(jīng)驗(yàn)是平時(shí)把計(jì)算公式固化到肌肉記憶里面試前重新推導(dǎo)一遍確保不用思考也能寫對(duì)。錨框的匹配策略、RPN和FCN的區(qū)別、FPN的特征融合方式以及ROI Align相比ROI Pooling的改進(jìn)點(diǎn)這類目標(biāo)檢測的底層知識(shí)也要重點(diǎn)準(zhǔn)備。面試官習(xí)慣從你最熟悉的檢測算法切入然后用連環(huán)追問來探測你的知識(shí)邊界。與其被動(dòng)等問不如主動(dòng)準(zhǔn)備一套完整的技術(shù)鏈路把自己的知識(shí)體系梳理清楚。2.2 經(jīng)典網(wǎng)絡(luò)結(jié)構(gòu)的理解深度要求面試官考察經(jīng)典網(wǎng)絡(luò)結(jié)構(gòu)時(shí)真正想考察的是你對(duì)視覺算法演進(jìn)脈絡(luò)的理解。ResNet為什么能解決退化問題MobileNet的深度可分離卷積到底減少了多少計(jì)算量FPN為什么能提升小目標(biāo)檢測精度這些問題的答案在論文里都有但能把它們串成一條線講清楚的人不多。我自己的準(zhǔn)備方法是將經(jīng)典網(wǎng)絡(luò)按照發(fā)展脈絡(luò)做了一次梳理從AlexNet到VGG再到GoogLeNet和ResNet之后是DenseNet和EfficientNet再到后來的Vision Transformer。每出現(xiàn)一個(gè)新結(jié)構(gòu)我都會(huì)問自己三個(gè)問題它解決了前人什么痛點(diǎn)、核心創(chuàng)新點(diǎn)是什么、帶來了什么新的問題。這樣的知識(shí)體系在面對(duì)開放式提問時(shí)才能游刃有余。舉個(gè)例子面試官問“為什么ResNet在訓(xùn)練初期收斂那么快”如果你只回答“因?yàn)橛辛藲埐钸B接”明顯不夠深入。面試官其實(shí)期待你能講清楚恒等映射如何讓梯度更容易回傳、如何避免網(wǎng)絡(luò)退化、以及這和深層網(wǎng)絡(luò)的優(yōu)化難度有什么關(guān)系。這類問題沒有標(biāo)準(zhǔn)答案能展開講多少取決于你對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的理解深度。2.3 面試必考的 Transformer 與注意力機(jī)制2021年視覺算法崗的一個(gè)顯著變化是Transformer相關(guān)的問題比重明顯上升。從DETR到ViT再到Swin Transformer面試官已經(jīng)默認(rèn)你至少聽說過這些結(jié)構(gòu)甚至期望你對(duì)原理有一定了解。我印象最深的一次面試面試官直接讓我推導(dǎo)Self-Attention的計(jì)算復(fù)雜度然后追問為什么視覺領(lǐng)域不適合直接用全局注意力以及局部注意力窗口的劃分方式對(duì)特征表達(dá)有什么影響。那場面完出來我立刻把Swin Transformer的論文仔細(xì)看了一遍發(fā)現(xiàn)很多細(xì)節(jié)自己平時(shí)確實(shí)沒留意過。注意事項(xiàng)準(zhǔn)備Transformer相關(guān)知識(shí)時(shí)除了搞懂原理還要關(guān)注它在視覺任務(wù)中落地的難點(diǎn)。比如訓(xùn)練不穩(wěn)定的問題、需要更大數(shù)據(jù)集的問題、與小樣本場景的適配問題等等。面試官最反感的是只會(huì)念結(jié)論、不懂原理的候選人哪怕你把Vit的結(jié)構(gòu)背得滾瓜爛熟一問到為什么需要位置編碼就只能卡殼印象分會(huì)大打折扣。2.4 兩大類必會(huì)的損失函數(shù)及其適用場景損失函數(shù)是視覺算法面試中很容易被忽視但實(shí)際考察頻率很高的一個(gè)點(diǎn)。檢測方向的三件套是交叉熵?fù)p失、Smooth L1損失和Focal Loss每個(gè)都必須能講清楚它的數(shù)學(xué)表達(dá)式、為什么要這么設(shè)計(jì)、適合什么樣的業(yè)務(wù)場景。交叉熵?fù)p失在多分類任務(wù)中的問題是對(duì)易分類樣本也有較大的損失貢獻(xiàn)Focal Loss通過調(diào)制因子降低了易分類樣本的權(quán)重把訓(xùn)練重心推向難例。Smooth L1損失相比L2損失對(duì)離群點(diǎn)不那么敏感在目標(biāo)框回歸任務(wù)中更穩(wěn)定。這些內(nèi)容光記結(jié)論不夠面試官會(huì)給你一個(gè)具體業(yè)務(wù)場景讓你分析用哪種損失函數(shù)更合適這時(shí)候就需要你真正理解不同損失函數(shù)的行為差異。人臉識(shí)別方向的損失函數(shù)也是高頻考點(diǎn)從早期的Triplet Loss到后來的Center Loss再到SphereFace、CosFace和ArcFace。我被問過最多的問題是“ArcFace相比CosFace改進(jìn)了什么”答案是ArcFace在角度空間添加了角度間隔而CosFace是在余弦空間添加了余弦間隔前者對(duì)特征的判別性提升更明顯。這種細(xì)節(jié)問題如果沒有實(shí)際用過真的很難答準(zhǔn)。3. 手撕代碼環(huán)節(jié)的真題復(fù)盤與實(shí)戰(zhàn)技巧手撕代碼是視覺算法崗面試中淘汰率最高的一環(huán)。和純開發(fā)崗位的算法題不同視覺崗的手撕代碼更偏向于模型結(jié)構(gòu)的實(shí)現(xiàn)和圖像處理算法雖然偶爾也會(huì)出LeetCode原題但概率相對(duì)低一些。3.1 高頻出現(xiàn)的代碼題目類型分析視覺算法崗手撕代碼最常出現(xiàn)的四類題型是模型結(jié)構(gòu)的代碼實(shí)現(xiàn)、經(jīng)典算法的復(fù)現(xiàn)、圖像處理底層的函數(shù)實(shí)現(xiàn)、以及一些簡單的業(yè)務(wù)邏輯編碼。模型結(jié)構(gòu)的代碼實(shí)現(xiàn)最常見的是手寫ResNet的BasicBlock、手寫SE模塊、手寫Multi-Head Self-Attention。這些題目看似簡單但實(shí)際上很考驗(yàn)對(duì)細(xì)節(jié)的掌握程度。比如手寫SE模塊的時(shí)候很多人在AdaptiveAvgPool2d的輸出維度處理上會(huì)卡住還有attention的輸出需要保證維度和輸入一致這些細(xì)節(jié)一眼就能看出你有沒有真正寫過。經(jīng)典算法的復(fù)現(xiàn)一般是NMS、IoU計(jì)算、卷積操作循環(huán)實(shí)現(xiàn)、雙線性插值等。NMS是出現(xiàn)頻率最高的題目幾乎每三家就有一家會(huì)考??疾靸?nèi)容包括核心流程、邊界條件處理和復(fù)雜度分析有些公司甚至?xí)屇闶謱懸粋€(gè)變種的Soft-NMS或DIoU-NMS這就需要你不僅會(huì)調(diào)用API還要理解算法底層的每一步操作。圖像處理底層的函數(shù)實(shí)現(xiàn)通常包括直方圖均衡化、高斯濾波、邊緣檢測等。這類題目更多出現(xiàn)在做低層視覺和傳統(tǒng)圖像處理的團(tuán)隊(duì)面試中如果崗位方向是檢測分割考察概率相對(duì)小一些。但基礎(chǔ)不扎實(shí)的候選人一旦遇到就很容易當(dāng)場翻車。3.2 手撕代碼的高標(biāo)準(zhǔn)答案參考以NMS為例給你一份能直接拿高分的標(biāo)準(zhǔn)答案。首先明確NMS的輸入是預(yù)測框的坐標(biāo)和置信度輸出是篩選后的框。核心邏輯是先按置信度排序然后把置信度最高的框和其余框計(jì)算IoU超過閾值的框被抑制接著處理下一個(gè)框不斷迭代直到所有框都被處理完。def nms(boxes, scores, iou_threshold): boxes: (N, 4), format [x1, y1, x2, y2] scores: (N,) x1 boxes[:, 0] y1 boxes[:, 1] x2 boxes[:, 2] y2 boxes[:, 3] areas (x2 - x1) * (y2 - y1) order scores.argsort()[::-1] keep [] while order.size 0: i order[0] keep.append(i) xx1 np.maximum(x1[i], x1[order[1:]]) yy1 np.maximum(y1[i], y1[order[1:]]) xx2 np.minimum(x2[i], x2[order[1:]]) yy2 np.minimum(y2[i], y2[order[1:]]) w np.maximum(0.0, xx2 - xx1) h np.maximum(0.0, yy2 - yy1) inter w * h iou inter / (areas[i] areas[order[1:]] - inter) inds np.where(iou iou_threshold)[0] order order[inds 1] return keep代碼寫完之后面試官大概率會(huì)追問“這個(gè)實(shí)現(xiàn)有什么性能問題”“如果框的數(shù)量特別多怎么加速”。這時(shí)候你要能答上來當(dāng)前實(shí)現(xiàn)的時(shí)間復(fù)雜度是O(N^2)N是候選框數(shù)量。加速思路包括使用GPU并行計(jì)算IoU矩陣、用C實(shí)現(xiàn)或使用更高階的TensorRT NMS插件。3.3 手撕代碼環(huán)節(jié)的實(shí)戰(zhàn)技巧與心態(tài)管理手撕代碼的緊張感是天然的但有幾個(gè)方法能幫你減少失誤。第一先和面試官確認(rèn)輸入輸出的格式和邊界條件這既能爭取思考時(shí)間又能避免方向跑偏。第二寫完核心邏輯后自己用簡單例子快速走一遍流程驗(yàn)證正確性。第三如果卡住了不要沉默。把自己的思考過程說出來面試官往往會(huì)給出引導(dǎo)邊聊邊寫比悶頭硬想效果好得多。手撕代碼的時(shí)候還有一個(gè)很多人忽視的細(xì)節(jié)命名規(guī)范和代碼風(fēng)格。邊界處理正確、代碼整潔、變量名有意義這些都能給面試官留下好印象。說到底社招面試是考察一個(gè)工程師的工程素養(yǎng)而工程素養(yǎng)最直觀的體現(xiàn)就是代碼質(zhì)量和思維清晰度。注意大多數(shù)面試官對(duì)手撕代碼的評(píng)判標(biāo)準(zhǔn)不是“能否一次寫出完美答案”而是“遇到問題時(shí)如何思考和解決”。所以就算寫錯(cuò)了也別慌冷靜分析、主動(dòng)修正比硬撐著說自己寫得對(duì)要好。4. 項(xiàng)目深挖與開放性問題應(yīng)對(duì)策略社招面試和校招最大的區(qū)別就在于項(xiàng)目深挖的深度。面試官會(huì)花大量時(shí)間問項(xiàng)目細(xì)節(jié)本質(zhì)上是想驗(yàn)證你簡歷上寫的是真做過還是只是參與了、打下手了。這個(gè)問題很難準(zhǔn)備因?yàn)槊考夜締柕姆较虿煌珣?yīng)對(duì)思路是有跡可循的。4.1 項(xiàng)目深挖的經(jīng)典問題鏈項(xiàng)目環(huán)節(jié)最常見的切入方式是“講講你最滿意的項(xiàng)目”。這時(shí)候不要像念PPT一樣把項(xiàng)目從頭到尾背一遍而是抓住“問題-方案-結(jié)果”這條主線在兩三分鐘內(nèi)講清楚核心邏輯。太啰嗦會(huì)打斷面試官的思路太簡單會(huì)讓人覺得你沒有深度參與。講完項(xiàng)目后面試官會(huì)順著你的回答往下挖。我整理了一個(gè)高頻的問題清單模型訓(xùn)練過程中l(wèi)oss曲線是怎么變化的有沒有遇到過不收斂的情況怎么排查的測試集和訓(xùn)練集的分布差異你做過什么分析目標(biāo)尺度的分布情況如何小目標(biāo)占比多少有沒有針對(duì)性處理模型的參數(shù)量和計(jì)算量是多少線上服務(wù)能承受多大的QPS。這些問題沒有固定答案但是每一個(gè)都能反映出你對(duì)項(xiàng)目的深入程度。其中被問得最多的是“你在這個(gè)項(xiàng)目中遇到的最大困難是什么怎么解決的”。這個(gè)問題考察的是解決問題的思路和行動(dòng)力。建議選擇一個(gè)真實(shí)的技術(shù)難點(diǎn)講清楚當(dāng)時(shí)面臨的約束條件、你嘗試過的方案、最終選擇某個(gè)方案的原因以及效果如何。重點(diǎn)在于展示思考過程和決策邏輯而不是訴苦或者表功。4.2 開放性問題背后的考察意圖除了項(xiàng)目深挖社招面試還會(huì)問一些開放性問題比如“讓你從零搭建一個(gè)圖像分類系統(tǒng)你會(huì)怎么做”“現(xiàn)有模型的誤檢率太高你會(huì)從哪些方向去優(yōu)化”“你如何看待當(dāng)前視覺算法的發(fā)展趨勢”。這類問題沒有標(biāo)準(zhǔn)答案面試官考察的是你的系統(tǒng)設(shè)計(jì)能力和思考深度。我準(zhǔn)備這類問題的方法是將常見業(yè)務(wù)問題分類整理比如檢測類、分類類、分割類、檢索類每一類的經(jīng)典問題定義、常用技術(shù)鏈路、模型選型和優(yōu)化空間都提前整理成一套標(biāo)準(zhǔn)打法。面試時(shí)遇到類似問題先把問題定義清楚再給出技術(shù)方案最后分析可能的風(fēng)險(xiǎn)點(diǎn)這套結(jié)構(gòu)能讓你的回答比一般人更有條理。網(wǎng)上很多面經(jīng)會(huì)把這類問題歸結(jié)為“考察系統(tǒng)設(shè)計(jì)能力”但我感覺更準(zhǔn)確的說法是“考察工程直覺”。面試官想看你有沒有做過真實(shí)的產(chǎn)品知不知道真實(shí)場景中各種約束條件的存在。比如模型精度提升了0.5個(gè)點(diǎn)但推理耗時(shí)增加了3毫秒這個(gè)trade-off你作為算法工程師怎么看這類問題沒有標(biāo)準(zhǔn)答案但真實(shí)的項(xiàng)目經(jīng)驗(yàn)會(huì)給你很直觀的判斷依據(jù)。4.3 項(xiàng)目復(fù)盤與自我審視的實(shí)操方法準(zhǔn)備項(xiàng)目深挖的核心方法是對(duì)自己的項(xiàng)目做一次“靈魂拷問”式的復(fù)盤。每做一個(gè)項(xiàng)目就問自己這些問題業(yè)務(wù)場景是什么技術(shù)指標(biāo)是什么哪些工作是我獨(dú)立完成的哪些是合作完成的我負(fù)責(zé)的部分有什么亮點(diǎn)遇到的最難的問題是什么我是怎么解決的有沒有更好的方案是我當(dāng)時(shí)沒想到的。這個(gè)復(fù)盤過程的輸出物不是演講稿而是一份問題清單和標(biāo)準(zhǔn)回答。我面每一家之前都會(huì)把簡歷里的項(xiàng)目重新過一遍對(duì)每一個(gè)可能被追問的細(xì)節(jié)提前準(zhǔn)備答案。準(zhǔn)備得越充分現(xiàn)場發(fā)揮越穩(wěn)定。另外還要提一下論文和開源項(xiàng)目在面試中的作用。社招面試中論文是加分項(xiàng)但前提是你對(duì)論文的內(nèi)容有深入理解。如果你在簡歷里寫了某篇論文面試官默認(rèn)你對(duì)它的工作非常熟悉從動(dòng)機(jī)到實(shí)驗(yàn)細(xì)節(jié)都要能講清楚。沒有把握的論文還不如不寫因?yàn)橐坏┍淮链┯绊懙牟粌H是這個(gè)問題的得分而是整場面試的可信度。5. 不同公司風(fēng)格的面試差異與針對(duì)性準(zhǔn)備視覺算法崗的面試風(fēng)格在不同類型的公司之間差異很大面多了自然能總結(jié)出規(guī)律。我把2021年面試過的公司大致分成三類大廠算法團(tuán)隊(duì)、AI獨(dú)角獸和傳統(tǒng)安防廠商它們的考察側(cè)重點(diǎn)完全不同。5.1 大廠算法團(tuán)隊(duì)的面經(jīng)總結(jié)大廠算法團(tuán)隊(duì)的面試流程一般是四到五輪包括兩輪技術(shù)面、一輪交叉面、一輪leader面和一輪HR面。技術(shù)面的核心關(guān)注點(diǎn)是算法基礎(chǔ)和項(xiàng)目深挖交叉面更看重解決問題的思路leader面則更關(guān)注技術(shù)視野和團(tuán)隊(duì)協(xié)作能力。大廠的技術(shù)面題目普遍偏基礎(chǔ)和泛化不太會(huì)針對(duì)某個(gè)特定業(yè)務(wù)場景出題更傾向于考察候選人的知識(shí)廣度。我見過大廠面試官讓候選人講自己熟悉的三個(gè)檢測算法然后拿其中一個(gè)深挖原理的場景。這種考察方式很考驗(yàn)知識(shí)儲(chǔ)備和表達(dá)能力。另一家的大廠面試則出了一個(gè)比較純粹的場景題“在一條沒有交通信號(hào)燈的斑馬線上如何檢測行人并判斷是否會(huì)過馬路”這道題不限定方法要做的是問題拆解、方案設(shè)計(jì)和邊界情況分析看起來像業(yè)務(wù)題但本質(zhì)考察的是系統(tǒng)思考能力。如果你準(zhǔn)備面大廠建議除了刷基礎(chǔ)題還要關(guān)注業(yè)界最新進(jìn)展。2021年那會(huì)兒如果完全沒聽過Swin Transformer或者M(jìn)AE面試官會(huì)覺得你跟業(yè)界脫節(jié)。5.2 AI獨(dú)角獸與創(chuàng)業(yè)公司的風(fēng)格差異AI獨(dú)角獸和創(chuàng)業(yè)公司的面試風(fēng)格更直接技術(shù)面會(huì)圍繞業(yè)務(wù)場景深挖。它們更關(guān)注候選人能否直接上手干活能否帶來團(tuán)隊(duì)缺的技術(shù)能力。面試中經(jīng)常會(huì)被問到“我們目前遇到某某問題你會(huì)怎么解決”這類實(shí)戰(zhàn)型問題。這類公司的面試一般有三輪左右節(jié)奏快、問題直接有時(shí)甚至?xí)谕惠喢嬖囍羞B續(xù)出多個(gè)小問題。我面過一家做工業(yè)質(zhì)檢的創(chuàng)業(yè)公司面試官直接拿了一個(gè)真實(shí)的缺陷樣本集讓我現(xiàn)場分析模型的誤檢原因和優(yōu)化方向。這種考察方式對(duì)日常積累的要求很高沒有真實(shí)項(xiàng)目經(jīng)驗(yàn)的話很難答好。如果你是準(zhǔn)備面這樣的公司建議提前研究目標(biāo)公司的產(chǎn)品和業(yè)務(wù)場景然后準(zhǔn)備幾個(gè)相關(guān)的技術(shù)方案。面試中如果能講到面試官熟悉的技術(shù)細(xì)節(jié)會(huì)顯得你確實(shí)對(duì)業(yè)務(wù)有理解而不是只會(huì)背面試題。5.3 傳統(tǒng)安防與傳統(tǒng)行業(yè)AI團(tuán)隊(duì)的面經(jīng)要點(diǎn)傳統(tǒng)安防廠商和傳統(tǒng)行業(yè)AI團(tuán)隊(duì)的面試風(fēng)格相對(duì)更務(wù)實(shí)但仍然非??粗貏?dòng)手能力。面試官通常是團(tuán)隊(duì)的技術(shù)骨干問題會(huì)更聚焦在具體的業(yè)務(wù)場景上比如人臉識(shí)別的底庫規(guī)模、車牌識(shí)別的復(fù)雜環(huán)境適配、以及模型在嵌入式平臺(tái)上的優(yōu)化等等。這類團(tuán)隊(duì)的面試官對(duì)模型訓(xùn)練和部署的細(xì)節(jié)非常在意喜歡追著問訓(xùn)練的數(shù)據(jù)怎么清洗、標(biāo)注標(biāo)準(zhǔn)怎么制定、模型在硬件平臺(tái)上的推理速度怎么優(yōu)化。我面過的一家安防團(tuán)隊(duì)面試官直接從他們項(xiàng)目的實(shí)際場景出發(fā)問在低照度環(huán)境下人臉的檢出率怎么保證這種問題沒有一勞永逸的答案但面試官期待你能給出針對(duì)性的工程解決方案而不是只談理論。準(zhǔn)備這類面試時(shí)基礎(chǔ)的數(shù)據(jù)處理和模型加速知識(shí)是加分項(xiàng)。如果能在簡歷里體現(xiàn)出對(duì)端側(cè)或邊緣側(cè)部署的理解面試成功率會(huì)高很多。傳統(tǒng)算法工程師可能更偏重圖像處理、特征工程、模型壓縮優(yōu)化這些方向的積累這類崗位的面試官往往也特別注重工程落地的能力。心得面了這么多家以后我的感受是——不要為了某家公司臨時(shí)準(zhǔn)備一套面試話術(shù)。真正有效的方法是把自己的知識(shí)體系維護(hù)好、把做過的項(xiàng)目挖透然后在面試中做真實(shí)的自己。面試官閱人無數(shù)背答案是能被看出來的而一個(gè)能深入聊自己項(xiàng)目的候選人往往比一個(gè)能背出所有面試題的候選人更受歡迎。6. 面試后的復(fù)盤流程與高頻失敗原因診斷很多人面完就完了等結(jié)果或者直接面下一家。這樣其實(shí)浪費(fèi)了很好的成長機(jī)會(huì)。面試的本質(zhì)是一次專業(yè)能力檢驗(yàn)每次被問到答不上來的問題都暴露了你知識(shí)體系中的盲區(qū)。養(yǎng)成面試后復(fù)盤的流程對(duì)后續(xù)面試的提升非常明顯。6.1 高效準(zhǔn)備與面試后的復(fù)盤流程面試結(jié)束后趁記憶還清晰把能記住的題目全部記錄下來特別是那些沒答上來的問題。然后對(duì)這些問題進(jìn)行分類整理區(qū)分出是基礎(chǔ)知識(shí)不到位還是項(xiàng)目細(xì)節(jié)不清楚還是表達(dá)方式有問題。這種分類復(fù)盤能讓你下一次面試前快速找到重點(diǎn)。有一個(gè)我要夸爆的經(jīng)驗(yàn)是錄音復(fù)盤當(dāng)然前提是征求面試官的同意不同意的就靠回憶整理。面試結(jié)束后用30分鐘時(shí)間對(duì)每道題逐題過一遍把自己的回答和理想答案對(duì)比找出差距。多次面試下來你會(huì)發(fā)現(xiàn)高頻考點(diǎn)就那么幾個(gè)把自己的薄弱點(diǎn)逐一補(bǔ)強(qiáng)后后面的面試會(huì)越來越順。我自己的節(jié)奏是每面完一家當(dāng)天晚上就做復(fù)盤筆記不管結(jié)果如何當(dāng)天學(xué)到的東西是真的屬于自己了。6.2 常見未通過原因的主觀剖析根據(jù)我個(gè)人經(jīng)驗(yàn)和身邊案例視覺算法崗社招面不過的主要原因集中在幾個(gè)方面第一個(gè)是知識(shí)面寬但深度不足。好多人能聊MobileNet的輕量化設(shè)計(jì)思路但問到深度可分離卷積的計(jì)算量相比標(biāo)準(zhǔn)卷積減少了多少、為什么就答不上來。這種“能聊不能深”的狀態(tài)在技術(shù)面里最容易暴露。第二個(gè)是項(xiàng)目講不清楚。簡歷里寫了改進(jìn)模型結(jié)構(gòu)但面試官問改了什么、效果提升來自哪里時(shí)支支吾吾。這種情況往往是因?yàn)槊嬖囌邔?duì)項(xiàng)目細(xì)節(jié)的掌控程度不夠或者簡歷包裝過度。第三個(gè)是工程能力欠缺。算法、代碼都還行但一旦牽扯到部署、性能優(yōu)化、跨團(tuán)隊(duì)協(xié)作就會(huì)露餡。社招比校招更看重的就是工程落地能力簡歷上如果沒有體現(xiàn)這部分的經(jīng)驗(yàn)面試官會(huì)有疑慮。第四個(gè)是交流能力不足。面試是個(gè)雙向溝通的過程不是單向答題。有些候選人技術(shù)很強(qiáng)但溝通時(shí)習(xí)慣性打斷面試官或者回答問題過于發(fā)散容易給面試官留下協(xié)作成本高的印象。6.3 針對(duì)性的補(bǔ)強(qiáng)訓(xùn)練方法如果發(fā)現(xiàn)自己基礎(chǔ)知識(shí)不牢最快的補(bǔ)強(qiáng)方法是把經(jīng)典論文和基礎(chǔ)課程重新過一遍用輸出倒逼輸入。我的做法是每讀完一篇論文就對(duì)著空氣講一遍核心貢獻(xiàn)和技術(shù)實(shí)現(xiàn)講不清楚的地方就是知識(shí)盲區(qū)。如果項(xiàng)目講不清楚建議先把自己的項(xiàng)目重新梳理一遍畫出技術(shù)鏈路圖標(biāo)出每個(gè)節(jié)點(diǎn)的輸入輸出和關(guān)鍵參數(shù)。然后模擬面試官可能問到的問題自己給自己做幾輪追問練習(xí)。如果能找到一個(gè)朋友幫忙模擬面試效果會(huì)更好旁觀者清他們往往能指出你自己看不見的問題。如果想補(bǔ)強(qiáng)工程能力最有效的方法是實(shí)際動(dòng)手做一個(gè)小項(xiàng)目把訓(xùn)練到部署的完整流程走一遍。比如用自己的數(shù)據(jù)訓(xùn)練一個(gè)目標(biāo)檢測模型然后轉(zhuǎn)成ONNX再轉(zhuǎn)成TensorRT最后用C或者Python調(diào)用推理。這個(gè)過程雖然辛苦但比看十篇部署文檔都管用因?yàn)樗屇阏嬲斫饽P蛷挠?xùn)練到上線的每一步。7. 2021年社招面試趨勢與核心能力要求的變化回看2021年的視覺算法崗社招一個(gè)明顯的趨勢是“算法工程師”的邊界正在模糊。越來越多的崗位要求算法工程師不僅會(huì)訓(xùn)練模型還要懂部署、懂?dāng)?shù)據(jù)、懂業(yè)務(wù)至少要理解整個(gè)產(chǎn)品鏈路里算法所處的位置。7.1 復(fù)合能力要求的提升2021年的招聘JD里頻繁出現(xiàn)的要求包括熟悉TensorRT、ONNX、OpenVINO等推理引擎有模型壓縮、量化、剪枝經(jīng)驗(yàn)優(yōu)先熟悉C能獨(dú)立完成算法模塊開發(fā)有移動(dòng)端或嵌入式平臺(tái)部署經(jīng)驗(yàn)優(yōu)先。這些要求背后反映的是企業(yè)對(duì)算法工程師的期望已經(jīng)從“模型訓(xùn)練者”轉(zhuǎn)變?yōu)椤八惴óa(chǎn)品完整交付者”。當(dāng)時(shí)做視覺算法的從業(yè)者普遍需要關(guān)注的事情已經(jīng)不止Train一個(gè)環(huán)節(jié)。數(shù)據(jù)標(biāo)注、模型訓(xùn)練、精度調(diào)優(yōu)、壓縮量化、服務(wù)部署整個(gè)生命周期都要有人管。能理解大模型在端側(cè)落地遇到的挑戰(zhàn)能平衡精度和速度的矛盾這種能力在面試時(shí)體現(xiàn)的是工程素養(yǎng)與問題解決能力的深度這種復(fù)合能力在2021年的社招中非常吃香。從面試題也能感覺到這個(gè)趨勢。算法題的比例在下降系統(tǒng)設(shè)計(jì)題和工程題的比例在上升。手寫NMS不再只是檢測方向的基礎(chǔ)題還會(huì)追問“批量計(jì)算IoU矩陣怎么實(shí)現(xiàn)”“如果改用C實(shí)現(xiàn)會(huì)比Python快多少”“怎么把NMS放進(jìn)TensorRT的推理管線里”這類工程化的問題。7.2 技術(shù)與業(yè)務(wù)的銜接意識(shí)另外一個(gè)趨勢是面試官越來越看重候選人對(duì)業(yè)務(wù)的理解。2021年我面過的幾家公司幾乎每家都會(huì)問“你怎么理解你做的算法在業(yè)務(wù)中的價(jià)值”“如果業(yè)務(wù)指標(biāo)和技術(shù)指標(biāo)沖突你怎么權(quán)衡”。這些問題在幾年前的面經(jīng)里很少出現(xiàn)但現(xiàn)在已經(jīng)成了社招面試的常見問題。這個(gè)變化背后的邏輯是算法團(tuán)隊(duì)在企業(yè)里的話語權(quán)越來越取決于算法能否真正解決業(yè)務(wù)問題。一個(gè)模型在A榜上刷到99%的準(zhǔn)確率放到真實(shí)場景卻因?yàn)閿?shù)據(jù)分布差異而失控這種“實(shí)驗(yàn)室效果好”與“實(shí)際落地效果差”的落差正是很多業(yè)務(wù)方對(duì)算法團(tuán)隊(duì)的抱怨來源。所以準(zhǔn)備面試時(shí)除了準(zhǔn)備論文和項(xiàng)目也建議想想你的算法到底服務(wù)了什么業(yè)務(wù)場景用戶是誰成本是多少競品怎么做這些問題想清楚了在回答業(yè)務(wù)相關(guān)問題時(shí)能講出很多有洞察的內(nèi)容。7.3 給后續(xù)求職者的建議如果你正在準(zhǔn)備視覺算法崗的社招面試我的建議是重心放在項(xiàng)目復(fù)盤和系統(tǒng)設(shè)計(jì)能力的提升上。刷題可以但不要過度研究算法原理時(shí)不要只停留在會(huì)推公式要能講清楚實(shí)際數(shù)據(jù)是怎么流動(dòng)、怎么批處理要能理解訓(xùn)練和推理的整個(gè)行為規(guī)律。如果你準(zhǔn)備和面試官聊業(yè)界前沿別只報(bào)名字把每個(gè)關(guān)鍵進(jìn)展的原理和動(dòng)機(jī)講清楚??赡艽蠹铱催@篇面經(jīng)最想獲得的是“標(biāo)準(zhǔn)答案”但我想說的是面經(jīng)的真正價(jià)值不是背答案而是知方向。知道了方向把基礎(chǔ)打牢把項(xiàng)目挖透剩下的事情水到渠成。我從準(zhǔn)備第一場面試時(shí)的手心冒汗到面到最后幾家時(shí)能笑著和面試官討論技術(shù)細(xì)節(jié)中間大概經(jīng)歷了十幾次的復(fù)盤迭代。這個(gè)過程中最深的體會(huì)是面試不是看你能答出多少答案而是看你有沒有一套完整的技術(shù)思維框架和解決未知問題的能力。希望這篇面經(jīng)能讓你的準(zhǔn)備過程少走一點(diǎn)彎路祝順利。