到物理:AI算法與計(jì)算硬件的協(xié)同躍遷)
1. 從符號(hào)到物理AI發(fā)展史上的一次坐標(biāo)系更換做了十多年AI算法和系統(tǒng)優(yōu)化我越來(lái)越覺(jué)得“算法”和“硬件”這兩件事從來(lái)就不是兩條平行線——尤其在深度學(xué)習(xí)成為主流的這十年它們之間的關(guān)系已經(jīng)從“各自為政”變成了“深度纏繞”。今天想跟你聊的這個(gè)話題題目叫“從符號(hào)到物理AI算法與計(jì)算硬件同一場(chǎng)底層的協(xié)同躍遷”說(shuō)白了就是在講一件正在發(fā)生、但很多人還沒(méi)完全意識(shí)到的事AI的進(jìn)步不只是算法的功勞也不只是芯片的功勞而是兩者在底層邏輯上正在完成一次方向一致的躍遷。先解釋一下“符號(hào)”和“物理”這兩個(gè)詞。早期的人工智能研究走的是符號(hào)主義路線——用邏輯規(guī)則、知識(shí)圖譜、if-then規(guī)則來(lái)描述智能。那個(gè)階段算法本質(zhì)上是“符號(hào)操作”跟硬件幾乎沒(méi)有直接關(guān)系。你在一臺(tái)普通的x86服務(wù)器上跑專家系統(tǒng)和在一臺(tái)專用設(shè)備上跑差別不大因?yàn)檫\(yùn)算量太小了硬件的物理特性根本構(gòu)不成瓶頸。但深度學(xué)習(xí)的到來(lái)徹底改變了這局面。神經(jīng)網(wǎng)絡(luò)動(dòng)輒幾億甚至幾千億參數(shù)一次訓(xùn)練要跑幾天幾夜計(jì)算量爆炸式增長(zhǎng)。這時(shí)候算法不再是一個(gè)“純邏輯”的東西它開始嚴(yán)重依賴硬件的物理能力——內(nèi)存帶寬夠不夠、算力峰值有多少、數(shù)據(jù)傳輸快不快、功耗頂不頂?shù)米?。算法從符?hào)世界跌落到了物理世界這一跌就把“算法-硬件協(xié)同”這個(gè)命題推到了舞臺(tái)中央。這篇文章適合誰(shuí)看如果你是搞AI算法研究、做模型訓(xùn)練和推理優(yōu)化、做AI基礎(chǔ)設(shè)施選型或者正在琢磨AI芯片、編譯器、推理引擎這些事的工程師這篇文章值得你花十幾分鐘讀一遍。我會(huì)把“協(xié)同躍遷”這件事拆開揉碎講清楚它背后的邏輯鏈條也會(huì)分享一些我在實(shí)際項(xiàng)目中踩過(guò)的坑和琢磨出來(lái)的心得。2. 為什么“協(xié)同”成了必然而不是可選2.1 算力焦慮背后的結(jié)構(gòu)性矛盾先看一組大家都在感受的事實(shí)。過(guò)去幾年大模型的參數(shù)量指數(shù)級(jí)增長(zhǎng)但硬件算力的增長(zhǎng)遠(yuǎn)遠(yuǎn)跟不上這個(gè)速度。用行業(yè)里流行的話說(shuō)“算力缺口是常態(tài)算力匹配是意外。”這里有一個(gè)根本性的矛盾算法研究者的思維慣性是“模型越大越好、精度越高越好”但硬件工程師的思維慣性是“物理極限擺在那里堆料總有盡頭”。這兩個(gè)慣性在十年前可以互相無(wú)視因?yàn)槟菚r(shí)候的模型規(guī)模還在硬件承受范圍內(nèi)。但到了今天你要訓(xùn)練一個(gè)千億參數(shù)的大模型如果沒(méi)有專門的硬件優(yōu)化策略、沒(méi)有模型并行、沒(méi)有混合精度訓(xùn)練、沒(méi)有梯度檢查點(diǎn)哪怕你手里有幾千張卡也照樣跑不動(dòng)或者跑不起。這就是“從符號(hào)到物理”的第一層含義算法的復(fù)雜度終于撞上了物理的天花板于是算法必須開始為物理讓路或者更準(zhǔn)確地說(shuō)必須學(xué)會(huì)跟物理打交道。2.2 從“算法優(yōu)先”到“硬件感知”我見(jiàn)過(guò)很多團(tuán)隊(duì)前幾年做AI項(xiàng)目的時(shí)候是純粹的“算法優(yōu)先”思路先在GPU上把模型跑通、跑出漂亮指標(biāo)然后再考慮怎么部署到實(shí)際硬件上。結(jié)果一部署就出事——模型在GPU上推理只要5毫秒換到邊緣設(shè)備上可能要500毫秒完全沒(méi)法用。這種“算法優(yōu)先、硬件后置”的模式在深度學(xué)習(xí)的早期還勉強(qiáng)行得通因?yàn)楫?dāng)時(shí)的部署場(chǎng)景沒(méi)那么多硬件差異也沒(méi)那么大。但到了今天AI要跑到手機(jī)、攝像頭、汽車、智能音箱、MCU上硬件的多樣性已經(jīng)是幾何級(jí)數(shù)增長(zhǎng)。如果算法設(shè)計(jì)階段不考慮硬件特性后面九成九要返工。反過(guò)來(lái)說(shuō)硬件設(shè)計(jì)者也在經(jīng)歷同樣的轉(zhuǎn)變。以前的芯片設(shè)計(jì)是“造出一個(gè)通用計(jì)算單元然后讓所有軟件去適應(yīng)它”。但現(xiàn)在的AI芯片不管是NVIDIA的GPU、Google的TPU還是各種NPU、ASIC很多都是先想清楚“要跑什么模型、什么計(jì)算模式占大頭”再回頭設(shè)計(jì)硬件架構(gòu)。矩陣乘加運(yùn)算多我就強(qiáng)化矩陣單元數(shù)據(jù)傳輸是瓶頸我就做高帶寬內(nèi)存內(nèi)存墻擋路我就做存算一體。所以你看**“協(xié)同”不是某一個(gè)方向的單方面妥協(xié)而是兩個(gè)方向的相互逼近。**這正是“同一場(chǎng)底層的協(xié)同躍遷”這個(gè)說(shuō)法的由來(lái)——算法在向物理靠攏硬件在向算法靠攏兩者在底層相遇。2.3 用“廚師和廚房”理解協(xié)同如果覺(jué)得上面說(shuō)得有點(diǎn)抽象我打個(gè)比方。算法就像一個(gè)不斷發(fā)明新菜式的廚師硬件就是廚房。以前廚師只寫菜譜符號(hào)不用管廚房長(zhǎng)什么樣。但現(xiàn)在廚師開始動(dòng)輒做幾百人份的宴席大模型發(fā)現(xiàn)廚房的灶臺(tái)不夠用、鍋不夠大、上菜速度跟不上。于是廚師開始調(diào)整菜譜——比如把某些步驟合并、把食材提前切好與此同時(shí)廚房也在改造——加大灶臺(tái)、優(yōu)化傳菜通道。菜譜和廚房的配合就是算法和硬件的協(xié)同。只有菜譜改而廚房不改或者廚房改而菜譜不改都解決不了“幾百人宴席”的本質(zhì)問(wèn)題。只有兩邊一起改往同一個(gè)方向使勁才可能把這場(chǎng)“底層躍遷”真正落地。3. 協(xié)同躍遷的三個(gè)核心技術(shù)戰(zhàn)場(chǎng)3.1 計(jì)算模式的重塑面向矩陣與張量的硬件進(jìn)化我們先把鏡頭拉近看看“從符號(hào)到物理”在硬件側(cè)具體體現(xiàn)在哪里。傳統(tǒng)CPU的設(shè)計(jì)哲學(xué)是“通用、靈活”擅長(zhǎng)處理復(fù)雜的控制流和分支跳轉(zhuǎn)。但深度學(xué)習(xí)里的核心運(yùn)算是矩陣乘法和卷積它們的特征極度規(guī)律——大量重復(fù)的乘加運(yùn)算、幾乎不分叉。這跟CPU的“多才多藝”正好相反搞得CPU跑神經(jīng)網(wǎng)絡(luò)又慢又費(fèi)電。硬件的回答是專用化。GPU最先站出來(lái)用幾千個(gè)CUDA core同時(shí)做張量運(yùn)算把矩陣乘算得飛快后來(lái)NVIDIA又加了Tensor Core專門做混合精度矩陣計(jì)算一步頂過(guò)去好多步。NPU神經(jīng)網(wǎng)絡(luò)處理單元更激進(jìn)直接砍掉大量通用計(jì)算能力把大部分晶體管留給矩陣乘法單元、激活函數(shù)單元和片上緩存。我實(shí)測(cè)過(guò)不少設(shè)備僅從數(shù)值上說(shuō)同樣跑一個(gè)MobileNet一塊中端NPU的吞吐量可能比同一塊SoC里的CPU高一個(gè)數(shù)量級(jí)以上。這不是優(yōu)化技巧的差距而是架構(gòu)的差距——硬件在物理層面已經(jīng)為神經(jīng)網(wǎng)絡(luò)重新長(zhǎng)出了“肌肉”。3.2 算法側(cè)的反向適應(yīng)量化、剪枝與知識(shí)蒸餾與此同時(shí)算法也在往物理側(cè)靠攏最典型的是量化、剪枝和知識(shí)蒸餾這“老三樣”。量化這個(gè)詞聽著玄乎本質(zhì)就是“用更少的比特?cái)?shù)表示模型參數(shù)”。原來(lái)一個(gè)權(quán)重用32位浮點(diǎn)數(shù)表示現(xiàn)在我用8位整數(shù)甚至4位、2位。模型體積立刻小好幾倍推理速度大幅提升代價(jià)是精度輕微下降。你可能會(huì)問(wèn)為什么不直接上32位精度精度不是越高越好嗎因?yàn)樵谖锢硎澜缋锞群退俣取⒐?、顯存是一套零和博弈。算法選擇了為物理讓路——用一點(diǎn)點(diǎn)精度換巨大的工程收益。剪枝更直白把神經(jīng)網(wǎng)絡(luò)里那些對(duì)最終結(jié)果影響極小的連接或通道直接砍掉。這就像你要搬家行李太多搬不動(dòng)那就仔細(xì)檢查一遍把半年沒(méi)用的東西都扔掉。搬運(yùn)推理就會(huì)輕松很多。知識(shí)蒸餾則是把一個(gè)大模型老師學(xué)到的知識(shí)壓縮到一個(gè)小模型學(xué)生里讓小模型在物理資源受限的設(shè)備上也能接近大模型的精度。這一整套操作的核心思路只有一個(gè)在保住模型能力下限的前提下讓模型去適配硬件的物理限制。如果把算法比作軟件世界的“靈魂”那量化和剪枝就是這場(chǎng)“降維適應(yīng)”最典型的代表。3.3 架構(gòu)層面的合流從“馮·諾依曼瓶頸”到存算一體再往底層看一步。傳統(tǒng)的馮·諾依曼架構(gòu)把“計(jì)算”和“存儲(chǔ)”分得清清楚楚數(shù)據(jù)從內(nèi)存里取出來(lái)送到計(jì)算單元里算算完再存回去。這個(gè)架構(gòu)運(yùn)行普通程序沒(méi)問(wèn)題但跑深度學(xué)習(xí)就暴露了致命短板——數(shù)據(jù)傳輸?shù)墓暮脱舆t遠(yuǎn)遠(yuǎn)大于計(jì)算本身的功耗和延遲。學(xué)術(shù)圈管這個(gè)叫“內(nèi)存墻”或者“馮·諾依曼瓶頸”。你想想看神經(jīng)網(wǎng)絡(luò)推理時(shí)每一層都要反復(fù)讀取權(quán)重、寫入中間結(jié)果到處是數(shù)據(jù)搬運(yùn)。搬運(yùn)數(shù)據(jù)的開銷壓過(guò)了算數(shù)的開銷這時(shí)候再堆算力就是南轅北轍。于是業(yè)界開始往兩個(gè)方向突圍一個(gè)方向是“近存計(jì)算”把計(jì)算單元盡量放到離存儲(chǔ)近的地方縮短搬運(yùn)距離另一個(gè)更激進(jìn)的方向是“存算一體”讓存儲(chǔ)單元本身具備計(jì)算能力直接在“內(nèi)存里面算”。我去年接觸過(guò)一個(gè)存算一體芯片的測(cè)試項(xiàng)目跑低精度神經(jīng)網(wǎng)絡(luò)推理能效比確實(shí)有數(shù)量級(jí)層面的改善。雖然現(xiàn)在這項(xiàng)技術(shù)還沒(méi)到大規(guī)模商用階段但它代表的方向很清晰算法已經(jīng)“物理化”到了硬件的基本操作層面連“存”和“算”的邊界都要被重畫了。4. 工程視角協(xié)同思維怎么落地到實(shí)際項(xiàng)目4.1 模型選型時(shí)請(qǐng)把硬件拉進(jìn)決策桌我見(jiàn)過(guò)不少算法工程師選模型時(shí)只看精度排行榜在GPU上測(cè)一測(cè)精度不錯(cuò)就說(shuō)“就它了”。結(jié)果到了具體的邊緣設(shè)備上一跑延遲高得嚇人功耗超標(biāo)完全推不動(dòng)。正確的做法是把硬件當(dāng)成選型的“共同決策人”。我自己的經(jīng)驗(yàn)是拿到一個(gè)AI任務(wù)第一件事不是翻模型排行榜而是搞清楚目標(biāo)設(shè)備是什么、算力多少、內(nèi)存多少、功耗預(yù)算多少。需求清楚了再倒推這個(gè)約束條件下用MobileNet還是RepVGG用7B的模型還是3B的模型用FP16還是INT8心里就有數(shù)了。比如做一個(gè)工業(yè)視覺(jué)質(zhì)檢項(xiàng)目目標(biāo)設(shè)備是一塊中低端SoC內(nèi)存只有4GB。你要是把YOLOv7直接丟上去基本跑不動(dòng)。但如果你從一開始就選了YOLOv5nnano版或者輕量化版本再配合INT8量化效果可能依然能打速度也夠用。這就是“硬件感知的算法選型”。4.2 性能調(diào)優(yōu)的協(xié)同思維別只盯著FLOPs很多工程師習(xí)慣用FLOPs浮點(diǎn)運(yùn)算次數(shù)來(lái)衡量一個(gè)模型的“計(jì)算量”覺(jué)得FLOPs越小模型就越快。這個(gè)想法在純理論層面沒(méi)錯(cuò)但在物理世界往往是錯(cuò)的。為什么因?yàn)閷?shí)際推理時(shí)間是“計(jì)算時(shí)間訪存時(shí)間調(diào)度開銷”的復(fù)合結(jié)果而訪存時(shí)間在很多場(chǎng)景下占了絕對(duì)大頭。兩個(gè)模型FLOPs差不多但如果A模型的權(quán)重訪問(wèn)模式更連續(xù)、緩存命中率更高A的實(shí)際推理速度就可能是B的兩倍。這就是為什么有些模型參數(shù)多但推理快有些模型參數(shù)少但推理慢。調(diào)優(yōu)的時(shí)候我一般按這個(gè)順序排查先是看算子的訪存效率——有沒(méi)有頻繁訪問(wèn)外部存儲(chǔ)、有沒(méi)有可以讓數(shù)據(jù)留在緩存里的算子融合機(jī)會(huì)再看算子的并行度——在目標(biāo)設(shè)備上是不是能充分利用多核或SIMD最后才看FLOPs本身。用協(xié)同思維做調(diào)優(yōu)很多“玄學(xué)”性能問(wèn)題其實(shí)都有清晰的物理答案。4.3 工具鏈的選擇決定你跟硬件打交道的方式說(shuō)到工程落地還有一個(gè)經(jīng)常被低估的點(diǎn)工具鏈。同樣一個(gè)模型用不同的推理框架跑性能差出幾倍很正常。我自己常用的推理引擎有ONNX Runtime、TensorRT、OpenVINO、TFLite還有各種NPU配套的SDK。選型邏輯很簡(jiǎn)單目標(biāo)硬件是什么就優(yōu)先用這家硬件廠商主推的推理引擎。比如NVIDIA的卡就用TensorRTIntel的設(shè)備就用OpenVINO高通平臺(tái)優(yōu)先考慮它的SNPE或者QNN邊緣端MCU則干脆看CMSIS-NN這類底層庫(kù)。如果你用的是PyTorch訓(xùn)練模型中間的“從訓(xùn)練到部署”的格式轉(zhuǎn)換是一個(gè)特別容易掉鏈子的環(huán)節(jié)。我的經(jīng)驗(yàn)是盡早把轉(zhuǎn)換流程定下來(lái)別等到上線前一天才去折騰轉(zhuǎn)模型不然各種算子不兼容、精度對(duì)不上能把你折磨到懷疑人生。另外建議在選型時(shí)優(yōu)先支持標(biāo)準(zhǔn)化的模型格式比如ONNX方便后續(xù)在多個(gè)硬件平臺(tái)之間切換。4.4 關(guān)于“降本增效”的現(xiàn)實(shí)賬本聊到“從符號(hào)到物理”很多人的第一反應(yīng)是覺(jué)得這就是個(gè)理論話題。但我跟你說(shuō)落到實(shí)際項(xiàng)目里“協(xié)同躍遷”帶來(lái)的成本和性能收益是實(shí)打?qū)嵉?。舉一個(gè)真實(shí)的例子。我之前幫一個(gè)客戶做視頻結(jié)構(gòu)化分析原來(lái)方案是用一臺(tái)GPU服務(wù)器去跑一個(gè)很大的檢測(cè)模型硬件成本高功耗也高。后來(lái)我們做了兩件事第一把模型從原來(lái)的大模型壓縮成輕量化模型精度掉了不到1個(gè)百分點(diǎn)第二針對(duì)目標(biāo)硬件重新做了算子和緩存優(yōu)化。結(jié)果服務(wù)器降級(jí)成了普通的邊緣盒子單臺(tái)設(shè)備成本下降了70%以上整體吞吐量反而上來(lái)了。讓算法“頓悟”到物理層面的限制比單純追精度指標(biāo)有用得多。5. 常見(jiàn)誤區(qū)與踩坑經(jīng)驗(yàn)5.1 誤區(qū)“算法和硬件可以分開優(yōu)化”這是我聽過(guò)最多的錯(cuò)誤觀念。有人覺(jué)得算法工程師管好模型結(jié)構(gòu)就行硬件的事交給芯片廠商和系統(tǒng)工程師就行。但在實(shí)際項(xiàng)目中分開優(yōu)化往往是整體次優(yōu)甚至不可用的根源。舉個(gè)我踩過(guò)的真實(shí)例子。某個(gè)端側(cè)識(shí)別項(xiàng)目算法團(tuán)隊(duì)在GPU上把模型優(yōu)化到精度非常理想然后交給工程團(tuán)隊(duì)部署到手機(jī)端。工程團(tuán)隊(duì)一看這模型太大了根本裝不進(jìn)硬件限制的包體里只能強(qiáng)行剪枝壓縮。結(jié)果壓縮完精度掉得比預(yù)期多很多團(tuán)隊(duì)內(nèi)就開始互相甩鍋。后來(lái)重新反過(guò)來(lái)做先定好硬件約束算法側(cè)圍繞約束重新設(shè)計(jì)模型結(jié)構(gòu)工程側(cè)同步優(yōu)化推理策略兩邊協(xié)同精度和性能都保住了。所以我的建議是項(xiàng)目啟動(dòng)第一天算法、系統(tǒng)、硬件相關(guān)的人就要坐在一起對(duì)齊邊界。各自悶頭做自己的部分最后想起來(lái)拼起來(lái)八成要出事。5.2 誤區(qū)“量化一定掉點(diǎn)能不用就不用”量化這種技術(shù)很多人一聽說(shuō)“精度有損”就敬而遠(yuǎn)之。實(shí)際上現(xiàn)代量化工具已經(jīng)非常成熟很多場(chǎng)景下INT8量化對(duì)精度的影響小于0.5%。但確實(shí)有賽道特別容易出問(wèn)題比如目標(biāo)檢測(cè)的小目標(biāo)、超分辨率、語(yǔ)音合成等任務(wù)量化后細(xì)節(jié)損失會(huì)比較明顯。踩了幾次坑之后我總結(jié)出一個(gè)行之有效的流程先做“敏感層分析”看模型里哪些層對(duì)量化最敏感然后對(duì)這些層做混合精度敏感層保留FP16其他層用INT8。這樣既能享受量化帶來(lái)的速度收益又能把精度損失壓到最小。“量化一定掉點(diǎn)”在ONNX Runtime和TensorRT這些成熟工具鏈的加持下早就不是鐵律了。5.3 誤區(qū)“推理引擎開箱即用不用調(diào)參”很多新手默認(rèn)推理框架裝上之后模型一灌進(jìn)去就能拿到最優(yōu)性能。真實(shí)情況是NO——不用默認(rèn)配置認(rèn)真做引擎級(jí)別的調(diào)優(yōu)性能差異經(jīng)常是3到5倍。我自己的一個(gè)快速啟動(dòng)建議是第一步先跑一遍官方benchmark腳本拿到一個(gè)基線數(shù)據(jù)第二步花幾個(gè)小時(shí)做模型轉(zhuǎn)換后的算子兼容性檢查把不支持的算子替換掉或者拆成子圖第三步打開引擎自帶的自動(dòng)調(diào)優(yōu)工具比如TensorRT的trtexec自動(dòng)tuning模式第四步針對(duì)熱點(diǎn)算子做手工優(yōu)化。走完這四步你的推理性能大概率已經(jīng)超過(guò)90%的直接灌模型用戶了。6. 協(xié)同優(yōu)化的實(shí)用思路與經(jīng)驗(yàn)總結(jié)6.1 給算法工程師的幾點(diǎn)參考如果你是算法工程師我建議你重視這幾件事第一關(guān)注模型的實(shí)際訪存模式而不只是參數(shù)量第二盡早接觸推理引擎親手試一遍從訓(xùn)練到部署的流程第三學(xué)一點(diǎn)硬件架構(gòu)基礎(chǔ)了解GPU/NPU的內(nèi)存層次、并行度特征。這會(huì)讓你在設(shè)計(jì)模型時(shí)天然帶著“可部署性”的基因而不是等項(xiàng)目上線才被迫補(bǔ)課。我覺(jué)得現(xiàn)在有個(gè)詞叫“AI系統(tǒng)工程師”就是這個(gè)跨界角色的雛形。真正的AI系統(tǒng)工程師不是只會(huì)調(diào)庫(kù)調(diào)參的“調(diào)包俠”而是既能看懂算法結(jié)構(gòu)又能理解硬件特性、能做全局優(yōu)化的人。這種能力的稀缺度隨著AI落地越來(lái)越深會(huì)越來(lái)越高。6.2 給硬件相關(guān)從業(yè)者的幾點(diǎn)參考如果你做的是AI芯片、板卡或者系統(tǒng)集成我也想說(shuō)幾句?,F(xiàn)在的AI應(yīng)用場(chǎng)景細(xì)分得嚇人——自動(dòng)駕駛和智能音箱對(duì)硬件的需求完全不一樣中心云推理和端側(cè)推理的優(yōu)化目標(biāo)也截然相反。別指望一款通用AI芯片適配所有場(chǎng)景做垂直優(yōu)化比做大而全更有機(jī)會(huì)。同時(shí)別忽視軟件的權(quán)重。硬件再好如果配套的工具鏈難用到爆開發(fā)者根本不愿意用。我接觸過(guò)一些國(guó)產(chǎn)NPU硬件指標(biāo)看著不錯(cuò)但SDK文檔殘缺、算子支持不全、調(diào)試工具粗糙結(jié)果就是產(chǎn)品出了但用不起來(lái)。算法與硬件的協(xié)同在工程層面首先就是軟件工具鏈與算法生態(tài)的協(xié)同。6.3 團(tuán)隊(duì)協(xié)作層面可以嘗試這樣調(diào)整最后說(shuō)一點(diǎn)關(guān)于團(tuán)隊(duì)協(xié)作的觀察。過(guò)去算法團(tuán)隊(duì)和系統(tǒng)團(tuán)隊(duì)往往是分開匯報(bào)、分開考核的這種組織結(jié)構(gòu)會(huì)天然制造“協(xié)作壁壘”。一些跑得比較快的公司已經(jīng)開始重組團(tuán)隊(duì)把算法優(yōu)化師、編譯器工程師、推理引擎工程師放進(jìn)一個(gè)項(xiàng)目組統(tǒng)一考核“最終在硬件上的綜合指標(biāo)”而不是各自的局部指標(biāo)。我覺(jué)得這是方向。與其指望“協(xié)同”作為文化口號(hào)自然發(fā)生不如用組織方式給協(xié)同創(chuàng)造條件。當(dāng)算法同學(xué)開始寫推理引擎的優(yōu)化代碼、系統(tǒng)同學(xué)開始討論模型結(jié)構(gòu)的取舍時(shí)“從符號(hào)到物理”的躍遷才真正從一個(gè)概念變成一支團(tuán)隊(duì)的日常狀態(tài)。7. 寫在最后的幾點(diǎn)感受說(shuō)了這么多我最大的感觸是AI這十年最激動(dòng)人心的突破既不是某個(gè)單獨(dú)模型“封神”也不是某塊芯片“登頂”而是這兩條線真正開始在底層交匯。模型在變小變快芯片在變專變強(qiáng)兩邊都在往同一個(gè)物理現(xiàn)實(shí)靠攏。這幾年做項(xiàng)目我越來(lái)越信一個(gè)樸素的道理在真實(shí)世界里好模型不是靠炫技贏的而是靠它跟硬件之間的默契贏的。算法脫離硬件去談精度就像在真空里討論摩擦力方向再對(duì)也使不上勁。只有讓算法理解物理的限制讓硬件理解算法的意圖這條路才能越走越寬。最后分享一個(gè)我在實(shí)際項(xiàng)目中反復(fù)使用的小方法也就是每次選型或優(yōu)化之前先問(wèn)自己三個(gè)問(wèn)題這個(gè)模型最終要跑在什么硬件上硬件預(yù)算算力、內(nèi)存、功耗到底是多少當(dāng)前的模型夠不夠輕、跟硬件夠不夠合拍把這三個(gè)問(wèn)題弄清楚了再去做模型設(shè)計(jì)和硬件選型大概率不會(huì)走偏。方法聽起來(lái)簡(jiǎn)單但能堅(jiān)持每次執(zhí)行的人并不多。與其等踩坑之后再補(bǔ)救不如從源頭就把“協(xié)同”這兩個(gè)字刻進(jìn)流程里。希望這篇文章能給你一些啟發(fā)也歡迎你帶著自己的實(shí)戰(zhàn)經(jīng)驗(yàn)來(lái)交流。