練策略全解析:從預(yù)訓(xùn)練權(quán)重加載到后訓(xùn)練對齊的實操指南)
1. 從近300篇工作調(diào)研里翻出來的WAM訓(xùn)練真相World-Action ModelWAM這兩年被討論得越來越多但真正把訓(xùn)練策略講透的材料少得可憐。我前后花了將近兩個月時間把近300篇相關(guān)方向的工作調(diào)研翻了一遍從預(yù)訓(xùn)練語言模型的通用范式到DEIM的COCO預(yù)訓(xùn)練權(quán)重加載方式再到RoBERTa中文預(yù)訓(xùn)練模型的適配經(jīng)驗最后落到WAM這類世界模型動作模型聯(lián)合架構(gòu)的訓(xùn)練策略上。翻完之后最大的感受是大部分工作把精力花在架構(gòu)圖上真正決定成敗的訓(xùn)練策略反而一筆帶過。這篇內(nèi)容就是把這近300篇調(diào)研里關(guān)于WAM訓(xùn)練策略的部分抽出來講清楚三件事數(shù)據(jù)怎么組織、預(yù)訓(xùn)練階段到底在預(yù)訓(xùn)練什么、后訓(xùn)練階段又該怎么調(diào)。適合已經(jīng)了解Transformer基礎(chǔ)、正在做具身智能或世界模型方向、需要落地訓(xùn)練策略的從業(yè)者。如果你只是想知道WAM是什么那這篇可能偏深但如果你正準備訓(xùn)一個自己的WAM或者正在為預(yù)訓(xùn)練權(quán)重加載、后訓(xùn)練對齊發(fā)愁那接下來的內(nèi)容應(yīng)該能幫你少走不少彎路。先說一個反直覺的結(jié)論在WAM的訓(xùn)練里預(yù)訓(xùn)練階段的數(shù)據(jù)質(zhì)量遠比數(shù)據(jù)規(guī)模重要而后訓(xùn)練階段的數(shù)據(jù)多樣性又比數(shù)據(jù)質(zhì)量更關(guān)鍵。這個結(jié)論和純語言模型的經(jīng)驗是反過來的原因后面會展開。我先把整個訓(xùn)練策略拆成數(shù)據(jù)、預(yù)訓(xùn)練、后訓(xùn)練三塊逐塊講。2. WAM訓(xùn)練數(shù)據(jù)的組織邏輯為什么視頻動作的對齊比想象中難2.1 WAM的數(shù)據(jù)到底由什么構(gòu)成WAM的核心是同時建模世界怎么變和動作怎么影響世界所以它的訓(xùn)練數(shù)據(jù)天然是雙模態(tài)的一路是觀測序列圖像、視頻、點云等一路是動作序列關(guān)節(jié)角、末端位姿、離散動作token等。近300篇調(diào)研里數(shù)據(jù)組織方式大致分成三類。第一類是同步對齊數(shù)據(jù)觀測和動作在時間戳上嚴格對齊比如遙操作采集的機械臂數(shù)據(jù)每一幀圖像都對應(yīng)一個動作指令。這類數(shù)據(jù)質(zhì)量最高但采集成本也最高通常只有幾千到幾萬條軌跡。第二類是異步弱對齊數(shù)據(jù)觀測和動作來自不同來源通過時間窗口做粗對齊。比如用大量無動作標注的視頻做世界模型預(yù)訓(xùn)練再用少量有動作標注的數(shù)據(jù)做動作分支訓(xùn)練。這類數(shù)據(jù)規(guī)模可以到百萬級但對齊噪聲大。第三類是合成數(shù)據(jù)用仿真環(huán)境批量生成動作和觀測天然對齊但存在sim-to-real gap。調(diào)研里超過六成的工作會混合使用這三類數(shù)據(jù)純用某一類的很少。提示如果你剛開始做WAM不要一上來就追求百萬級數(shù)據(jù)。先用幾千條高質(zhì)量同步對齊數(shù)據(jù)把pipeline跑通再考慮擴數(shù)據(jù)。2.2 時間對齊的坑幀率和動作頻率不匹配這是我在調(diào)研里看到被反復(fù)提及、但很多新手會忽略的問題。視覺觀測通常是30fps或更低而動作控制頻率可能是100Hz甚至更高。如果直接把兩者按幀索引對齊動作分支會學到錯誤的時序關(guān)系。常見的處理方式有兩種。一種是動作降采樣把高頻動作按觀測幀率做聚合比如每3-4個動作取一個代表值或做平均。另一種是觀測上采樣用插值生成中間幀但這會引入偽影。調(diào)研里更推薦前者因為動作降采樣雖然損失了高頻細節(jié)但至少不會污染觀測。具體操作上我建議在數(shù)據(jù)加載階段就做好重采樣而不是在模型里做。用一個獨立的數(shù)據(jù)預(yù)處理腳本把動作序列按觀測時間戳做最近鄰或線性插值對齊輸出統(tǒng)一的時間軸。這樣模型側(cè)拿到的就是干凈對齊的數(shù)據(jù)調(diào)試起來也方便。2.3 動作表示的選型連續(xù)vs離散WAM里動作怎么表示直接決定了后訓(xùn)練階段能不能用語言模型那套范式。連續(xù)動作如關(guān)節(jié)角、末端位姿保留精度但和語言模型的token范式不兼容離散動作把動作空間分桶或聚類成token可以直接復(fù)用自回歸訓(xùn)練但會損失精度。調(diào)研里的主流做法是混合表示底層用連續(xù)動作做精細控制上層用離散動作token做規(guī)劃。預(yù)訓(xùn)練階段用離散token因為可以復(fù)用預(yù)訓(xùn)練語言模型的權(quán)重和訓(xùn)練范式后訓(xùn)練階段再引入連續(xù)動作頭做微調(diào)。這個思路和DEIM在COCO預(yù)訓(xùn)練權(quán)重上的做法類似——先用大規(guī)模通用數(shù)據(jù)預(yù)訓(xùn)練再用目標任務(wù)數(shù)據(jù)微調(diào)。3. 預(yù)訓(xùn)練階段WAM到底在預(yù)訓(xùn)練什么3.1 預(yù)訓(xùn)練目標的三個層次WAM的預(yù)訓(xùn)練不是單一目標而是三個層次疊加。第一層是觀測重建讓模型學會壓縮和重建視覺輸入類似MAE或VQ-VAE的做法。第二層是動作預(yù)測給定當前觀測和動作預(yù)測下一時刻觀測這是世界模型的核心。第三層是動作生成給定目標觀測生成達成目標的動作序列這是動作模型的核心。近300篇調(diào)研里大部分工作會先單獨預(yù)訓(xùn)練世界模型前兩層再聯(lián)合訓(xùn)練動作模型第三層。也有工作嘗試端到端聯(lián)合預(yù)訓(xùn)練但收斂更慢對數(shù)據(jù)量要求更高。我的建議是分階段做先把世界模型預(yù)訓(xùn)練穩(wěn)再接入動作分支。3.2 預(yù)訓(xùn)練權(quán)重從哪來復(fù)用還是從頭訓(xùn)這是被問得最多的問題。調(diào)研里的答案很明確能復(fù)用就復(fù)用但要注意模態(tài)對齊。視覺編碼器可以直接用ResNet預(yù)訓(xùn)練模型或ViT預(yù)訓(xùn)練權(quán)重這部分遷移性最好。語言/動作分支可以復(fù)用RoBERTa中文預(yù)訓(xùn)練模型或類似的語言模型權(quán)重但需要做動作token的embedding擴展。具體操作上視覺編碼器加載ResNet預(yù)訓(xùn)練模型權(quán)重后通常只需要凍結(jié)前幾層后面幾層跟著WAM一起微調(diào)。動作分支如果復(fù)用語言模型需要把動作token加進詞表新增的embedding用隨機初始化或均值初始化然后整個分支一起微調(diào)。注意不要直接加載DEIM的COCO預(yù)訓(xùn)練權(quán)重到WAM的視覺分支。DEIM是檢測模型它的權(quán)重里包含大量檢測頭參數(shù)和WAM需要的視覺表征不完全兼容??梢约虞d它的backbone部分檢測頭直接丟掉。3.3 預(yù)訓(xùn)練數(shù)據(jù)配比的經(jīng)驗值調(diào)研里給出了一些可參考的配比。視覺預(yù)訓(xùn)練數(shù)據(jù)無動作標注的視頻和動作標注數(shù)據(jù)的比例常見的是10:1到5:1。也就是說如果你有1萬條動作標注軌跡可以配5-10萬條無標注視頻做世界模型預(yù)訓(xùn)練。但這個比例不是固定的。如果動作標注數(shù)據(jù)質(zhì)量很高可以適當降低無標注數(shù)據(jù)的比例如果動作數(shù)據(jù)噪聲大反而需要更多無標注數(shù)據(jù)來穩(wěn)定世界模型的表征。我自己的經(jīng)驗是先用5:1跑一版看世界模型的預(yù)測損失和動作分支的成功率再調(diào)整。3.4 預(yù)訓(xùn)練階段的常見失敗模式調(diào)研里提到的失敗模式主要有三種。第一種是表征坍縮世界模型把所有觀測都編碼成相似的表征預(yù)測損失降不下去。這通常是因為重建目標太簡單或數(shù)據(jù)多樣性不足。解法是增加重建難度如mask比例提高或增加數(shù)據(jù)多樣性。第二種是動作分支不收斂動作預(yù)測損失震蕩。這通常是因為動作表示和觀測表示沒有對齊或者動作token的embedding初始化太差。解法是先用少量數(shù)據(jù)做動作分支的warmup再聯(lián)合訓(xùn)練。第三種是過擬合到預(yù)訓(xùn)練數(shù)據(jù)后訓(xùn)練階段微調(diào)不動。這通常是因為預(yù)訓(xùn)練數(shù)據(jù)太少或預(yù)訓(xùn)練輪次太多。解法是早?;蛟黾宇A(yù)訓(xùn)練數(shù)據(jù)。4. 后訓(xùn)練階段從能預(yù)測到能干活的關(guān)鍵一躍4.1 后訓(xùn)練的目標對齊任務(wù)和動作預(yù)訓(xùn)練讓WAM學會了世界怎么變、動作怎么影響世界但預(yù)訓(xùn)練的目標是通用預(yù)測不是特定任務(wù)的成功率。后訓(xùn)練階段的核心目標是把模型的預(yù)測能力對齊到具體任務(wù)上讓它在目標任務(wù)上的動作成功率最大化。調(diào)研里的后訓(xùn)練策略大致分三類。第一類是監(jiān)督微調(diào)用目標任務(wù)的成功軌跡做監(jiān)督學習直接優(yōu)化動作預(yù)測損失。第二類是強化學習微調(diào)用任務(wù)獎勵信號做策略優(yōu)化適合有明確獎勵函數(shù)的任務(wù)。第三類是偏好對齊用成功/失敗軌跡對做對比學習讓模型偏向成功動作。三類策略里監(jiān)督微調(diào)最穩(wěn)但上限低強化學習上限高但難調(diào)偏好對齊介于兩者之間。調(diào)研里超過一半的工作會先用監(jiān)督微調(diào)做warmup再用強化學習或偏好對齊做精調(diào)。4.2 監(jiān)督微調(diào)的實操細節(jié)監(jiān)督微調(diào)看起來簡單但有幾個細節(jié)決定成敗。第一個是學習率后訓(xùn)練的學習率通常要比預(yù)訓(xùn)練低一個數(shù)量級否則會破壞預(yù)訓(xùn)練學到的表征。第二個是凍結(jié)策略視覺編碼器通常凍結(jié)或只微調(diào)最后幾層動作分支全量微調(diào)。第三個是數(shù)據(jù)采樣成功軌跡和失敗軌跡的采樣比例要控制通常成功軌跡占70%以上。我自己的做法是先凍結(jié)視覺編碼器只訓(xùn)動作分支跑幾個epoch看成功率如果成功率上不去再解凍視覺編碼器的最后幾層一起訓(xùn)。這樣分階段解凍比一上來全量微調(diào)更穩(wěn)。4.3 強化學習微調(diào)的獎勵設(shè)計如果任務(wù)有明確的成功/失敗信號強化學習微調(diào)是值得嘗試的。但WAM的強化學習微調(diào)和傳統(tǒng)RL不一樣它的動作空間通常是連續(xù)的而且有世界模型做預(yù)測可以用模型預(yù)測做rollout減少真實環(huán)境交互。獎勵設(shè)計上調(diào)研里常見的是稀疏獎勵稠密輔助獎勵。稀疏獎勵就是任務(wù)成功給1失敗給0稠密輔助獎勵包括動作平滑度、接近目標的距離等。稀疏獎勵保證目標對齊稠密獎勵加速收斂。提示強化學習微調(diào)容易把預(yù)訓(xùn)練學到的世界模型帶偏建議在微調(diào)時加一個世界模型預(yù)測損失的輔助項約束模型不要偏離預(yù)訓(xùn)練太遠。4.4 后訓(xùn)練階段的數(shù)據(jù)效率后訓(xùn)練階段的數(shù)據(jù)通常比預(yù)訓(xùn)練少得多所以數(shù)據(jù)效率很關(guān)鍵。調(diào)研里提到的技巧包括數(shù)據(jù)增強對觀測做隨機裁剪、顏色抖動對動作加小噪聲、課程學習先易后難安排任務(wù)、經(jīng)驗回放把歷史成功軌跡存下來重復(fù)用。數(shù)據(jù)增強要注意不要破壞動作和觀測的對齊關(guān)系。比如對觀測做隨機裁剪后動作對應(yīng)的空間位置也變了需要同步調(diào)整。課程學習要設(shè)計好難度梯度太陡會學不動太緩會浪費時間。5. 預(yù)訓(xùn)練和后訓(xùn)練的銜接那些調(diào)研里沒明說但很重要的細節(jié)5.1 預(yù)訓(xùn)練權(quán)重的加載方式預(yù)訓(xùn)練和后訓(xùn)練的銜接第一個坑就是權(quán)重加載。WAM的預(yù)訓(xùn)練權(quán)重通常包含視覺編碼器、世界模型、動作分支三部分。后訓(xùn)練時視覺編碼器和世界模型可以加載預(yù)訓(xùn)練權(quán)重動作分支如果任務(wù)動作空間變了需要重新初始化。加載方式上調(diào)研里推薦部分加載部分初始化。視覺編碼器和世界模型全量加載動作分支如果動作空間一致就加載不一致就重新初始化。重新初始化的部分用預(yù)訓(xùn)練動作分支的統(tǒng)計量做初始化比純隨機初始化收斂快。5.2 學習率調(diào)度和warmup預(yù)訓(xùn)練和后訓(xùn)練的學習率調(diào)度通常不一樣。預(yù)訓(xùn)練用cosine衰減或linear衰減warmup步數(shù)占總步數(shù)的5%-10%。后訓(xùn)練用更小的學習率warmup步數(shù)更短通常幾百步就夠。調(diào)研里有個細節(jié)值得注意后訓(xùn)練的學習率不要一上來就設(shè)很小否則動作分支學不動。可以先設(shè)一個中等學習率跑幾百步warmup再降到目標學習率。這個warmup階段可以讓動作分支快速適應(yīng)新任務(wù)同時不破壞預(yù)訓(xùn)練表征。5.3 評估指標的選擇預(yù)訓(xùn)練階段的評估指標通常是預(yù)測損失MSE、交叉熵等但后訓(xùn)練階段要看任務(wù)成功率。調(diào)研里推薦的評估方式是離線評估在線評估結(jié)合。離線評估用留出的測試軌跡算預(yù)測損失和動作誤差在線評估在真實或仿真環(huán)境跑任務(wù)算成功率。離線評估快但和任務(wù)成功率不完全相關(guān)在線評估準但慢。我的做法是先用離線評估篩模型再用在線評估做最終選擇。離線評估里動作誤差比預(yù)測損失更能反映任務(wù)表現(xiàn)。5.4 常見銜接問題的排查預(yù)訓(xùn)練和后訓(xùn)練銜接時常見的問題有三個。第一個是后訓(xùn)練損失不降通常是學習率太大或動作分支初始化太差。第二個是后訓(xùn)練損失降但成功率不漲通常是評估指標和任務(wù)目標不一致或者動作表示和任務(wù)不匹配。第三個是后訓(xùn)練后預(yù)訓(xùn)練能力退化通常是微調(diào)太狠需要加預(yù)訓(xùn)練損失約束或降低學習率。排查時建議先看損失曲線再看動作誤差最后看成功率。損失曲線正常但成功率不漲問題多半在評估或動作表示損失曲線異常問題多半在學習率或初始化。6. 從調(diào)研里提煉的幾條實操心得6.1 數(shù)據(jù)質(zhì)量比數(shù)據(jù)規(guī)模重要但后訓(xùn)練反過來這是我在近300篇調(diào)研里看到最一致的一條經(jīng)驗。預(yù)訓(xùn)練階段數(shù)據(jù)質(zhì)量決定世界模型的上限規(guī)模只是加速收斂。后訓(xùn)練階段數(shù)據(jù)多樣性決定動作分支的泛化質(zhì)量只要及格就行。所以預(yù)訓(xùn)練階段要精挑數(shù)據(jù)后訓(xùn)練階段要廣撒網(wǎng)。6.2 預(yù)訓(xùn)練權(quán)重能復(fù)用就復(fù)用但要注意模態(tài)對齊視覺編碼器復(fù)用ResNet預(yù)訓(xùn)練模型或ViT權(quán)重語言/動作分支復(fù)用RoBERTa中文預(yù)訓(xùn)練模型或類似權(quán)重都能顯著加速收斂。但復(fù)用時要檢查模態(tài)對齊視覺和動作的embedding維度、token空間要對得上否則加載了也是白加載。6.3 后訓(xùn)練的學習率要比預(yù)訓(xùn)練低一個數(shù)量級這條看起來簡單但很多新手會忽略。后訓(xùn)練的學習率如果和預(yù)訓(xùn)練一樣會把預(yù)訓(xùn)練學到的表征沖掉模型退化成隨機初始化。我自己的經(jīng)驗是后訓(xùn)練學習率設(shè)成預(yù)訓(xùn)練的1/10到1/5具體看任務(wù)和數(shù)據(jù)量。6.4 分階段解凍比全量微調(diào)更穩(wěn)后訓(xùn)練時不要一上來就全量微調(diào)。先凍結(jié)視覺編碼器只訓(xùn)動作分支動作分支收斂后再解凍視覺編碼器最后幾層一起訓(xùn)。這樣分階段解凍既保護了預(yù)訓(xùn)練表征又讓動作分支有足夠的學習空間。6.5 評估要離線在線結(jié)合動作誤差比預(yù)測損失更相關(guān)離線評估用預(yù)測損失篩模型在線評估用成功率選模型。離線評估里動作誤差比預(yù)測損失更能反映任務(wù)表現(xiàn)因為預(yù)測損失衡量的是世界模型動作誤差衡量的是動作分支。兩個指標都要看但動作誤差權(quán)重更高。6.6 強化學習微調(diào)要加預(yù)訓(xùn)練約束如果用強化學習做后訓(xùn)練建議加一個世界模型預(yù)測損失的輔助項約束模型不要偏離預(yù)訓(xùn)練太遠。這個輔助項的權(quán)重不用太大通常設(shè)成主損失的0.1-0.5就行。加了之后強化學習微調(diào)的穩(wěn)定性會明顯提升。7. 一個可復(fù)現(xiàn)的WAM訓(xùn)練流程參考把上面的內(nèi)容串起來給一個可復(fù)現(xiàn)的流程參考。第一步數(shù)據(jù)準備收集同步對齊的遙操作數(shù)據(jù)幾千條無動作標注視頻幾萬條做時間對齊和動作重采樣。第二步預(yù)訓(xùn)練視覺編碼器加載ResNet預(yù)訓(xùn)練模型權(quán)重動作分支加載RoBERTa中文預(yù)訓(xùn)練模型權(quán)重并擴展動作token用5:1的數(shù)據(jù)配比做世界模型和動作分支的聯(lián)合預(yù)訓(xùn)練。第三步后訓(xùn)練凍結(jié)視覺編碼器用目標任務(wù)成功軌跡做監(jiān)督微調(diào)學習率設(shè)成預(yù)訓(xùn)練的1/10跑幾個epoch看成功率。第四步精調(diào)如果監(jiān)督微調(diào)成功率不夠解凍視覺編碼器最后幾層用強化學習或偏好對齊做精調(diào)加預(yù)訓(xùn)練損失約束。第五步評估離線看動作誤差在線看任務(wù)成功率兩個指標都達標后定版。這個流程不是唯一的但覆蓋了調(diào)研里大部分工作的核心步驟。實際做的時候每一步的參數(shù)都要根據(jù)任務(wù)和數(shù)據(jù)調(diào)整不要照搬。我在實際操作中的體會是預(yù)訓(xùn)練階段多花時間把世界模型訓(xùn)穩(wěn)后訓(xùn)練階段會省很多事反過來預(yù)訓(xùn)練偷懶后訓(xùn)練怎么調(diào)都別扭。