產(chǎn)算力與國(guó)產(chǎn)大模型落地實(shí)踐:從硬件選型到推理優(yōu)化全復(fù)盤)
國(guó)產(chǎn)算力與國(guó)產(chǎn)大模型我最近在多個(gè)項(xiàng)目里把這兩樣?xùn)|西放在了一起本文就是這次從選型到落地的經(jīng)驗(yàn)復(fù)盤。這輪AI的競(jìng)爭(zhēng)底層拼的是算力和模型的協(xié)同能力。過(guò)去一年我陸續(xù)接觸了幾套國(guó)產(chǎn)算力集群方案也幫幾個(gè)客戶把他們自研或開(kāi)源的國(guó)產(chǎn)大模型往國(guó)產(chǎn)硬件上遷。踩過(guò)坑走過(guò)彎路但總體趨勢(shì)已經(jīng)非常明確國(guó)產(chǎn)大算力配上國(guó)產(chǎn)大模型不再是“能不能跑”的驗(yàn)證階段而是進(jìn)入了“怎么跑得更快、更穩(wěn)、更劃算”的實(shí)效階段。這篇內(nèi)容我盡量寫透覆蓋硬件選型、并行策略、算子適配、推理優(yōu)化和集群調(diào)度幾個(gè)關(guān)鍵環(huán)節(jié)。不管你是做模型訓(xùn)練、平臺(tái)工程還是應(yīng)用開(kāi)發(fā)這幾塊內(nèi)容都繞不開(kāi)。先給結(jié)論這套組合的瓶頸不在芯片峰值算力而在軟件棧的成熟度和工程化的精細(xì)程度。誰(shuí)先把這個(gè)短板補(bǔ)上誰(shuí)就能跑在前面。1. 選型思路為什么“國(guó)產(chǎn)算力國(guó)產(chǎn)模型”是必然趨勢(shì)1.1 需求側(cè)的邏輯訓(xùn)練和部署大模型算力成本始終是核心約束。用通用GPU跑DeepSeek這類開(kāi)源模型成本曲線非常陡峭。我做過(guò)測(cè)算一個(gè)7B參數(shù)的稠密模型在通用加速卡上做全參數(shù)微調(diào)單次實(shí)驗(yàn)的算力成本動(dòng)輒數(shù)千元如果是多輪實(shí)驗(yàn)累計(jì)起來(lái)非??捎^。國(guó)產(chǎn)算力卡的單價(jià)雖然也在漲但綜合算上集群搭建、運(yùn)維和長(zhǎng)周期使用的成本相比進(jìn)口方案有明顯優(yōu)勢(shì)。尤其是推理場(chǎng)景國(guó)產(chǎn)卡的性價(jià)比優(yōu)勢(shì)更突出——單卡能承載的并發(fā)請(qǐng)求量和單位token成本在適配優(yōu)化后完全可以和進(jìn)口卡正面競(jìng)爭(zhēng)。1.2 供給側(cè)的變化這兩年國(guó)產(chǎn)芯片的進(jìn)步是實(shí)打?qū)嵉?。單卡FP16算力已經(jīng)追到了國(guó)際主流產(chǎn)品的同一代際水平顯存容量和帶寬也不再是短板。更重要的是生態(tài)在逐步補(bǔ)齊開(kāi)發(fā)框架適配了主流深度學(xué)習(xí)框架分布式通信庫(kù)開(kāi)始支持多機(jī)多卡的高性能通信推理引擎也能直接加載通用格式的模型權(quán)重了。我這次選型的核心標(biāo)準(zhǔn)有三條算力密度和顯存容量是否能滿足模型參數(shù)量需求軟件棧是否支持高效的并行訓(xùn)練和推理優(yōu)化工具鏈?zhǔn)欠裢晟瓢ㄕ{(diào)試、性能分析和模型轉(zhuǎn)換。這三條缺一不可只看紙面算力參數(shù)一定會(huì)踩坑。1.3 深層的產(chǎn)業(yè)協(xié)同效應(yīng)這輪組合之所以能“換道提速”核心在于協(xié)同優(yōu)化。國(guó)產(chǎn)加速卡廠商和模型團(tuán)隊(duì)的合作深度遠(yuǎn)超以往。過(guò)去模型跑在通用生態(tài)上芯片廠商只能被動(dòng)適配現(xiàn)在雙方在算子層面、通信層面做聯(lián)合優(yōu)化。比如針對(duì)模型的注意力機(jī)制定制融合算子針對(duì)MoE結(jié)構(gòu)優(yōu)化專家并行策略。這種深度協(xié)同是“國(guó)產(chǎn)組合”獨(dú)有的優(yōu)勢(shì)也是換道提速的根本原因。2. 硬件平臺(tái)認(rèn)知與軟件棧適配2.1 別按慣用套路調(diào)參拿到國(guó)產(chǎn)算力卡的第一件事不是馬上開(kāi)始訓(xùn)練而是重新理解它的架構(gòu)特性。很多國(guó)產(chǎn)芯片的設(shè)計(jì)思路和常用芯片有本質(zhì)區(qū)別計(jì)算單元的指令調(diào)度方式不同緩存層級(jí)和顯存帶寬的比例不同對(duì)數(shù)據(jù)精度格式的支持范圍不同。我最初做遷移時(shí)按習(xí)慣設(shè)置了很大的批量大小結(jié)果發(fā)現(xiàn)顯存經(jīng)常吃緊、計(jì)算單元卻大量空閑。后來(lái)調(diào)整策略把小批量、梯度累積、流水線并行結(jié)合起來(lái)才把硬件利用率拉上來(lái)。這類經(jīng)驗(yàn)不在任何官方文檔里只能靠壓測(cè)和調(diào)試驗(yàn)證。2.2 軟件棧全鏈路盤點(diǎn)一個(gè)成熟的軟件棧至少包含這幾層底層驅(qū)動(dòng)和運(yùn)行時(shí)庫(kù)負(fù)責(zé)硬件抽象和資源管理算子庫(kù)提供高效的融合算子和基礎(chǔ)算子通信庫(kù)負(fù)責(zé)多卡間的數(shù)據(jù)傳輸和集合通信上層框架適配層讓主流的訓(xùn)練和推理框架能在上面跑工具鏈包括編譯優(yōu)化器和性能分析器。我建議你在選型前就把這些組件全部列出來(lái)逐一確認(rèn)版本兼容性。我遇到過(guò)一種情況推理框架的某個(gè)版本依賴新的算子庫(kù)接口但訓(xùn)練集群上的算子庫(kù)版本較低導(dǎo)致模型轉(zhuǎn)換和部署時(shí)頻繁報(bào)錯(cuò)卡了好幾天。2.3 異構(gòu)計(jì)算的定位國(guó)產(chǎn)算力卡在單個(gè)機(jī)柜內(nèi)組成訓(xùn)練集群時(shí)我傾向于采用異構(gòu)計(jì)算思路一個(gè)典型部署是8卡訓(xùn)練機(jī)4臺(tái)搭配2臺(tái)高帶寬存儲(chǔ)節(jié)點(diǎn)組成一個(gè)訓(xùn)練單元單機(jī)通過(guò)高速網(wǎng)絡(luò)互聯(lián)。存儲(chǔ)節(jié)點(diǎn)提供高速數(shù)據(jù)集緩存避免訓(xùn)練流程反復(fù)讀文件拖慢整體速度。推理環(huán)境則獨(dú)立部署用低延遲網(wǎng)絡(luò)互聯(lián)避免數(shù)據(jù)流量相互干擾。混合精度訓(xùn)練建議使用半精度為主、單精度為輔的策略主訓(xùn)練參數(shù)與優(yōu)化器狀態(tài)用單精度保存中間計(jì)算用半精度。國(guó)產(chǎn)芯片對(duì)混合精度的支持已經(jīng)比較完善收益非常明顯。3. 國(guó)產(chǎn)大模型的部署與微調(diào)實(shí)踐3.1 模型選型與評(píng)估維度國(guó)產(chǎn)大模型的生態(tài)已經(jīng)非常豐富從密集小模型比如7B、13B參數(shù)到大規(guī)模的MoE模型都有。選模型之前先確認(rèn)三個(gè)問(wèn)題第一任務(wù)類型是什么是文本生成、代碼補(bǔ)全還是多模態(tài)理解不同任務(wù)的精度特征差異很大。第二算力預(yù)算能支撐多大參數(shù)量的模型做全參數(shù)微調(diào)還是只能用參數(shù)高效微調(diào)技術(shù)如LoRA第三是否需要商用許可。開(kāi)源模型雖然可以免費(fèi)商用但一些有著寬松授權(quán)的模型在改造自由度上更具優(yōu)勢(shì)能省掉后續(xù)不少麻煩。我經(jīng)常給客戶用一張?jiān)u估表來(lái)輔助決策舉例但結(jié)構(gòu)和邏輯可復(fù)用評(píng)估維度說(shuō)明權(quán)重建議模型能力基線在目標(biāo)任務(wù)上的表現(xiàn)與同類模型的對(duì)比30%資源占用顯存消耗、推理時(shí)延、吞吐量、部署成本30%生態(tài)適配對(duì)國(guó)產(chǎn)訓(xùn)練框架、推理引擎、微調(diào)工具的兼容性25%授權(quán)與成本許可協(xié)議、商業(yè)使用限制、可改造性15%這幾個(gè)維度權(quán)重可以根據(jù)實(shí)際項(xiàng)目調(diào)整但每一項(xiàng)都要實(shí)際測(cè)試不能光看官方宣傳。3.2 微調(diào)流程細(xì)節(jié)與實(shí)操選定模型后微調(diào)是整個(gè)流程中細(xì)節(jié)最多、最容易出問(wèn)題的環(huán)節(jié)。我用一個(gè)標(biāo)準(zhǔn)流程說(shuō)明第一步數(shù)據(jù)準(zhǔn)備。將原始數(shù)據(jù)統(tǒng)一成對(duì)話格式做清洗和去重。這一步特別重要數(shù)據(jù)質(zhì)量直接決定微調(diào)效果。我把清洗規(guī)則列得比較長(zhǎng)過(guò)濾敏感詞、剔除重復(fù)樣本、處理表情符號(hào)、統(tǒng)一標(biāo)點(diǎn)。做中文任務(wù)的時(shí)候還要額外處理繁體簡(jiǎn)體混合和口語(yǔ)化表達(dá)。第二步定義微調(diào)策略。資源有限我一般用LoRA凍結(jié)原模型參數(shù)只訓(xùn)練低秩矩陣。需要更新的參數(shù)量可以控制在全參數(shù)的1%左右顯存開(kāi)銷大幅下降。對(duì)于能力較強(qiáng)的基座模型只用幾百條高質(zhì)量樣本做指令微調(diào)效果就可以非常明顯。第三步訓(xùn)練參數(shù)配置。在國(guó)產(chǎn)芯片上學(xué)習(xí)率設(shè)置我建議比慣用值略低配合小幅度的預(yù)熱步數(shù)。批量大小設(shè)小一些用梯度累積補(bǔ)足。序列長(zhǎng)度則根據(jù)任務(wù)調(diào)整做摘要生成就設(shè)短一些做長(zhǎng)文檔理解就逐步增加到更長(zhǎng)。訓(xùn)練過(guò)程中除了觀察損失曲線我還會(huì)關(guān)注梯度范數(shù)和激活值分布。我遇到過(guò)損失曲線在下降但生成質(zhì)量變差的反?,F(xiàn)象后來(lái)排查發(fā)現(xiàn)是數(shù)據(jù)里的某個(gè)標(biāo)簽字段污染了模型輸出格式。這就不是訓(xùn)練參數(shù)能解決的必須重新清洗數(shù)據(jù)。第四步評(píng)估與迭代。微調(diào)完成后不能只盯著測(cè)試集指標(biāo)。我習(xí)慣讓模型在真實(shí)業(yè)務(wù)樣本上跑一遍輸出人工評(píng)估可讀性和格式一致性。這一步能發(fā)現(xiàn)自動(dòng)化指標(biāo)發(fā)現(xiàn)不了的問(wèn)題。3.3 推理優(yōu)化與部署要點(diǎn)部署是大模型落地的“最后一公里”也是國(guó)產(chǎn)算力組合最容易暴露短板的環(huán)節(jié)。主要性能指標(biāo)是吞吐量和響應(yīng)時(shí)延。核心優(yōu)化手段如下動(dòng)態(tài)批處理把多個(gè)并發(fā)請(qǐng)求動(dòng)態(tài)合并成一批可以顯著提升吞吐量。在線推理服務(wù)建議開(kāi)啟但要注意單批請(qǐng)求長(zhǎng)度差異太大時(shí)會(huì)拖慢整體響應(yīng)需要設(shè)置合理的超時(shí)時(shí)間。顯存管理優(yōu)化使用KV Cache復(fù)用和連續(xù)顯存分配技術(shù)減少顯存碎片。我實(shí)測(cè)過(guò)僅優(yōu)化顯存分配這一項(xiàng)單卡并發(fā)能力就能提升約40%。低比特量化把權(quán)重壓縮到INT8甚至更低來(lái)?yè)Q取推理加速。國(guó)產(chǎn)芯片對(duì)低比特計(jì)算支持不錯(cuò)但在量化時(shí)要小心精度損失。我用過(guò)幾種量化工具對(duì)同一個(gè)7B模型做對(duì)比在保證答案準(zhǔn)確率下降控制在1%以內(nèi)時(shí)INT8推理速度相比原來(lái)的FP16部署提升約1.5倍且顯存占用降低了約一半。部署架構(gòu)方面我推薦把推理服務(wù)拆成兩個(gè)獨(dú)立層入口層負(fù)責(zé)請(qǐng)求鑒權(quán)、流量控制、負(fù)載均衡和基礎(chǔ)安全校驗(yàn)推理層真正跑模型推理的Worker節(jié)點(diǎn)支持彈性擴(kuò)縮容。兩層分離的好處是推理層可以根據(jù)請(qǐng)求量獨(dú)立擴(kuò)容沒(méi)有服務(wù)入口的壓力入口層也不會(huì)因?yàn)橥评頁(yè)矶露宓簟?. 并行策略與通信瓶頸排查4.1 并行策略怎么選訓(xùn)練大模型繞不開(kāi)分布式并行。我常用的并行方案有四種數(shù)據(jù)并行、流水線并行、張量并行和專家并行。它們解決的問(wèn)題各不相同組合使用時(shí)需根據(jù)模型和集群規(guī)模動(dòng)態(tài)調(diào)整。數(shù)據(jù)并行的實(shí)現(xiàn)最簡(jiǎn)單核心代碼改動(dòng)少適合小規(guī)模試水。問(wèn)題在于顯存占用大戶即優(yōu)化器狀態(tài)和梯度會(huì)隨著并行進(jìn)程數(shù)線性增長(zhǎng)。所以純數(shù)據(jù)并行只適合一行GPU放得下的模型。流水線并行把模型按層切成多段分配到不同設(shè)備上執(zhí)行能解決超長(zhǎng)模型顯存不夠的問(wèn)題。但我體驗(yàn)下來(lái)它的短板是設(shè)備之間存在等待氣泡利用率上不去。建議把切分點(diǎn)選在計(jì)算量相對(duì)均衡的地方每段包含層數(shù)不必相同只要總耗時(shí)接近就行。張量并行把每一層的矩陣計(jì)算切到多張卡上通信量極高只適合在一個(gè)節(jié)點(diǎn)內(nèi)使用節(jié)點(diǎn)間網(wǎng)絡(luò)帶寬滿足不了。MoE模型中的專家并行是把不同的專家模塊分到不同設(shè)備上能大幅提升大規(guī)模MoE的訓(xùn)練效率但路由通信同樣是瓶頸。我在訓(xùn)練一個(gè)13B密集模型時(shí)用的是“數(shù)據(jù)并行流水線并行張量并行”的三級(jí)組合先按張量并行把單層切到4卡再按流水線切成4段最后在節(jié)點(diǎn)間做數(shù)據(jù)并行。這樣既壓低了單卡顯存又把節(jié)點(diǎn)內(nèi)的高帶寬通信充分利用起來(lái)。4.2 網(wǎng)絡(luò)通信是隱藏瓶頸并行訓(xùn)練里網(wǎng)絡(luò)通信最容易被忽視但恰恰是決定擴(kuò)展效率上限的關(guān)鍵。我用一個(gè)通用公式來(lái)估算通信占比如果一張卡在單個(gè)batch里的計(jì)算耗時(shí)是T通信耗時(shí)是C理想擴(kuò)展效率是 1/(1C/T)。通信占比每高一點(diǎn)效率損失都被放大。排查通信瓶頸我會(huì)重點(diǎn)關(guān)注三個(gè)位置第一集合通信模式的實(shí)現(xiàn)效率。大規(guī)模并行訓(xùn)練中全規(guī)約操作是最常見(jiàn)的集合通信。有的實(shí)現(xiàn)是層次化的先歸約到節(jié)點(diǎn)內(nèi)再跨節(jié)點(diǎn)歸約性能就高有的實(shí)現(xiàn)是平面廣播集群規(guī)模一大立刻崩潰。我建議在選型時(shí)直接壓測(cè)一下多節(jié)點(diǎn)場(chǎng)景下的通信帶寬和擴(kuò)展效率不要等訓(xùn)練跑起來(lái)才發(fā)現(xiàn)。第二網(wǎng)絡(luò)拓?fù)涓兄?。?xùn)練任務(wù)調(diào)度時(shí)要盡量讓頻繁通信的進(jìn)程組落在同一個(gè)交換域內(nèi)。有一次我們的訓(xùn)練集群效率極低排查到最后發(fā)現(xiàn)是容器調(diào)度策略把8個(gè)進(jìn)程均勻散在了兩個(gè)交換域里跨交換域通信占了總通信量的60%以上。我把調(diào)度策略改為拓?fù)涓兄獌?yōu)先后訓(xùn)練耗時(shí)直接降了35%。第三網(wǎng)卡和驅(qū)動(dòng)的流控設(shè)置。國(guó)產(chǎn)網(wǎng)絡(luò)設(shè)備有些特性需要手動(dòng)開(kāi)啟。比如某些網(wǎng)卡的流控默認(rèn)關(guān)閉高負(fù)載下丟包嚴(yán)重就會(huì)導(dǎo)致通信超時(shí)。這類問(wèn)題特征是訓(xùn)練間歇性變慢日志里有大量重傳記錄。打開(kāi)流控并調(diào)大緩沖區(qū)之后問(wèn)題基本消失。4.3 框架層面還有哪些優(yōu)化空間現(xiàn)在的深度學(xué)習(xí)框架自身也做了不少針對(duì)國(guó)產(chǎn)芯片的優(yōu)化但默認(rèn)參數(shù)不一定適合你的模型。值得動(dòng)手的優(yōu)化點(diǎn)包括關(guān)閉冗余的梯度同步有些框架默認(rèn)每步都同步所有梯度改為按層分組異步同步能減少通信量啟用融合優(yōu)化器把優(yōu)化器更新操作融合進(jìn)計(jì)算流減少多次內(nèi)核啟動(dòng)的開(kāi)銷使用編譯緩存反復(fù)跑相同結(jié)構(gòu)訓(xùn)練任務(wù)時(shí)把圖編譯產(chǎn)物緩存起來(lái)二次任務(wù)啟動(dòng)能快非常多。這些優(yōu)化每項(xiàng)都在細(xì)節(jié)里但疊加起來(lái)很可觀。我一度把一個(gè)7B模型的訓(xùn)練吞吐提升了近20%改的全是框架層配置硬件沒(méi)動(dòng)過(guò)。5. 推理服務(wù)的完整落地實(shí)錄5.1 一個(gè)可復(fù)用的部署架構(gòu)推理服務(wù)的架構(gòu)我直接給出一個(gè)能落地的方案。一個(gè)完整的推理服務(wù)至少包含模型倉(cāng)庫(kù)存放模型權(quán)重、版本信息和配置預(yù)加載服務(wù)服務(wù)啟動(dòng)時(shí)把模型加載進(jìn)顯存并完成預(yù)熱避免首次請(qǐng)求過(guò)慢推理Worker按副本數(shù)水平擴(kuò)展每個(gè)副本獨(dú)立加載模型實(shí)例網(wǎng)關(guān)入口負(fù)責(zé)將請(qǐng)求分發(fā)到各副本支持輪詢和最小連接數(shù)策略。我實(shí)際的部署步驟是把訓(xùn)練好的模型權(quán)重導(dǎo)出為標(biāo)準(zhǔn)格式在推理引擎里做精度校驗(yàn)和量化校準(zhǔn)寫一份部署配置指定模型路徑、量化類型、最大并發(fā)數(shù)和顯存分配策略啟動(dòng)預(yù)加載服務(wù)并做一次白名單請(qǐng)求確認(rèn)推理結(jié)果正確拉起網(wǎng)關(guān)入口把線上流量導(dǎo)過(guò)來(lái)持續(xù)觀測(cè)延遲、吞吐、顯存水位和請(qǐng)求失敗率。關(guān)鍵效果同一批請(qǐng)求在優(yōu)化前是逐個(gè)排隊(duì)處理優(yōu)化后并發(fā)成批進(jìn)入延遲最大的那些請(qǐng)求減少了近一半整體吞吐翻了一倍。這些數(shù)字與硬件和模型規(guī)模有關(guān)不作為絕對(duì)值參考但優(yōu)化空間是真實(shí)的。5.2 推理階段的性能調(diào)優(yōu)記錄這個(gè)環(huán)節(jié)最花時(shí)間也最容易有成就感。第一天我拿到一個(gè)國(guó)產(chǎn)算力集群?jiǎn)喂?jié)點(diǎn)8卡準(zhǔn)備部署一個(gè)13B模型。最初用默認(rèn)參數(shù)啟動(dòng)單實(shí)例只能并發(fā)處理少量請(qǐng)求響應(yīng)延遲還偏高顯卡利用率不到20%。問(wèn)題出在依賴的算子實(shí)現(xiàn)版本過(guò)舊部分計(jì)算流程沒(méi)有融合。更換版本并開(kāi)啟自動(dòng)融合后顯存分配碎片化問(wèn)題也隨之改善。隨后調(diào)整了動(dòng)態(tài)批處理的等待窗口從固定值改為自適應(yīng)值請(qǐng)求少時(shí)減少等待請(qǐng)求多時(shí)拉開(kāi)一點(diǎn)窗口湊大批次。吞吐量又提升了一截。最后用量化把模型從原精度壓到INT8同時(shí)做了一層輸出概率的補(bǔ)償保證生成質(zhì)量不塌。至此才算完成。整個(gè)調(diào)優(yōu)周期約兩周大部分時(shí)間花在定位算子級(jí)瓶頸上。5.3 可觀測(cè)性建設(shè)運(yùn)維側(cè)容易忽略的是可觀測(cè)性。推理服務(wù)一旦出問(wèn)題如果沒(méi)有完善的指標(biāo)監(jiān)控排查會(huì)非常痛苦。我建議至少要覆蓋這些指標(biāo)基礎(chǔ)設(shè)施層卡利用率、顯存使用率、溫度、互聯(lián)帶寬服務(wù)層推理請(qǐng)求數(shù)、平均延遲、P99延遲、批大小分布業(yè)務(wù)層生成成功率、平均生成token數(shù)、內(nèi)容拒答率資源層進(jìn)程CPU內(nèi)存占用、網(wǎng)絡(luò)連接數(shù)、磁盤IO。把這些指標(biāo)接入現(xiàn)有監(jiān)控體系配上告警規(guī)則。比如P99延遲連續(xù)5分鐘超過(guò)閾值就報(bào)警顯存水位超過(guò)90%就提醒擴(kuò)容。有了這套優(yōu)化和排查效率會(huì)高很多。6. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄6.1 算子不支持導(dǎo)致的靜默失敗這是國(guó)產(chǎn)芯片遷移中最常見(jiàn)的一類問(wèn)題訓(xùn)練能啟動(dòng)Loss也在降但某一輪突然出現(xiàn)NaN或報(bào)錯(cuò)原因往往是某個(gè)自定義算子沒(méi)有對(duì)應(yīng)實(shí)現(xiàn)框架悄悄走了兜底路徑而兜底路徑數(shù)值精度不達(dá)標(biāo)。排查思路很簡(jiǎn)單固定隨機(jī)種子復(fù)現(xiàn)問(wèn)題逐步縮小范圍到特定的算子再對(duì)照算子支持矩陣查是否命中已知兼容性問(wèn)題。如果確認(rèn)算子有問(wèn)題改寫成等價(jià)操作組合即可繞過(guò)。6.2 模型并行通信卡死現(xiàn)象多機(jī)訓(xùn)練時(shí)某個(gè)節(jié)點(diǎn)心跳超時(shí)任務(wù)整體卡住其他節(jié)點(diǎn)在等它。排查步驟先看節(jié)點(diǎn)的網(wǎng)卡狀態(tài)和錯(cuò)誤計(jì)數(shù)器有無(wú)大量丟棄包或錯(cuò)誤包再看網(wǎng)絡(luò)交換機(jī)端口有無(wú)異常告警最后看集合通信庫(kù)日志確認(rèn)卡住的是哪個(gè)集合通信操作。解決方向一般是調(diào)整網(wǎng)絡(luò)驅(qū)動(dòng)參數(shù)、換用層次化集合通信實(shí)現(xiàn)、或者把并行策略中的通信熱點(diǎn)分散到不同網(wǎng)絡(luò)路徑上。6.3 推理時(shí)顯存越用越滿推理服務(wù)跑一段時(shí)間后顯存持續(xù)上漲最終OOM。這是典型的顯存泄漏。定位方法論記錄顯存隨時(shí)間的變化曲線確認(rèn)是持續(xù)上漲還是臺(tái)階式上漲關(guān)閉動(dòng)態(tài)批處理功能看是否仍然泄漏以區(qū)分是緩存策略引發(fā)還是內(nèi)核資源未釋放升級(jí)推理引擎版本或顯存分配器往往能解決一部分內(nèi)核級(jí)泄漏問(wèn)題。我在一個(gè)項(xiàng)目里排查了三天最后發(fā)現(xiàn)是某個(gè)老版本推理引擎的key-value緩存回收邏輯有缺陷。升級(jí)到新版本后顯存曲線立刻變成了平穩(wěn)直線。6.4 常見(jiàn)問(wèn)題速查表現(xiàn)象可能原因排查方向訓(xùn)練Loss震蕩不收斂學(xué)習(xí)率過(guò)大、數(shù)據(jù)順序不當(dāng)、梯度累積步數(shù)不匹配調(diào)低學(xué)習(xí)率、打亂數(shù)據(jù)順序、檢查累積步數(shù)設(shè)置訓(xùn)練速度遠(yuǎn)低于預(yù)期網(wǎng)絡(luò)拓?fù)洳桓兄?、通信模式低效、批大小太小啟用拓?fù)涓兄{(diào)度、壓測(cè)通信帶寬、增大批大小推理首token延遲高模型未預(yù)熱、顯存分配碎片化、算子未融合啟動(dòng)時(shí)做預(yù)熱請(qǐng)求、開(kāi)啟顯存復(fù)用、檢查計(jì)算圖融合日志并發(fā)一高就崩動(dòng)態(tài)批處理等待窗口設(shè)置不當(dāng)調(diào)整超時(shí)參數(shù)設(shè)置每批最大token上限生成內(nèi)容重復(fù)率高解碼參數(shù)不合適、長(zhǎng)度懲罰太弱調(diào)整溫度參數(shù)、增加重復(fù)懲罰系數(shù)7. 換道提速的經(jīng)驗(yàn)總結(jié)把這一路的體會(huì)濃縮成幾條供參考第一明確目標(biāo)再選型。不同團(tuán)隊(duì)的情況天差地別有人需要極致訓(xùn)練性能有人只看推理性價(jià)比有人更看重二次開(kāi)發(fā)的自由度。目標(biāo)不同最優(yōu)解必然不同。不要盲目追最新的旗艦卡也不要低估舊款多卡集群的整體產(chǎn)出。第二軟件棧生態(tài)遠(yuǎn)比芯片算力參數(shù)重要。能跑起來(lái)、能優(yōu)化起來(lái)、能排查出問(wèn)題遠(yuǎn)比紙面性能數(shù)字重要。選型評(píng)估時(shí)建議留出兩周時(shí)間專門做生態(tài)驗(yàn)證跑通工具鏈全流程。第三工程化水平?jīng)Q定上限。同樣一套硬件和模型A團(tuán)隊(duì)可能跑出雙倍于B團(tuán)隊(duì)的吞吐差別全在工程細(xì)節(jié)顯存管理、并行策略、通信優(yōu)化、請(qǐng)求調(diào)度。這些都要在項(xiàng)目初期就規(guī)劃好不能等出了問(wèn)題再補(bǔ)。第四團(tuán)隊(duì)要建立“硬件模型”的復(fù)合能力。過(guò)去做應(yīng)用的和做芯片的是兩個(gè)圈子現(xiàn)在必須融合。至少要有一個(gè)人能看懂計(jì)算圖融合邏輯有一個(gè)人能讀懂網(wǎng)絡(luò)通信指標(biāo)有一個(gè)人能做推理服務(wù)的容量評(píng)估。國(guó)產(chǎn)算力和國(guó)產(chǎn)模型的組合正在從“可用”走向“好用”。這個(gè)過(guò)程中沒(méi)有銀彈只有把每一個(gè)環(huán)節(jié)摳細(xì)、把每一分算力用在刀刃上才能真正跑出加速度。希望這篇文章能幫你少踩幾個(gè)坑把時(shí)間花在更值得做的事情上。