絡(luò)面試核心:分布式訓(xùn)練、RDMA與擁塞控制)
準(zhǔn)備AI Infra方向面試的朋友最容易在算法和訓(xùn)練框架上侃侃而談但一被問到AI集群網(wǎng)絡(luò)基礎(chǔ)就容易露怯。不是大家不努力而是網(wǎng)絡(luò)這塊知識(shí)太散了——今天背了個(gè)RDMA概念明天又看到一堆InfiniBand、RoCE、PFC、ECN的縮寫沒有一條主線串起來面試就答不到點(diǎn)子上。我自己當(dāng)年面AI Infra崗位時(shí)也在這上面栽過跟頭。后來在千卡集群上踩了一年的坑重新梳理才發(fā)現(xiàn)AI集群網(wǎng)絡(luò)其實(shí)有一套非常清晰的邏輯核心就是分布式訓(xùn)練到底給網(wǎng)絡(luò)提了什么需求網(wǎng)絡(luò)又是怎么滿足這些需求的。這篇文章就是基于這條主線把AI Infra面試中最??嫉木W(wǎng)絡(luò)基礎(chǔ)知識(shí)整理成一份可以系統(tǒng)復(fù)習(xí)的提綱。適合準(zhǔn)備AI Infra、計(jì)算集群、MLOps相關(guān)崗位面試的工程師也適合剛接觸集群網(wǎng)絡(luò)想快速建立框架的人。1. 為什么AI Infra面試必考網(wǎng)絡(luò)1.1 AI Infra工程師日常繞不開三件事AI Infra這個(gè)崗位在招聘JD里經(jīng)常寫得云里霧里但實(shí)際工作內(nèi)容我概括成三件事讓訓(xùn)練跑起來、讓訓(xùn)練跑得更快、讓集群更穩(wěn)定。第一件事靠部署能力和框架配置第二件事靠性能分析和調(diào)優(yōu)第三件事靠監(jiān)控、容錯(cuò)和故障恢復(fù)。這三件事每一件都繞不開網(wǎng)絡(luò)。訓(xùn)練能跑起來至少需要理解分布式訓(xùn)練框架是怎么把模型拆到多張卡上的拆完之后梯度同步走什么通信原語(yǔ)跑得更快需要定位算力瓶頸和通信瓶頸而通信瓶頸大概率出在網(wǎng)絡(luò)上集群穩(wěn)定則要面對(duì)網(wǎng)卡故障、交換機(jī)丟包、鏈路閃斷這些每天都在發(fā)生的小事。所以一個(gè)合格的AI Infra工程師說到底是半個(gè)網(wǎng)絡(luò)工程師。這也是面試官愛問網(wǎng)絡(luò)基礎(chǔ)的根本原因。1.2 算力越強(qiáng)網(wǎng)絡(luò)越容易成為性能天花板很多人對(duì)網(wǎng)絡(luò)的重要性沒有體感是因?yàn)閱螜C(jī)單卡的訓(xùn)練根本不需要網(wǎng)絡(luò)。但到了大模型時(shí)代情況完全不同。一個(gè)千億參數(shù)的模型光參數(shù)和梯度就要按TB量級(jí)來算單卡肯定裝不下必須做各種并行。數(shù)據(jù)并行要求每輪迭代后把所有GPU的梯度匯總模型并行要求把中間激活值在各層之間傳來傳去專家并行則更夸張每個(gè)token可能都要跨節(jié)點(diǎn)訪問專家模塊。這些通信操作的時(shí)間通常能占到整個(gè)訓(xùn)練迭代的10%到40%。GPU算力不斷增強(qiáng)以后這一點(diǎn)越來越刺眼。A100的算力提升后計(jì)算一個(gè)batch的時(shí)間縮短了通信時(shí)間卻沒法同步縮短整體訓(xùn)練速度就被通信主導(dǎo)。我在實(shí)際集群里見過不少次這種情況訓(xùn)練loss曲線看上去很正常但GPU利用率只有40%一查NCCL profiling發(fā)現(xiàn)大量時(shí)間卡在網(wǎng)絡(luò)等待上。這種問題不從網(wǎng)絡(luò)角度分析單靠調(diào)訓(xùn)練參數(shù)不可能解決。面試官專門拿網(wǎng)絡(luò)來篩人非常合理。1.3 面試官考察的三個(gè)真實(shí)維度根據(jù)我面別人和被別人面下來的經(jīng)驗(yàn)面試官問網(wǎng)絡(luò)基礎(chǔ)主要考察三個(gè)維度這三個(gè)維度也可以當(dāng)作復(fù)習(xí)主線。第一概念是否清晰那些縮寫和術(shù)語(yǔ)之間的邊界能不能講明白這決定了基礎(chǔ)知識(shí)扎不扎實(shí)。第二能不能從分布式訓(xùn)練的需求推導(dǎo)出網(wǎng)絡(luò)設(shè)計(jì)的邏輯而不是背答案這決定了你是不是真的理解了系統(tǒng)。第三面對(duì)訓(xùn)練慢通信卡死這類實(shí)際故障時(shí)能不能沿著網(wǎng)絡(luò)鏈路逐層排查這決定了你有沒有實(shí)戰(zhàn)能力。后面幾個(gè)章節(jié)基本就是圍繞這三個(gè)維度展開的。2. 先建地圖AI集群網(wǎng)絡(luò)到底分幾層2.1 從單機(jī)多卡到跨機(jī)通信速度斷崖第1章說網(wǎng)絡(luò)重要但很多人沒意識(shí)到最核心的差距在哪。單機(jī)內(nèi)多卡通信走的是PCIe或NVLink。NVLink的本質(zhì)是GPU之間專用的高速總線目前主流H100平臺(tái)的NVLink帶寬能到900GB/s這個(gè)速度接近內(nèi)存訪問級(jí)別。而網(wǎng)絡(luò)通信走網(wǎng)卡當(dāng)前主流是400Gbps換算下來是50GB/s。也就是說單機(jī)內(nèi)通信和跨機(jī)通信之間隔了一個(gè)數(shù)量級(jí)這是所有分布式系統(tǒng)設(shè)計(jì)都要面對(duì)的根本約束。這個(gè)差距帶來連鎖反應(yīng)能放在單機(jī)內(nèi)完成的數(shù)據(jù)交換盡量不跨機(jī)但模型規(guī)模上去以后跨機(jī)通信又無法避免。所以AI集群網(wǎng)絡(luò)的目標(biāo)非常明確盡量把跨機(jī)通信的帶寬做大、時(shí)延做低同時(shí)讓通信模式和拓?fù)淦ヅ錅p少不必要的跨跳數(shù)。理解了這條主線后面所有知識(shí)點(diǎn)就能串起來。2.2 一套集群三張網(wǎng)計(jì)算、存儲(chǔ)、管理在真實(shí)AI集群機(jī)房走一圈你會(huì)發(fā)現(xiàn)物理上并不只有一套網(wǎng)絡(luò)。邏輯上至少分三張計(jì)算網(wǎng)絡(luò)承載GPU之間的訓(xùn)練通信流量這是最高性能的網(wǎng)絡(luò)普遍用InfiniBand或RoCE帶寬以400G為主流存儲(chǔ)網(wǎng)絡(luò)承載數(shù)據(jù)集讀取和checkpoint落盤對(duì)帶寬要求高但時(shí)延容忍度稍高管理網(wǎng)絡(luò)承載帶外BMC、監(jiān)控、控制指令帶寬需求小普通以太網(wǎng)就可以。這三個(gè)平面很容易在面試中忽略但有個(gè)很好的延伸考點(diǎn)checkpoint寫入存儲(chǔ)網(wǎng)絡(luò)時(shí)如果存儲(chǔ)網(wǎng)絡(luò)帶寬不足會(huì)造成GPU空等這種隱性瓶頸在長(zhǎng)訓(xùn)練任務(wù)里非常常見?;卮鸺豪镉心男┚W(wǎng)絡(luò)時(shí)把計(jì)算、存儲(chǔ)、管理講清楚再補(bǔ)一句存儲(chǔ)網(wǎng)絡(luò)在checkpoint頻繁場(chǎng)景下的重要性會(huì)讓面試官覺得你有實(shí)戰(zhàn)意識(shí)。2.3 帶寬、時(shí)延、BDP與對(duì)分帶寬四件套面試基礎(chǔ)題里帶寬和時(shí)延是絕對(duì)高頻。我建議用一句話說清區(qū)別帶寬是單位時(shí)間能運(yùn)多少貨時(shí)延是貨從出發(fā)到到達(dá)要多久。兩者不矛盾但容易混淆。舉例來說一輛貨車走高速公路時(shí)延低但帶寬也就一條車道如果換成大車隊(duì)開同樣的路帶寬大了第一輛車到達(dá)的時(shí)間卻不會(huì)更快。通信時(shí)間 數(shù)據(jù)量 / 帶寬 時(shí)延 × 交互次數(shù)這個(gè)公式在面試?yán)锖艹S媒ㄗh背下來并理解每一項(xiàng)的實(shí)際含義。BDP帶寬時(shí)延積稍微進(jìn)階一點(diǎn)它的意義是在等待返回消息的那段時(shí)間里鏈路上能容納多少數(shù)據(jù)。如果這個(gè)值很大說明網(wǎng)絡(luò)很容易被打滿需要足夠的并發(fā)流和緩沖區(qū)來利用帶寬。對(duì)分帶寬則是衡量網(wǎng)絡(luò)最壞情況下的通信能力把網(wǎng)絡(luò)切成兩半兩側(cè)之間的總帶寬。在評(píng)估網(wǎng)絡(luò)拓?fù)涫欠駮?huì)導(dǎo)致?lián)砣麜r(shí)對(duì)分帶寬是核心指標(biāo)。這四個(gè)概念講清楚基礎(chǔ)關(guān)基本就過了。3. 集合通信AI訓(xùn)練最核心的網(wǎng)絡(luò)負(fù)載3.1 為什么面試一定要考AllReduce如果要我押一道AI Infra面試必考題我會(huì)押AllReduce。原因很簡(jiǎn)單數(shù)據(jù)并行訓(xùn)練里每個(gè)GPU獨(dú)立算出一份梯度但在更新模型參數(shù)之前所有GPU必須拿到所有梯度的平均值這個(gè)操作就是AllReduce。它出現(xiàn)在每一次迭代里頻率極高數(shù)據(jù)量極大。這里要強(qiáng)調(diào)的是AllReduce不只是一個(gè)操作它背后帶出一整套思考方式這種所有節(jié)點(diǎn)到所有節(jié)點(diǎn)的通信模式不能簡(jiǎn)單理解為多發(fā)幾次點(diǎn)對(duì)點(diǎn)通信因?yàn)辄c(diǎn)對(duì)點(diǎn)會(huì)產(chǎn)生嚴(yán)重的流量擁塞。設(shè)計(jì)上要考慮如何把全網(wǎng)流量打散到各條鏈路上如何讓每個(gè)節(jié)點(diǎn)都承擔(dān)相近的收發(fā)量如何減少總通信時(shí)間。面試官問到AllReduce其實(shí)是在問你能不能從通信模式出發(fā)思考網(wǎng)絡(luò)設(shè)計(jì)而不是停留在API層面。3.2 Ring AllReduce的原理、時(shí)間推導(dǎo)和局限Ring AllReduce是數(shù)據(jù)并行里最常見的實(shí)現(xiàn)方式。思路是把所有GPU排成一個(gè)邏輯環(huán)每個(gè)GPU只向相鄰的GPU收發(fā)數(shù)據(jù)。整個(gè)過程分兩步第一步是Reduce-Scatter把數(shù)據(jù)切成N份每一份在環(huán)上接力式做求和最終每個(gè)GPU持有其中一份的完整結(jié)果第二步是AllGather每個(gè)GPU把自己持有的那一份廣播給所有人最終每個(gè)GPU都拿到了全套均值。時(shí)間上每個(gè)分片從出發(fā)到完成規(guī)約大約需要經(jīng)過N-1次傳輸考慮到并行流水線整體耗時(shí)近似為總數(shù)據(jù)量的兩倍除以帶寬再乘上一個(gè)與拓?fù)湎嚓P(guān)的系數(shù)。這個(gè)兩倍就是所有數(shù)據(jù)被傳輸了兩次一次規(guī)約一次廣播。Ring的優(yōu)雅之處在于每個(gè)節(jié)點(diǎn)都只和鄰居通信不會(huì)出現(xiàn)單點(diǎn)熱點(diǎn)但代價(jià)是時(shí)延隨環(huán)長(zhǎng)線性增加。所以超大規(guī)模集群更傾向用分層AllReduce、Tree AllReduce甚至把數(shù)據(jù)切成多個(gè)分段同時(shí)做多環(huán)并行。面試中能順勢(shì)說出Ring在卡數(shù)多時(shí)時(shí)延不好業(yè)界會(huì)用層級(jí)化方案來優(yōu)化相當(dāng)加分。3.3 集合通信原語(yǔ)和并行策略的映射關(guān)系除了AllReduce集合通信還有幾個(gè)原語(yǔ)值得記熟。AllGather是每個(gè)節(jié)點(diǎn)把自己持有的數(shù)據(jù)廣播給所有人數(shù)據(jù)總量隨節(jié)點(diǎn)數(shù)線性增長(zhǎng)Reduce-Scatter是每個(gè)節(jié)點(diǎn)先本地規(guī)約再分散傳輸最終每個(gè)節(jié)點(diǎn)得到部分結(jié)果Broadcast是單源到多目的Send/Recv則是點(diǎn)對(duì)點(diǎn)。這些原語(yǔ)看似基礎(chǔ)卻是理解各種并行策略的關(guān)鍵。數(shù)據(jù)并行主線是AllReduce但用了梯度分片技術(shù)之后其實(shí)可以拆成Reduce-Scatter AllGather張量并行和流水線并行里大量使用Send/Recv和AllGather專家并行的token路由則會(huì)產(chǎn)生大量稀疏的All-to-All流量。能把這層映射說清楚面試官會(huì)知道你不僅知道概念還知道它們?cè)谡鎸?shí)訓(xùn)練里怎么用。3.4 NCCL框架和硬件之間的翻譯官講到集合通信一定會(huì)提到NCCLNVIDIA Collective Communications Library。它是英偉達(dá)提供的集合通信庫(kù)PyTorch DDP底層基本都走它。NCCL的作用是感知GPU拓?fù)溥x擇最優(yōu)的通信路徑和算法常見因素包括GPU是否在同一PCIe switch下、是否同一機(jī)架、是否走IB網(wǎng)絡(luò)。實(shí)際排障時(shí)NCCL的日志和環(huán)境變量也很重要。NCCL_DEBUGINFO會(huì)輸出通信路徑和拓?fù)湫畔CCL_IB_DISABLE1可以強(qiáng)制走以太網(wǎng)遇到鏈路問題這些開關(guān)能快速定位。面試中談到NCCL能舉出這類實(shí)操細(xì)節(jié)非常加分。4. IB與RoCE v2面試高頻的協(xié)議選型對(duì)比4.1 InfiniBand為什么是省心方案InfiniBand是HPC領(lǐng)域沉淀多年的高性能網(wǎng)絡(luò)技術(shù)。它從設(shè)計(jì)之初目標(biāo)就很明確為分布式計(jì)算提供高帶寬、低時(shí)延、無損的網(wǎng)絡(luò)。它的做法是全棧專用從網(wǎng)卡、交換機(jī)、線纜到協(xié)議都考慮了高性能和高可靠性還專門有子網(wǎng)管理器負(fù)責(zé)路由計(jì)算和故障恢復(fù)。實(shí)際使用IB的體驗(yàn)是穩(wěn)定鏈路一旦up帶寬基本能跑滿很少出現(xiàn)傳統(tǒng)網(wǎng)絡(luò)里讓人頭疼的丟包重傳問題。缺點(diǎn)也非常明顯貴、閉環(huán)、學(xué)習(xí)門檻高而且IB世界的很多知識(shí)在通用數(shù)據(jù)中心里用不上。但要是公司追求訓(xùn)練性能上限運(yùn)維團(tuán)隊(duì)又有經(jīng)驗(yàn)IB仍然是不錯(cuò)的選擇。4.2 RoCE v2把RDMA搬進(jìn)傳統(tǒng)以太網(wǎng)RoCE的全稱是RDMA over Converged Ethernetv2版本使用IP/UDP封裝可以跨越三層網(wǎng)絡(luò)和傳統(tǒng)以太網(wǎng)設(shè)施兼容。它的最大價(jià)值是普通交換機(jī)也能支撐RDMA級(jí)別的通信成本大幅下降。在互聯(lián)網(wǎng)公司里RoCE 白盒交換機(jī)的方案相當(dāng)流行原因就是改造現(xiàn)有數(shù)據(jù)中心網(wǎng)絡(luò)的成本遠(yuǎn)低于新建一套IB網(wǎng)絡(luò)。但天下沒有免費(fèi)的午餐。RoCE的核心挑戰(zhàn)是以太網(wǎng)本身是有損網(wǎng)絡(luò)而RDMA對(duì)丟包極度敏感一個(gè)微小丟包就可能導(dǎo)致重傳風(fēng)暴、帶寬斷崖。為應(yīng)對(duì)這個(gè)問題RoCE網(wǎng)絡(luò)必須依賴PFC、ECN、智能網(wǎng)卡等機(jī)制把有損網(wǎng)絡(luò)偽裝成無損。這套機(jī)制調(diào)好了RoCE能接近IB的性能調(diào)不好就是各種PFC風(fēng)暴、網(wǎng)絡(luò)卡死非常消耗運(yùn)維精力。4.3 IB與RoCE v2對(duì)比一張表說清差異復(fù)習(xí)時(shí)用對(duì)比表來記憶很高效這里也分享給你面試可以按這個(gè)框架組織語(yǔ)言維度InfiniBandRoCE v2設(shè)計(jì)理念全棧專用為HPC而生復(fù)用以太網(wǎng)生態(tài)的RDMA方案網(wǎng)絡(luò)層封裝自有協(xié)議棧IP/UDP封裝支持路由丟包控制原生無損硬件機(jī)制完善依賴PFC/ECN配置復(fù)雜成本設(shè)備貴生態(tài)封閉成本低兼容現(xiàn)有以太網(wǎng)運(yùn)維復(fù)雜度相對(duì)低穩(wěn)定高需精細(xì)調(diào)優(yōu)典型場(chǎng)景超大規(guī)模HPC、頭部AI集群互聯(lián)網(wǎng)公司AI訓(xùn)練推理集群回答選型題時(shí)不要直接說IB好或RoCE好而是先給出約束條件規(guī)模多大、預(yù)算多少、是否需要兼容現(xiàn)有設(shè)施、運(yùn)維具備什么能力。在這個(gè)前提下給出傾向性更合理。比如三千卡以下、已有成熟以太網(wǎng)運(yùn)維的團(tuán)隊(duì)RoCE v2的綜合性價(jià)比通常更好追求極致性能和技術(shù)閉環(huán)則是IB方向。4.4 交換機(jī)和拓?fù)銫LOS/Fat-Tree是主流網(wǎng)絡(luò)協(xié)議之外物理拓?fù)涫橇硪粔K必考內(nèi)容。傳統(tǒng)數(shù)據(jù)中心常用三層樹形結(jié)構(gòu)從上到下是核心、匯聚、接入但它的最大問題是上行帶寬容易不足流量越往上層越集中。AI集群要傳輸海量并行流量用這種結(jié)構(gòu)會(huì)迅速擁塞。現(xiàn)在主流是CLOS架構(gòu)也叫脊葉架構(gòu)。簡(jiǎn)單理解Spine是骨干層Leaf是接入層每個(gè)Leaf都連接所有Spine任何Leaf之間通信最多三跳。好處是橫向擴(kuò)展能力極強(qiáng)需要更大帶寬時(shí)往Spine層加交換機(jī)即可多路徑也讓流量能分散不容易出現(xiàn)單點(diǎn)瓶頸。面試常有一個(gè)追問怎么評(píng)估一個(gè)拓?fù)浜貌缓没卮鸱较蚓褪菍?duì)分帶寬和路徑數(shù)量。計(jì)算對(duì)分帶寬時(shí)從Leaf規(guī)模、Spine規(guī)模、端口速率推導(dǎo)。能在這個(gè)問題上給出計(jì)算思維很容易留下好印象。5. 擁塞控制與調(diào)優(yōu)AI集群最容易踩的坑5.1 AI流量模式和傳統(tǒng)網(wǎng)絡(luò)完全不同前面說過AI集群的流量是典型的周期性爆發(fā)加全集群同步。每次訓(xùn)練迭代開始所有GPU幾乎同時(shí)發(fā)起集合通信一瞬間可能把交換機(jī)端口打滿形成微突發(fā)。傳統(tǒng)網(wǎng)絡(luò)里這種突發(fā)可以用TCP的重傳和緩沖吸收掉影響不大但在RDMA場(chǎng)景下丟包就是災(zāi)難。這里必須拉出一個(gè)關(guān)鍵概念in-cast流量擁塞也就是多臺(tái)服務(wù)器同時(shí)向一臺(tái)交換機(jī)或一臺(tái)服務(wù)器發(fā)包造成瞬時(shí)過載。AllReduce的Gather階段就是典型的in-cast模式。面試?yán)锶绻苤鲃?dòng)說出AI流量是同步的、突發(fā)的、有模式的多對(duì)一流量和通用的任意到任意流量模型不同說明你真的理解問題本質(zhì)。5.2 PFC、ECN這些機(jī)制該怎么答無損RDMA網(wǎng)絡(luò)背后有兩個(gè)機(jī)制必須掌握PFC和ECN。PFC優(yōu)先級(jí)流控的作用是當(dāng)交換機(jī)緩沖區(qū)快滿時(shí)向上游設(shè)備發(fā)送暫停幀讓上游暫時(shí)停止發(fā)送從而不丟包。這像高速路上前方擁堵時(shí)交警攔住后方車輛。副作用是可能產(chǎn)生隊(duì)頭阻塞也就是一條流的暫停會(huì)卡住其他流嚴(yán)重時(shí)形成PFC風(fēng)暴網(wǎng)絡(luò)癱瘓。成熟的RoCE網(wǎng)絡(luò)會(huì)把PFC觸發(fā)閾值設(shè)得很高并盡量靠其他機(jī)制避免觸發(fā)PFC。ECN顯式擁塞通知是更柔性的機(jī)制交換機(jī)檢測(cè)到擁塞時(shí)給報(bào)文打標(biāo)記接收端感知后把擁塞信息反饋給發(fā)送端發(fā)送端主動(dòng)降速。這就像導(dǎo)航軟件告訴你前方堵車你自主變道減速而不是交警硬攔。ECN配合RoCE v2的DCQCN算法可以實(shí)現(xiàn)比較平滑的擁塞控制。面試?yán)锬軐?duì)比PFC和ECN的定位——PFC是兜底ECN是主動(dòng)調(diào)節(jié)——再提一句兩者互操作不當(dāng)可能引發(fā)的問題就是高手回答。5.3 訓(xùn)練慢排查的實(shí)操路徑最后分享一個(gè)真實(shí)排障路徑面試同樣能用。遇到訓(xùn)練變慢我的習(xí)慣是分四步第一步看GPU利用率如果GPU整體空等多半是通信瓶頸第二步看NCCL日志和profiling確認(rèn)卡在哪個(gè)集合通信原語(yǔ)、哪一跳第三步看網(wǎng)絡(luò)監(jiān)控關(guān)注交換機(jī)端口流量、丟包計(jì)數(shù)、PFC觸發(fā)計(jì)數(shù)出現(xiàn)丟包基本能鎖定物理鏈路或擁塞參數(shù)問題第四步檢查光模塊光功率和線纜狀態(tài)很多通信慢的根因是光模塊衰耗過大引發(fā)大量重傳。這套路徑的價(jià)值在于把抽象問題拆成可執(zhí)行的排查動(dòng)作。面試官問你如何排查訓(xùn)練慢時(shí)可以按這個(gè)順序回答再補(bǔ)一句越是慢的問題越要從物理層看起因?yàn)榕渲眯秃臀锢硇凸收险剂舜蠖鄶?shù)。這句話是我實(shí)戰(zhàn)中的真實(shí)體會(huì)。6. 面試真題與答題思路速查6.1 基礎(chǔ)概念類快速過一遍準(zhǔn)備面試時(shí)我會(huì)快速過一遍基礎(chǔ)題確保每道題能在30秒內(nèi)答出要點(diǎn)。這里列幾道最??嫉腞DMA是什么需要強(qiáng)調(diào)兩點(diǎn)直接內(nèi)存訪問、繞過操作系統(tǒng)內(nèi)核協(xié)議棧所以時(shí)延低、CPU占用低。NVLink和網(wǎng)絡(luò)的差別NVLink是GPU之間或GPU與CPU之間的高速總線作用范圍在單機(jī)內(nèi)以太網(wǎng)或IB是跨機(jī)的。帶寬和時(shí)延的區(qū)別用運(yùn)貨速度和到貨時(shí)間類比最直觀。對(duì)分帶寬怎么理解把網(wǎng)絡(luò)切成兩半后兩側(cè)之間的總帶寬用來衡量網(wǎng)絡(luò)最壞情況通信能力。這些題目本身不難但很多人答得散原因是沒形成框架。建議回答時(shí)先給一句話定義再補(bǔ)一個(gè)實(shí)際訓(xùn)練場(chǎng)景里的例子比如AllReduce里最怕的就是帶寬不足所以對(duì)分帶寬直接影響擴(kuò)展性這樣內(nèi)容就立體了。6.2 原理推導(dǎo)類展現(xiàn)建模能力面試官可能會(huì)問數(shù)據(jù)并行下把卡數(shù)從128擴(kuò)到512AllReduce通信時(shí)間怎么變很多人直接回答變慢四倍但正確的是分情況討論。Ring AllReduce里單節(jié)點(diǎn)分到的分片數(shù)據(jù)量等于總數(shù)據(jù)量除以卡數(shù)數(shù)據(jù)量大時(shí)擴(kuò)展卡數(shù)單節(jié)點(diǎn)處理量反而減少但時(shí)延項(xiàng)會(huì)隨環(huán)長(zhǎng)增加。還要考慮拓?fù)淇〝?shù)增加往往意味著跨Spine流量變多擁塞加劇。所以準(zhǔn)確的回答是需要從帶寬和時(shí)延兩個(gè)維度分開建模。這種定量加定性的回答方式很考察建模能力。面試官也經(jīng)常設(shè)置變體比如如果換成AllGather呢AllGather是每個(gè)節(jié)點(diǎn)把自己的數(shù)據(jù)廣播給所有人數(shù)據(jù)量隨節(jié)點(diǎn)數(shù)線性增長(zhǎng)那擴(kuò)卡后通信時(shí)間通常確實(shí)會(huì)增加。能針對(duì)不同原語(yǔ)作出不同推導(dǎo)說明你真的理解而不是背了一個(gè)公式。6.3 場(chǎng)景設(shè)計(jì)類先建模再選型場(chǎng)景題也很有代表性給你512張A100卡要搭一個(gè)訓(xùn)練集群你怎么選網(wǎng)卡、交換機(jī)和拓?fù)湮业拇痤}框架是把問題拆成四步先算需求按單卡通信帶寬400G來算512卡總需求約200Tbps考慮實(shí)際到達(dá)率還需要預(yù)留余量再選網(wǎng)絡(luò)類型確定IB還是RoCE預(yù)算充足、追求穩(wěn)定選IB已有以太網(wǎng)生態(tài)選RoCE然后定拓?fù)銫LOS架構(gòu)Leaf按每機(jī)架8臺(tái)服務(wù)器乘8卡估算Spine按對(duì)分帶寬需求定數(shù)量最后討論運(yùn)維留出監(jiān)控、告警和故障切換預(yù)案。這個(gè)框架可以應(yīng)對(duì)很多變體比如卡數(shù)翻倍、加訓(xùn)練任務(wù)、引入推理服務(wù)等。核心邏輯是先有需求再有設(shè)計(jì)而不是一上來就報(bào)一堆型號(hào)參數(shù)。面試官聽你講設(shè)計(jì)時(shí)關(guān)注的是你有沒有算過賬這比記住具體型號(hào)重要得多。6.4 故障排查類思路比答案更重要這類題通常給一個(gè)現(xiàn)場(chǎng)描述訓(xùn)練迭代突然變慢日志里出現(xiàn)NCCL超時(shí)你怎么辦記住一個(gè)原則不要跳著答不要一上來就說是某條鏈路壞了。正確順序是先定范圍用profiling確認(rèn)是通信卡頓還是計(jì)算卡頓再定位位置從日志拓?fù)湫畔⒄夜收宵c(diǎn)然后查網(wǎng)絡(luò)證據(jù)丟包、重傳、PFC計(jì)數(shù)最后給出行動(dòng)換線、換光模塊、調(diào)參數(shù)或重啟NCCL。你甚至可以主動(dòng)說我會(huì)先低優(yōu)先級(jí)觀察一段時(shí)間很多網(wǎng)絡(luò)問題是抖動(dòng)性的快速重啟反而掩蓋真相。這種回答明顯更有工程師氣質(zhì)也更容易讓面試官產(chǎn)生共鳴。實(shí)際運(yùn)維里重啟有時(shí)只是緩解癥狀根因還在能體現(xiàn)這層思考說明你不是只會(huì)抄命令。7. 一些個(gè)人經(jīng)驗(yàn)和建議這篇文章寫到這里主線內(nèi)容已經(jīng)覆蓋得比較完整最后聊一點(diǎn)個(gè)人感受。AI Infra面試準(zhǔn)備最容易犯的錯(cuò)誤是把網(wǎng)絡(luò)知識(shí)當(dāng)成一門背誦課——今天背RDMA定義明天背ECN原理后天背CLOS架構(gòu)看起來都會(huì)一遇到綜合題就露餡。我的建議是用一條主線串起來從大模型訓(xùn)練需要通信推導(dǎo)出集合通信進(jìn)而推導(dǎo)出網(wǎng)絡(luò)需要高性能和低時(shí)延再推導(dǎo)出硬件選型和拓?fù)湓O(shè)計(jì)最后推導(dǎo)出擁塞控制的重要性。順著這條鏈復(fù)習(xí)你會(huì)發(fā)現(xiàn)所有知識(shí)點(diǎn)都是必然出現(xiàn)的而不是孤立存在的。另一個(gè)建議是盡量動(dòng)手做一次小實(shí)驗(yàn)。NVIDIA官方有NCCL的測(cè)試工具比如nccl-tests你可以在兩臺(tái)機(jī)器上跑AllReduce的benchmark打開NCCL_DEBUGINFO看看路徑選擇再用ethtool查看網(wǎng)卡協(xié)商速率和丟包計(jì)數(shù)。親眼看一次帶寬沒跑滿、調(diào)整參數(shù)后明顯改善的過程比死記硬背十篇資料都有用。最后分享一個(gè)小技巧面試時(shí)被問到一個(gè)不確定的網(wǎng)絡(luò)概念先別慌不要硬背答案??梢哉f我理解這個(gè)問題可以從幾個(gè)層面看然后把你最熟悉的一層展開把不確定的部分坦誠(chéng)帶過。面試官在意的是思維路徑不是完美答案。AI集群網(wǎng)絡(luò)這個(gè)領(lǐng)域迭代非??鞆腎B的HDR到NDR從RoCE v1到v2再到各種增強(qiáng)很多細(xì)節(jié)很快會(huì)過期但底層的方法論不會(huì)變。把思路練扎實(shí)比囤積一堆參數(shù)和名詞更有價(jià)值。