絡(luò)深度拆解:機(jī)器人操作模型的架構(gòu)選型與調(diào)優(yōu))
做機(jī)器人操作模型的團(tuán)隊(duì)這兩年大概都繞不開同一個(gè)詞VLA也就是 Vision-Language-Action Model。我自己的項(xiàng)目 nextVLA 也在這個(gè)賽道上折騰了大半年從最初的調(diào)研、拆解公開方案到確定自己的骨干網(wǎng)絡(luò)中間踩了不少坑。這個(gè)系列我打算開一篇架構(gòu)設(shè)計(jì)的博文第一篇就先聚焦在最核心的部分——VLA 骨干的拆解與選型。這篇內(nèi)容適合兩類人看一類是剛?cè)腴T、想搞清楚 VLA 內(nèi)部到底怎么工作的同學(xué)另一類是已經(jīng)在做機(jī)器人學(xué)習(xí)、正糾結(jié)怎么設(shè)計(jì)自己的骨干網(wǎng)絡(luò)的工程師。我會(huì)把 nextVLA 在架構(gòu)層面的取舍、具體實(shí)現(xiàn)和踩坑經(jīng)驗(yàn)全部展開來講不會(huì)只停留在概念層面。VLA 這個(gè)概念本身不算復(fù)雜把視覺、語言、動(dòng)作三部分塞進(jìn)一個(gè)大模型里輸入是圖像和指令輸出是動(dòng)作。但復(fù)雜全藏在骨干網(wǎng)絡(luò)的設(shè)計(jì)里。視覺信息怎么編碼語言指令怎么和視覺特征對(duì)齊動(dòng)作又該怎么從模型里吐出來每一步都是選擇題。而我做 nextVLA 的第一原則是不要為了追新而追新每一個(gè)設(shè)計(jì)都要能在實(shí)驗(yàn)里說清楚收益。這篇文章就是圍繞這個(gè)原則展開的。1. VLA骨干到底在拆什么先看清整體架構(gòu)很多剛接觸 VLA 的人會(huì)把它想象成一個(gè)黑盒輸圖進(jìn)指令咔嚓一下出來動(dòng)作。但真到自己搭建的時(shí)候才發(fā)現(xiàn)這個(gè)黑盒的內(nèi)部結(jié)構(gòu)決定了一切。先放下具體模塊我們從整體上把 VLA 骨干拆成三段看。1.1 從三段式機(jī)器人系統(tǒng)到端到端 VLA 的演變傳統(tǒng)機(jī)器人操作系統(tǒng)是典型的感知-規(guī)劃-控制三段式感知模塊輸出物體位姿規(guī)劃模塊算軌跡控制模塊做跟蹤。這套架構(gòu)最大的問題是每一段都要單獨(dú)設(shè)計(jì)和調(diào)參而且感知誤差會(huì)一級(jí)一級(jí)傳下去到控制層已經(jīng)被放得很大。VLA 的思路是把這三段壓縮成一個(gè)模型。模型的輸入是相機(jī)圖像和自然語言指令輸出直接是動(dòng)作序列。這樣做的好處很明顯中間沒有顯式的狀態(tài)估計(jì)模塊模型通過海量數(shù)據(jù)自己學(xué)到什么樣的視覺特征組合對(duì)應(yīng)什么樣的動(dòng)作。但壓縮不等于消失。我拆 nextVLA 的時(shí)候還是會(huì)把骨干分成三塊來審視視覺編碼器負(fù)責(zé)把圖像變成特征LLM 主干負(fù)責(zé)做多模態(tài)推理動(dòng)作頭負(fù)責(zé)把推理結(jié)果變成可執(zhí)行的動(dòng)作。分塊審視不是要回到三段式而是為了在調(diào)試的時(shí)候能定位問題——比如模型能聽懂指令但動(dòng)作亂大概率問題出在動(dòng)作頭而不是 LLM 主干。1.2 兩條技術(shù)路線自回歸動(dòng)作token與連續(xù)動(dòng)作回歸現(xiàn)在公開的 VLA 骨干基本可以歸成兩條路線。第一條是自回歸的路線。代表工作是像 RT-2 那一派把動(dòng)作也變成離散 token讓模型像生成文本一樣逐個(gè)生成動(dòng)作 token。這個(gè)路線的好處是訓(xùn)練非常穩(wěn)定因?yàn)檎w就是一個(gè)標(biāo)準(zhǔn)的 causal LM 訓(xùn)練框架loss 就是下一個(gè) token 預(yù)測的交叉熵。但缺點(diǎn)也很明顯動(dòng)作是連續(xù)量離散化之后精度受限尤其在做精細(xì)插孔、裝配這類任務(wù)時(shí)256 個(gè) bin 的粗糙程度會(huì)直接反映在成功率上。第二條是連續(xù)動(dòng)作回歸。模型在 LLM 的 backbone 之上接一個(gè)回歸頭直接輸出連續(xù)的動(dòng)作值或者動(dòng)作 chunk。OpenVLA 早期走的是動(dòng)作 token 化但后來很多工作都在往連續(xù)回歸轉(zhuǎn)。再往后業(yè)界把 diffusion policy 和 flow matching 引入動(dòng)作頭動(dòng)作輸出從直接回歸一個(gè)點(diǎn)變成了回歸一個(gè)動(dòng)作分布采樣。我在 nextVLA 里最終選擇了連續(xù)動(dòng)作路線動(dòng)作頭用流匹配來做這個(gè)后面詳細(xì)展開。1.3 nextVLA 架構(gòu)層面最初的取舍項(xiàng)目剛起步時(shí)我做了一張表來對(duì)比不同骨干方案的組合核心考量是三個(gè)維度訓(xùn)練穩(wěn)定性、動(dòng)作精度、推理速度。方案組合訓(xùn)練穩(wěn)定性動(dòng)作精度推理速度適合場景全自回歸 token 化動(dòng)作高中低慢通用 VLA 研究粗糙操作自回歸語義 連續(xù)動(dòng)作頭中高中高中大多數(shù)桌面操作任務(wù)自回歸語義 流匹配動(dòng)作專家中高高中nextVLA 的選擇精細(xì)操作最終選的是第三種組合視覺編碼器 LLM 主干負(fù)責(zé)語義理解與任務(wù)推理動(dòng)作部分單獨(dú)用一個(gè)流匹配專家模塊而不是讓 LLM 一個(gè)詞一個(gè)詞地?cái)D動(dòng)作。這樣設(shè)計(jì)的主要原因后面會(huì)講簡單說是為了在動(dòng)作精度和訓(xùn)練穩(wěn)定性之間找到平衡。2. 骨干每一段都是關(guān)鍵視覺編碼器、LLM主干與動(dòng)作頭整體框架定下來之后接下來就是逐段拆解。這三段里每一段單獨(dú)拎出來都有很多可以展開的設(shè)計(jì)細(xì)節(jié)而它們之間的接口設(shè)計(jì)往往比模塊本身更容易翻車。2.1 視覺編碼器怎么選從能看懂到看得準(zhǔn)VLA 的視覺編碼器承擔(dān)的任務(wù)比純 VLM 更重。VLM 只需要理解圖像內(nèi)容然后生成文本描述而 VLA 需要從圖像里提取出與動(dòng)作強(qiáng)相關(guān)的空間信息——物體在哪里、朝向如何、抓手離目標(biāo)還有多遠(yuǎn)。這就要求視覺特征保留足夠的空間分辨率。我第一次做 nextVLA 原型時(shí)直接用了一個(gè)現(xiàn)成的 CLIP 視覺塔特征直接送進(jìn) LLM。結(jié)果在仿真任務(wù)里效果還行但換到真實(shí)世界就露餡了模型經(jīng)常認(rèn)得出物體是什么卻抓不準(zhǔn)物體在哪。問題就出在 CLIP 的特征更偏向語義空間定位信息不夠細(xì)致。后來我改成 SigLIP 這類視覺編碼器并且加了中間層的特征融合情況才好轉(zhuǎn)?,F(xiàn)在很多公開 VLA 工作也都在用 SigLIP 作為默認(rèn)視覺塔不是沒有原因的。另外還有一個(gè)關(guān)鍵選擇視覺編碼器要不要凍結(jié)。如果項(xiàng)目數(shù)據(jù)量不大我建議微調(diào)但要用小學(xué)習(xí)率。數(shù)據(jù)集夠大的話視覺塔微調(diào)帶來的收益會(huì)很明顯尤其當(dāng)你的任務(wù)分布和預(yù)訓(xùn)練數(shù)據(jù)差異較大時(shí)。我實(shí)測下來在單個(gè)任務(wù)上微調(diào)視覺塔能帶來 5-10 個(gè)百分點(diǎn)的成功率提升。2.2 LLM 主干尺寸、上下文與指令注入方式LLM 主干是整個(gè) VLA 的大腦。它要同時(shí)干兩件事理解語言指令結(jié)合視覺特征做任務(wù)推理。骨干選多大直接決定顯存占用和訓(xùn)練成本。nextVLA 目前用的是 7B 級(jí)別的視覺語言模型作為主干。這個(gè)體量是我反復(fù)權(quán)衡后的結(jié)果再小一些比如 1-3B推理能力和指令跟隨能力明顯下降復(fù)雜指令經(jīng)常執(zhí)行錯(cuò)再大一些比如 13B、34B性能提升是有的但訓(xùn)練和推理成本飆升對(duì)機(jī)器人側(cè)的實(shí)時(shí)性不友好。7B 在目前來看是性價(jià)比最高的區(qū)間。指令注入方式也值得注意。最常見的做法是把指令文本和圖像 token 拼成一個(gè)序列送進(jìn) LLM。這里有個(gè)隱含問題圖像 token 數(shù)量越多指令文本在注意力中的相對(duì)權(quán)重就越低。所以早期我試過在指令后面重復(fù)指令文本、或者加特殊的指令 token來強(qiáng)化指令的引導(dǎo)作用。這些 trick 單個(gè)看提升不大但疊加起來對(duì)長程任務(wù)的穩(wěn)定性有幫助。2.3 動(dòng)作頭從分類到回歸再到流匹配動(dòng)作頭是我在 nextVLA 里改動(dòng)最多的部分。動(dòng)作頭解決的根本問題是如何把 LLM 最后一層的隱藏狀態(tài)映射成機(jī)器人能夠執(zhí)行的關(guān)節(jié)位置或末端位姿。最早我嘗試了離散動(dòng)作 token原因很直接和 LLM 的預(yù)訓(xùn)練目標(biāo)對(duì)齊訓(xùn)練穩(wěn)定。但我立刻碰到了精度天花板。在仿真里做抓取這類大動(dòng)作沒問題換到插孔這類需要毫米級(jí)精度的任務(wù)就崩了。離散化本質(zhì)上是給動(dòng)作加了噪聲且這個(gè)噪聲不可控。后來我切換到連續(xù)回歸輸出動(dòng)作 chunk也就是一次性預(yù)測未來幾十步的動(dòng)作軌跡。相比自回歸一個(gè) token 一個(gè) token 地?cái)D動(dòng)作 chunk 有兩個(gè)好處一是避免了誤差累積二是給底層控制器更長的前瞻窗口。但連續(xù)回歸也有自己的毛病多峰問題。同樣的場景下機(jī)器人的最優(yōu)動(dòng)作可能有多種直接回歸一個(gè)均值會(huì)把多峰分布平滑掉了動(dòng)作看起來猶豫且抖動(dòng)。最后的解決方案是流匹配動(dòng)作專家。流匹配的思路很簡潔不直接回歸動(dòng)作點(diǎn)而是學(xué)習(xí)從噪聲分布到動(dòng)作分布的映射推理時(shí)從噪聲采樣并在幾步內(nèi)去噪得到動(dòng)作。這個(gè)方案在動(dòng)作多樣性和穩(wěn)定性之間取得了很好的平衡。我測試下來在精細(xì)操作任務(wù)上對(duì)比連續(xù)回歸成功率有明顯提升。3. 數(shù)據(jù)與訓(xùn)練nextVLA 的骨干如何真正跑起來架構(gòu)設(shè)計(jì)得再好訓(xùn)練跑不起來或者效果不穩(wěn)都是白搭。VLA 和普通語言模型最大的不同在于訓(xùn)練數(shù)據(jù)的組織方式——你需要同時(shí)管理圖像、語言、動(dòng)作三條流且三條流在時(shí)序上要嚴(yán)格對(duì)齊。3.1 訓(xùn)練數(shù)據(jù)從哪來真實(shí)數(shù)據(jù)、仿真數(shù)據(jù)和開源數(shù)據(jù)nextVLA 的訓(xùn)練數(shù)據(jù)來自三個(gè)渠道各自承擔(dān)不同角色。第一個(gè)渠道是真實(shí)遙操作數(shù)據(jù)。這是最重要的數(shù)據(jù)來源。我們用主從遙操作設(shè)備采集真實(shí)操作數(shù)據(jù)包含多種工具、多種物體、多種桌面布局。真實(shí)數(shù)據(jù)的優(yōu)勢(shì)是域內(nèi)分布準(zhǔn)確模型學(xué)到的策略直接可用缺點(diǎn)是采集成本高一個(gè)熟練的操作員一天能采集的有效軌跡也就幾百條。第二個(gè)渠道是仿真數(shù)據(jù)。仿真用來做規(guī)?;瘮U(kuò)充我用仿真環(huán)境批量生成任務(wù)場景自動(dòng)標(biāo)注成功/失敗再導(dǎo)出軌跡。仿真的優(yōu)勢(shì)是便宜和量大但存在 sim-to-real gap。我的經(jīng)驗(yàn)是仿真數(shù)據(jù)占比不要超過 30%否則模型會(huì)學(xué)到很多仿真特有的視覺假象。第三個(gè)渠道是開源數(shù)據(jù)集。像 Open X-Embodiment 這類跨機(jī)構(gòu)數(shù)據(jù)集可以直接拿來做預(yù)訓(xùn)練。開源數(shù)據(jù)的好處是覆蓋面廣能提升模型的泛化能力缺點(diǎn)是數(shù)據(jù)質(zhì)量參差不齊、動(dòng)作空間不一致。我通常只拿它做骨干的冷啟動(dòng)預(yù)訓(xùn)練然后用自采數(shù)據(jù)微調(diào)。3.2 訓(xùn)練階段設(shè)計(jì)先對(duì)齊、再預(yù)訓(xùn)練、最后微調(diào)VLA 的訓(xùn)練不是一次到位而是分階段進(jìn)行。我在 nextVLA 里分了三步走。第一步多模態(tài)對(duì)齊預(yù)訓(xùn)練。用大規(guī)模圖文數(shù)據(jù)和開源機(jī)器人數(shù)據(jù)把視覺編碼器、LLM 主干和動(dòng)作頭初步對(duì)齊。這一階段的目的是讓模型先學(xué)會(huì)看圖說話建立起視覺與語言之間的基本映射。第二步動(dòng)作預(yù)訓(xùn)練。結(jié)合動(dòng)作數(shù)據(jù)讓模型學(xué)會(huì)從指令和圖像預(yù)測動(dòng)作。這一階段重點(diǎn)是讓 LLM 主干去適應(yīng)動(dòng)作任務(wù)本身。和純文本預(yù)訓(xùn)練不同VLA 的動(dòng)作目標(biāo)函數(shù)和文本目標(biāo)函數(shù)存在沖突因此要在 loss 上做權(quán)重平衡。我的經(jīng)驗(yàn)是動(dòng)作 loss 權(quán)重需要從 0.1 開始緩慢爬坡快速拉高會(huì)導(dǎo)致語言能力退化。第三步策略微調(diào)。用目標(biāo)任務(wù)域的精細(xì)數(shù)據(jù)做微調(diào)把模型收斂到具體任務(wù)上。這一步學(xué)習(xí)率要比預(yù)訓(xùn)練低一個(gè)數(shù)量級(jí)而且要加入早停策略防止過擬合。實(shí)測下來分階段訓(xùn)練比直接端到端混合訓(xùn)練收斂速度快了將近一倍最終效果也更穩(wěn)定。3.3 顯存、吞吐與訓(xùn)練穩(wěn)定性VLA 骨干訓(xùn)練最現(xiàn)實(shí)的痛點(diǎn)是顯存。7B 模型微調(diào)加上視覺分支和動(dòng)作分支單卡很容易 OOM。我的做法是三個(gè)并行策略gradient checkpointing、LoRA 微調(diào)、混合精度訓(xùn)練。Gradient checkpointing 用計(jì)算換顯存是默認(rèn)開啟的。LoRA 微調(diào)只更新低秩適配器能省掉大量優(yōu)化器狀態(tài)。實(shí)測下來4 張 80G 的卡可以比較流暢地跑 7B 骨干加流匹配動(dòng)作頭的訓(xùn)練。吞吐量方面一個(gè)經(jīng)常被忽視的瓶頸是圖像預(yù)處理的 CPU 瓶頸。圖像解碼、resize、normalize 如果放在主進(jìn)程里做GPU 會(huì)一直等著吃數(shù)據(jù)。我后來把數(shù)據(jù)管線改成異步預(yù)取并把圖像預(yù)處理放到獨(dú)立的進(jìn)程池里吞吐提升了將近 60%。訓(xùn)練穩(wěn)定性還有一個(gè)隱性殺手?jǐn)?shù)據(jù)時(shí)序錯(cuò)位。圖像、指令、動(dòng)作在時(shí)間戳上差一幀loss 可能沒什么明顯變化但策略效果會(huì)稀碎。我在 pipeline 里加了對(duì)齊校驗(yàn)訓(xùn)練前會(huì)檢查每條軌跡的圖像時(shí)間戳和動(dòng)作時(shí)間戳是否嚴(yán)格單調(diào)對(duì)齊這個(gè)問題排查起來極其痛苦建議從一開始就做好。4. 評(píng)測與迭代從 LIBERO 基準(zhǔn)到真實(shí)任務(wù)的驗(yàn)證閉環(huán)架構(gòu)建好、訓(xùn)練跑通之后緊接著的問題就是怎么知道骨干行不行我在 nextVLA 里建立了一個(gè)兩級(jí)評(píng)測體系先在輕量級(jí)仿真基準(zhǔn)上快速迭代再在真實(shí)場景中做最終驗(yàn)證。4.1 用 LIBERO 基準(zhǔn)快速驗(yàn)證骨干能力LIBERO 是機(jī)器人操作領(lǐng)域一個(gè)被廣泛使用的仿真評(píng)測基準(zhǔn)。我把 LIBERO 當(dāng)作日常迭代的驗(yàn)證工具因?yàn)樗艿每臁⒊杀镜瓦m合測不同骨干變體的效果差異。它把任務(wù)分成了幾個(gè)套件比如空間泛化、物體泛化、目標(biāo)泛化、知識(shí)遷移、時(shí)序組合每個(gè)套件專門測試模型的一項(xiàng)能力。這個(gè)設(shè)計(jì)我非常喜歡它能告訴你模型的短板到底在哪個(gè)維度而不是只給一個(gè)平均成功率。我在 LIBERO 上做 A/B 測試時(shí)有個(gè)固定流程固定數(shù)據(jù)、固定訓(xùn)練輪數(shù)、固定隨機(jī)種子只改一個(gè)變量然后對(duì)比成功率。曾經(jīng)有一次我和同事爭論視覺編碼器應(yīng)該選 A 還是 B爭論了三天。最后在 LIBERO 的物體泛化套件上跑了一輪對(duì)比方案 B 比方案 A 高了接近 15 個(gè)點(diǎn)爭論立刻結(jié)束。沒有這種快速評(píng)測回路架構(gòu)迭代基本靠拍腦袋。4.2 真實(shí)環(huán)境的評(píng)測指標(biāo)與細(xì)節(jié)LIBERO 表現(xiàn)好不代表真實(shí)場景沒問題。仿真環(huán)境的狀態(tài)是精確的、光照是固定的、物體形狀是不變的到了真實(shí)環(huán)境這些條件全都會(huì)變化。我見過太多在仿真里 90% 成功率、真實(shí)場景直接腰斬的案例。真實(shí)環(huán)境評(píng)測我設(shè)計(jì)了三個(gè)指標(biāo)單次任務(wù)成功率、10 次重復(fù)實(shí)驗(yàn)的穩(wěn)定性、以及失敗模式分類。成功率自然不用多說但穩(wěn)定性更重要——一個(gè)模型偶爾成功一次和連續(xù) 10 次穩(wěn)定成功可信度是完全不一樣的。失敗模式分類則用來指導(dǎo)下一步迭代方向模型是抓不住物體、還是抓到了放不對(duì)、還是動(dòng)作執(zhí)行到一半卡住每種失敗背后的原因可能完全不同。另外真實(shí)評(píng)測的時(shí)間成本和精力成本都很高。每次重新擺場、復(fù)位物體、重置位姿都要花時(shí)間。我建議每次真實(shí)評(píng)測的任務(wù)數(shù)量控制在 3 到 5 個(gè)每個(gè)任務(wù)做 10 次實(shí)驗(yàn)。這樣既能保證統(tǒng)計(jì)可信度又不會(huì)把整個(gè)團(tuán)隊(duì)拖垮在評(píng)測上。4.3 骨干改造的迭代閉環(huán)VLA 骨干的開發(fā)不是一次性的而是一個(gè)持續(xù)的迭代閉環(huán)。我的節(jié)奏是每周在 LIBERO 上跑一輪骨架對(duì)比實(shí)驗(yàn)每兩周做一次真實(shí)環(huán)境評(píng)測。每次改動(dòng)只動(dòng)一個(gè)變量并且記錄完整的實(shí)驗(yàn) log。迭代過程中我發(fā)現(xiàn)最有價(jià)值的改進(jìn)往往來自對(duì)失敗案例的分析而不是對(duì)成功案例的復(fù)盤。有一次我在 LIBERO 的 Transfer 套件上發(fā)現(xiàn)模型在某個(gè)未見過的桌子顏色上全軍覆沒。排查后發(fā)現(xiàn)問題出在圖像增強(qiáng)策略上——訓(xùn)練時(shí)沒有加入色彩擾動(dòng)導(dǎo)致模型過擬合了訓(xùn)練場景的色調(diào)。加上 color jitter 之后這個(gè)套件的成功率提升了將近 20 個(gè)點(diǎn)。這類問題不深入拆失敗案例是根本發(fā)現(xiàn)不了的。5. 骨干落地過程中的坑排查記錄與避坑建議最后這部分我梳理一下 nextVLA 骨干開發(fā)過程中實(shí)際遇到的典型問題。這些問題在論文里通常不會(huì)寫但每一個(gè)都真實(shí)地浪費(fèi)過我?guī)滋鞎r(shí)間。5.1 訓(xùn)練不收斂或者動(dòng)作抖動(dòng)我在早期測試流匹配動(dòng)作頭時(shí)經(jīng)常遇到 loss 在不斷下降、但動(dòng)作輸出一顫一顫的情況。后來發(fā)現(xiàn)原因不是模型結(jié)構(gòu)不對(duì)而是動(dòng)作歸一化沒做好。不同關(guān)節(jié)的運(yùn)動(dòng)范圍差異很大如果直接拿原始關(guān)節(jié)角度訓(xùn)練數(shù)值范圍大的關(guān)節(jié)會(huì)主導(dǎo)梯度更新。解決方法是按關(guān)節(jié)分別做標(biāo)準(zhǔn)化讓每個(gè)關(guān)節(jié)的數(shù)值范圍都落到接近零均值單位方差的區(qū)間。另外動(dòng)作抖動(dòng)還有一個(gè)常見來源是預(yù)測頻率太高。模型每個(gè)控制周期都重新推理一次上個(gè)周期的動(dòng)作還沒執(zhí)行完新動(dòng)作就來了兩個(gè)動(dòng)作之間的不一致就表現(xiàn)為抖動(dòng)。我調(diào)整了動(dòng)作推理的觸發(fā)策略只按固定頻率推理并且做動(dòng)作平滑抖動(dòng)問題明顯改善。5.2 評(píng)測結(jié)果忽高忽低難以判斷改動(dòng)是否有效這是做 VLA 最讓人頭疼的問題。同一份代碼、同一個(gè)模型在 LIBERO 上跑三次結(jié)果可能波動(dòng) 10 個(gè)點(diǎn)以上。我開始的時(shí)候經(jīng)常被這種隨機(jī)性誤導(dǎo)把噪聲當(dāng)成改進(jìn)。后來我摸索出一個(gè)比較可靠的流程固定隨機(jī)種子每個(gè)實(shí)驗(yàn)跑至少 5 個(gè) seed取平均和方差。改動(dòng)帶來提升的標(biāo)準(zhǔn)是平均成功率提升要超過方差。如果模型 A 平均 70%模型 B 平均 72%但各自方差都有 3-4 個(gè)點(diǎn)那這種差距在實(shí)際意義上并不顯著。另外評(píng)測時(shí)初始場景的隨機(jī)化程度也要統(tǒng)一否則場景差異會(huì)占掉很大一部分隨機(jī)性。5.3 推理速度和顯存問題VLA 落地到真實(shí)機(jī)器人上推理速度是硬指標(biāo)。7B 模型在 GPU 上推理一次可能只要幾百毫秒但機(jī)器人控制周期要求可能只有幾十毫秒這里面的差距需要想辦法彌補(bǔ)。我在推理側(cè)做了三件事。第一圖像 token 會(huì)被壓縮而不是把所有視覺 token 都灌進(jìn) LLM這樣能顯著降低序列長度。第二LLM 的 KV cache 緩存復(fù)用對(duì)歷史上下文不做重復(fù)計(jì)算。第三動(dòng)作頭和 LLM 解耦LLM 只需要在指令或狀態(tài)發(fā)生顯著變化時(shí)推理一次動(dòng)作生成的循環(huán)只跑輕量級(jí)的流匹配去噪不經(jīng)過 LLM。這套組合拳下來端到端的推理延遲從最初的接近 2 秒降到了 300 毫秒左右達(dá)到了真實(shí)場景可用的程度。最后再分享一個(gè)我個(gè)人非常堅(jiān)持的習(xí)慣每次改骨干結(jié)構(gòu)都先寫一頁紙的改動(dòng)說明寫清楚改了什么、為什么改、預(yù)期帶來什么收益。這個(gè)習(xí)慣幫我避免了很多次改了不如不改但不改回去又不甘心的內(nèi)耗。架構(gòu)設(shè)計(jì)這件事最怕的不是踩坑而是踩了坑還不記得為什么踩、怎么爬出來的。把這些記錄在案下一代 VLA 迭代的時(shí)候你會(huì)有一種站在自己肩膀上的感覺。