機器人論文運作流程講義
7 篇論文的「機器人實際上怎麼跑」。大人版:名詞 → 逐步流程 → 容易誤解的地方;小孩版:用講給 5 歲小朋友聽的方式說故事。頂端可一次切換全部,每篇右上角也能單獨切換。
- Zero-WAM以人類影片為提示,先想像機器人影片再逆動力學解碼動作
- Zeva凍結策略+雙時間尺度因果記憶,同一回合越試越成功
- HOST單段人類影片當條件,依序定位進度、預測自身未來畫面、生成動作
- RoboArchitect程式碼模型反覆改寫凍結 VLA 外圍的 harness 程式
- ICRT以機器人示範軌跡當提示,因果 transformer 次一詞元預測產生動作
- GEN-1.5示範片段塞進情境窗即零梯度執行新任務
- Think Like a World Model訓練時把 0.8B VLA 的影像特徵以餘弦對齊到凍結世界模型的離線快取特徵
總覽比較
| 論文 | 部署時輸入 | 記憶/情境存什麼 | 部署時更新權重? | 輸出 |
|---|---|---|---|---|
| Zero-WAM | 人類示範影片(或語言指令)+機器人觀測歷史 | 人類影片 token 作為快取前綴+當前 rollout 的影片/動作區塊歷史;無跨嘗試記憶 | 否:部署零參數更新(真實機器人先以少量已見任務示範後訓練) | 下一個機器人影片區塊+對齊的動作區塊 |
| Zeva | 機器人畫面、任務指令、從記憶組成的因果提示 | CTE 編碼的 (階段 p, 因果訊號 e) 向量;短期每次嘗試清空,長期跨嘗試、每回合清空 | 否:全部參數凍結,只更新記憶 | 連續機器人動作(擴散路徑) |
| HOST | 單段人類影片視窗+當前多視角畫面+本體感知+語言指令 | 影片示範視窗(隨預測進度推進);示範記憶庫只存人類影片與指令/場景嵌入供檢索 | 否:兩階段訓練後凍結,新任務不做任何參數更新 | 定位值 → 未來觀測 → 32 步動作區塊 |
| RoboArchitect | 相機影像、深度圖、夾爪位姿/狀態、任務指令 | harness 程式自行演化的持久記憶(如抓取深度、握法、場景重置週期),跨回合保存 | 否:VLA 與工具都不更新,只改 harness 程式 | 低階動作向量(來自 VLA、工具或程式直接指令) |
| ICRT | 1 條以上人類遙控示範軌跡(影像+本體感覺+動作)+當前影像與本體感覺 | 序列中的提示軌跡與當前 rollout 歷史(編碼後詞元,KV 快取),無跨嘗試記憶 | 否:測試時完全不更新;只在離線預訓練(DROID)+微調(ICRT-MT)時訓練 | 接下來 16 步末端姿態差量+夾爪動作,經時間集成執行 |
| GEN-1.5 | 影像+感測器+語言+本體感覺(30 秒情境窗),其中含 3–12 秒物理提示 | 情境窗內的原始示範片段(觀測+動作序列)與滾動即時觀測;無跨回合記憶庫 | 單樣本路線否(零梯度);少樣本路線是(1–10 梯度步,權重變化 <0.15%) | 100 Hz 連續動作軌跡 |
| Think Like a World Model | 多視角影像+語言指令+本體感知狀態 | 無部署時記憶;訓練時使用離線快取的教師每視角池化特徵(Cosmos3-Nano 第 24 層,4096 維) | 否(部署時凍結;只在離線訓練時以 L_act+0.5·L_align 更新學生與投影器) | 流匹配動作專家輸出的 K 步動作區塊 |
先認識幾個角色 🧸
每個機器人都有一顆「大腦」(研究的人叫它「模型」或「權重」)。大腦是在很久以前、上學的時候就學好的。
可是機器人出門工作時,常常會遇到沒學過的新事情。這七個研究都在想同一件事:怎麼讓機器人很快學會新本領?
七個方法比一比 📊
| 方法 | 它靠什麼學新事情? | 工作時會改大腦嗎? | 有筆記本嗎? |
|---|---|---|---|
| Zero-WAM | 看一段人類影片,先想像「換成我來做」的畫面 | 不會 | 沒有 |
| Zeva | 自己試試看,記下「我這樣做 → 東西會怎樣」 | 不會 | 有,同一場越記越多 |
| HOST | 跟著人類影片,一邊找「我做到哪了」一邊做 | 不會 | 有一個「影片書櫃」 |
| RoboArchitect | 聰明教練幫它改寫「做事規則手冊」 | 不會(只改手冊) | 有,手冊自己長出來的 |
| ICRT | 先看幾次遙控示範,再像接龍一樣接著做 | 不會 | 沒有 |
| GEN-1.5 | 把一小段示範貼在它的「30 秒小黑板」上 | 通常不會;也可以稍微練習一下 | 沒有 |
| Think Like a WM | 上學時跟「博士」學怎麼看圖 | 不會(本事在上學時就學好了) | 沒有 |
Zero-WAM:從人類影片進行情境內世界-動作建模以實現開放式任務泛化
Zero-WAM: In-Context World-Action Modeling from Human Videos for Open-Ended Task Generalization
一句話:把一段「人類示範影片」當作提示前綴塞進因果影片-動作模型,模型先自迴歸地「想像」下一段機器人影片,再用逆動力學從想像的影片解碼出動作,部署時不更新任何權重、也不需要該任務的機器人資料。
先釐清名詞
- 世界-動作模型(World-Action Model, WAM)/因果影片-動作模型
- 給定任務條件 $c$ 與歷史的影片區塊、動作區塊,聯合預測下一個機器人影片區塊 $\mathbf{x}^{i+1}$ 與時間對齊的動作區塊 $\mathbf{a}^{i+1}$(式 3)。分解為「先預測影片、再解碼動作」(式 4)。
- 區塊(chunk)
- 軌跡被切成 $\{(\mathbf{x}^{i},\mathbf{a}^{i})\}_{i=1}^{N}$,每個區塊是一小段影片潛在表徵加上同時段的動作。推論時區塊大小固定為 2(§4.1)。
- 人類影片指令 $\mathbf{h}$(ICL 提示)
- 一段示範同一任務的人類操作影片,作為情境內的「任務指定」。它只被影片 Transformer 看到,動作 Transformer 不直接看它(式 5–8)。
- 影片 Transformer/動作 Transformer(MoT)
- Mixture-of-Transformers:兩個模態各有獨立的 QKV、FFN、輸出頭,只透過共享注意力層互動;動作 token 排在未來影片 token 之後,所以動作解碼能看到「預測出的未來影片」,本質上是逆動力學模型。
- 情境內未來區塊預測(IFP)
- 只在訓練時使用的輔助目標:額外 $K=4$ 個模組從主分支的中間層表徵 $\bm{\phi}^{i+1}$,以步幅 $s=2$ 預測更遠的未來機器人影片區塊(式 11–14),用來逼主分支真的去讀人類影片,而不是只靠外推機器人歷史抄捷徑。推論時移除。
- HumanGen 資料集
- 用 VLM + 影像編輯 + 影片生成模型,把依任務取樣的機器人軌跡自動生成成語意相同的人類影片,配成 74.2K 組人類-機器人 ICL 配對、8.6K 個任務(§2.2–2.3)。
運作流程
- 任務層級重新取樣:把 AgiBot、Open-X 等公開資料集依「動作+物體」切成任務,每個任務只取有上限數量的軌跡,得到任務平衡的 Task-diverse VA 資料(每個訓練週期 >6,000 任務、約 400K 軌跡)。
- VLM 任務分析:對每段取樣的機器人影片,VLM 擷取任務名稱、物體初始/變化/最終狀態,並寫出影像編輯提示。
- 生成人類初始畫面:影像編輯模型把機器人第一幀改成人類操作場景(刻意改變背景、視角、物體實例與擺放)。
- 生成人類影片:VLM 根據編輯後畫面寫影片生成提示,影片生成模型合成人類雙手完成任務的影片。
- VLM 品質篩選:檢查任務語意與物理合理性,合格者與原機器人軌跡配對成 ICL 樣本。
- 初始化:把雙向的 Wan-2.2-TI2V-5B 轉成因果影片-動作策略(沿用 LingBot-VA)。
- 混合取樣:Task-diverse VA : HumanGen = 1 : 5。
- VA 樣本:條件 $c=\ell$(只有語言),最佳化影片流匹配損失+動作流匹配損失(式 19)。
- ICL 樣本:人類影片 $\mathbf{h}$ 以 RoPE 高度軸偏移後前置為前綴,影片預測條件 $c=\{\mathbf{h},\ell\}$;動作損失仍只以 $\ell$ 為條件;再加上 IFP 損失(式 20)。
- 降低對語言的依賴:ICL 樣本的語言 dropout 提高到 0.4,人類影片潛在表徵以 0.1 機率丟棄。
- 模擬:RoboTwin 2.0 的 43 個已見任務(含其生成的人類影片),與 VA、HumanGen 以 2:10:3 聯合取樣,4,000 步。7 個未見任務完全不出現。
- 真實機器人:雙臂 Franka 上蒐集少量已見任務示範(例如 120 條),讓模型適配該機器人運動學;評估的任務配置保留不訓練。
- 編碼提示一次(ICL 模式):人類影片 $\mathbf{h}$ 只編碼一次,其 token 快取為前綴記憶;實驗中 ICL 模式停用語言指令(§4.1)。純語言模式則改以 $c=\ell$ 為條件。
- 想像下一段影片:影片 Transformer 以 $[\,[\mathbf{h},\mathbf{x}^{\le i}],\mathbf{a}^{\le i}\,]$ 為情境,從雜訊經流匹配去噪生成下一個機器人影片區塊 $\hat{\mathbf{x}}^{i+1}$(ICL CFG 尺度 5)。
- 逆動力學解碼動作:動作 Transformer 以機器人歷史與預測出的 $\hat{\mathbf{x}}^{i+1}$ 為條件,去噪得到動作區塊 $\mathbf{a}^{i+1}$(不看 $\mathbf{h}$)。
- 執行並前進:機器人執行該動作區塊,進入下一個區塊(評估為閉迴路 rollout)。執行後歷史中的影片區塊如何以實際觀測更新,論文僅表示沿用 LingBot-VA 的因果框架,未另行說明細節。
容易誤解的地方
| 直覺上可能以為 | 論文實際 |
|---|---|
| 模型從人類影片中模仿/重定向人類手部動作 | 不抽取人手動作。人類影片只作為任務指定;動作 Transformer 甚至不直接看人類影片,動作是從「想像出的機器人影片」以逆動力學解碼(§3.2)。 |
| 部署時會用新任務的示範做微調或測試時訓練 | 未見任務上零參數更新、不需該任務的機器人資料;只把人類影片放進情境(§5)。但真實機器人上仍先用少量已見任務示範後訓練,以適配運動學。 |
| 會累積記憶或利用成功/失敗回饋自我改進 | 沒有跨嘗試記憶,也不使用成功與否;情境就是固定的人類影片前綴+當前 rollout 的歷史。 |
| IFP 是推論時多預測幾步未來來規劃 | IFP 只在訓練時用來逼主分支編碼人類影片的任務資訊,推論時整個移除;且刻意不讓 IFP 模組直接看 $\mathbf{h}$(§3.3)。消融:去掉 IFP 平均成功率 46.95% → 28.55%。 |
| 訓練用的人類影片是真人拍攝的配對資料 | HumanGen 的人類影片全部由機器人軌跡自動生成(VLM+影像編輯+影片生成),並刻意加入視角、背景、物體差異,迫使模型學任務層級對應而非像素對齊。 |
| 人類影片與機器人影片是不同編碼器 | 兩者用同一個 Wan-2.2 VAE、共享潛在空間,只靠高度軸 RoPE 偏移 $\Delta_H=32$ 區分(式 9–10)。 |
出處:§2.1–2.3、§3.1(式 1–4)、§3.2(式 5–10)、§3.3(式 11–14)、§3.4(式 15–20)、§4.1 實作/推論細節、§4.2–4.4、圖 2。論文無演算法框。
Zero-WAM:先想像,再動手
看一段人類做事的影片,機器人先在腦中「拍一部自己做這件事的電影」,再照著電影動手。
機器人是這樣做的
- 先拿到一段人類示範影片,告訴它「要做什麼事」。
- 機器人想像下一小段「機器人自己」的影片:我的手臂接下來會在哪裡?東西會怎麼動?
- 再從想像的畫面推算:要變成那樣,手臂該怎麼動。
- 做完這一小段,再想像下一小段,一直到做完。
- 它不是在學人類的手怎麼動,人類影片只是告訴它「要做什麼」。負責算動作的那部分甚至不會直接看人類影片。
- 它沒有筆記本,也不管上一次有沒有成功。
大人版重點:人類影片當前綴 → 影片 Transformer 預測下一個機器人影片區塊 → 動作 Transformer 用逆動力學解碼;訓練時另加 IFP 輔助目標。切換到大人版 →
Zeva:面向可泛化具身操作的情境內因果學習
Zeva: In-Context Causal Learning for Generalizable Embodied Manipulation
一句話:策略權重凍結,每一步把「動作 → 造成的狀態變化」編碼成因果訊號存進雙時間尺度記憶,再檢索回來當作因果提示,讓機器人在同一回合內越試越成功。
先釐清名詞
- 嘗試(attempt)/回合(episode)
- 一次嘗試=從重置環境到終止或超時;同一任務最多 $R$ 次嘗試合稱一個回合。兩種記憶的生命週期就是以這兩個單位界定。
- 因果轉移編碼器(Causal Transition Encoder, CTE)
- GRU 遞迴:$B_\tau=\text{GRU}(B_{\tau-1},[s_\tau;u_\tau;d_\tau])$,吃視覺潛在表徵、動作編碼、觀測到的效果,再投影出階段 token $p_\tau$ 與因果互動訊號 $e_\tau$(式 3)。
- 短暫互動軌跡(Brief Interaction Trace, BIT)
- 短期記憶:最近 $K$ 步的 $e$ 的滑動視窗(式 4),每次嘗試結束時重置。
- 持久互動記憶(Persistent Interaction Memory, PIM)
- 長期記憶:存 $(p,e)$ 單元,跨同一回合的多次嘗試保留,新回合開始前清空;以相似度合併控制大小(式 5–6)。
- 因果提示(causal prompt)$\mathcal{M}_\tau$
- $F_\text{mem}([g;p_\tau;P_\text{proj}(\text{BIT});P_\text{proj}(\mathcal{R}_\tau)])$(式 8),作為擴散動作路徑中全注意力區塊的條件。
運作流程
- 訓練 CTE:多目標損失——$\mathcal{L}_\text{effect}$(由 $e_\tau$ 與候選動作預測視覺狀態變化 $\Delta s_\tau$)、$\mathcal{L}_\text{task}$(同任務回合聚在一起的監督式對比損失)、$\mathcal{L}_\text{phase}$(讓 $p_\tau$ 反映單調的任務進程)。
- 任務特定資料:實驗中所有方法使用相同的任務特定訓練資料集;基礎策略與記憶編碼器如何學會讀取因果提示的訓練細節,論文未詳述。
- 凍結所有參數:基礎策略、CTE、$F_\text{mem}$ 全部不更新。
- 清空長期記憶:$\mathcal{H}^\text{pim}\leftarrow\varnothing$(可選:以一次人類遙操作示範經 CTE 編碼來暖啟動 PIM,§IV-E2)。
- 重置環境,清空短期記憶 BIT。
- 初始化互動狀態 $B_0=F_\text{init}(g,s_0)$,得初始階段 $p_0$。
- 先查記憶:用目前階段 $p_t$ 在 PIM 取階段最相近的 top-$K$ 筆因果訊號 $\mathcal{R}_t$(式 7)。
- 組因果提示:$\mathcal{M}_t=F_\text{mem}(g,p_t,\text{BIT},\mathcal{R}_t)$。
- 產生動作:凍結策略 $a_t\sim\pi(\cdot\mid o_t,g,\mathcal{M}_t)$,執行。
- 編碼因果:GRU 以新視覺潛在表徵、$a_t$、$\Delta s_t$ 更新 $B_{t+1}$,投影出 $p_{t+1}$、$e_{t+1}$。
- 同時寫入兩種記憶:$e_{t+1}$ 放入 BIT 滑動視窗;$(p_{t+1},e_{t+1})$ 與 PIM 最相似條目比對,相似度 $>\tau_\text{merge}$ 就合併,否則新增。
- 成功就回傳並結束回合;失敗則進入下一次嘗試——BIT 清空、PIM 保留。
容易誤解的地方
| 直覺上可能以為 | 論文實際 |
|---|---|
| 記憶存的是移動軌跡 | 存的是 CTE 編碼出的潛在向量 $(p,e)$,代表「動作與它造成的狀態變化」 |
| 先存短期,再轉存長期 | 每一步同時寫入 BIT 與 PIM,沒有從短期搬到長期的步驟 |
| 成功/失敗標籤和軌跡一起存 | 成功與否不寫入記憶,只決定是否再試;策略從因果訊號隱式推斷 |
| 長期記憶永久保存 | PIM 只跨同一回合的多次嘗試保留,新回合清空 |
| 部署時會做測試時訓練 | 部署期間所有參數凍結($\nabla_\theta\pi=0$),只有記憶在線上更新 |
出處:§III-A~III-F、Algorithm 1、式 (3)–(8)、§IV-E2
Zeva:越試越厲害的小筆記本
機器人每做一個動作,就記下「我這樣做 → 東西變成那樣」。沒成功的話,帶著筆記再試一次。
機器人是這樣做的
- 機器人有兩本筆記:一本小便條,只記剛剛那幾下;一本大筆記本,記這場遊戲裡所有的經驗。
- 每次要動之前,先翻大筆記本:「上次做到這一步的時候,發生了什麼事?」
- 帶著筆記裡的提醒,做出一個動作。
- 看看動作造成什麼變化,把這件事同時寫進兩本筆記。很像的經驗會合在一起寫,筆記本才不會太厚。
- 沒成功?撕掉小便條,留著大筆記本,再試一次。換一場新遊戲,大筆記本才會清空。
- 筆記上寫的是「動作 → 結果」的感覺,不是「成功」或「失敗」的成績單。
- 它不是先寫小便條再抄到大筆記本,而是兩本同時寫。
大人版重點:CTE 把(視覺、動作、Δs)編成 (p, e);BIT 每次嘗試清空、PIM 跨嘗試保留並以相似度合併;依階段檢索組成因果提示。切換到大人版 →
HOST:機器人在數秒內從單一人類影片習得操作技能
HOST: Robots Acquire Manipulation Skills in Seconds from a Single Human Video
一句話:先用自監督對齊把人類影片和機器人軌跡對到同一條「任務進度」上,訓練出一個凍結後不再更新的自迴歸擴散模型。部署時它依序做三件事:在人類影片裡定位自己做到哪 → 想像自己接下來的畫面 → 從想像的畫面推出動作區塊,並用定位結果推進影片視窗。
先釐清名詞
- 影片示範(video demonstration, $\tau^{d}$)
- 只有畫面、沒有動作的示範影片。訓練第一階段用的是另一條機器人軌跡的畫面,第二階段和部署時用的是人類影片。部署時每個新任務只給一段。
- 對齊模組(alignment module)
- 以 Qwen3-VL-Embedding-8B 為影格編碼器,用 Smooth DTW 加時間循環一致性(TCC)損失,以自監督方式學出影片影格和機器人影格之間的單調對應($\pi^{r\to d}$、$\pi^{d\to r}$)。它只在離線建構訓練樣本時使用,推論時不會呼叫(附錄 B.1)。
- 耦合預測目標(coupled target, $\mathcal{T}_{t}$)
- 機器人在時間步 $t$ 的訓練目標,不是固定往後 $H$ 步,而是「影片接下來 $H$ 個影格」映射回機器人軌跡後得到的那段未來觀測 $\mathcal{T}^{o}_{t}$ 加動作 $\mathcal{T}^{a}_{t}$(§4.2)。
- 影片示範視窗 $\mathcal{W}$ 與定位值 $p_t$
- 模型看的不是整段影片,而是包含 $L$ 個影格、以目前進度為中心的滑動視窗。$p_t$ 是機器人在視窗內的相對位置,部署時用它來推進視窗。
- 自我錨定預測(self-grounded prediction)
- 同一個自迴歸擴散模型裡的因果級聯:定位 token → 未來觀測 token → 動作 token。後面的目標以前面已生成的「乾淨」結果為條件(§4.3)。
- 示範記憶庫(demonstration bank, $\mathcal{B}$)
- 存放用過的人類影片,連同指令、指令文字嵌入和初始場景嵌入。任務再次出現時用來檢索影片,不必再請人錄(§4.4)。
運作流程
- 取同任務配對:從訓練任務 $\mathcal{M}_{\mathrm{train}}$ 隨機取同一任務的兩條軌跡,包含機器人對機器人、人類對機器人兩種配對。
- 編碼影格:共享編碼器 $f_{\phi}$ 把每個時間步的多視角影像編成嵌入(取 [EOS] 隱藏狀態,線性投影後做 $\ell_2$ 正規化)。
- 軟對齊:由負平方 L2 距離得到相似度矩陣 $S$,轉成成本矩陣 $C$,再用 Smooth DTW 前向/後向動態規劃求出單調的軟匹配機率 $\beta^{d\to r}$、$\beta^{r\to d}$。以 $\mathcal{L}_{\mathrm{align}}=\mathcal{L}_{\mathrm{TCC}}+\lambda_{\mathrm{DTW}}\mathcal{L}_{\mathrm{DTW}}$ 端到端訓練,不需影格層級標註。
- 凍結並建構樣本:每列取最大機率,得到單調映射。對機器人時間步 $t$,先用 $\pi^{r\to d}$ 找到對應的影片影格,取其後 $H$ 個影格,再用 $\pi^{d\to r}$ 映射回機器人時間步,得到耦合目標 $\mathcal{T}_{t}$。同時隨機取一個包含耦合片段、長度 $L\ge H$ 的視窗 $\mathcal{W}$,並記錄定位標籤 $p_t$。每個樣本為 $(\mathcal{W},o^{r}_{t-K:t},s^{r}_{t},\ell,p_t,\mathcal{T}_t)$。
- 編碼輸入:影片視窗、目前機器人觀測、未來觀測都用凍結的 Wan VAE 編成 token($z^{d}$、$z^{o}$、$y^{o}$)。定位值和動作各用線性層投影成 $y^{p}$、$y^{a}$。語言(UMT5-XXL)和本體感知狀態以交叉注意力條件 $c$ 送入。
- 雙專家 MoT:影片專家(以 Wan2.2-TI2V-5B 初始化)負責定位和未來觀測,動作專家負責動作,兩者每層共享自注意力。
- 因果遮罩加流匹配:每個目標都有一個含噪 token 和一個乾淨 token。含噪定位只能看 $z^{d}$、$z^{o}$;含噪觀測還能看乾淨定位;含噪動作還能看乾淨定位和乾淨觀測。乾淨 token 填真實值並截斷梯度,因此三個目標能在單次前向傳遞中聯合最佳化。總損失為 $\lambda_o\mathcal{L}_{\mathrm{obs}}+\lambda_a\mathcal{L}_{\mathrm{act}}+\lambda_p\mathcal{L}_{\mathrm{loc}}$($1/10/1$)。
- 第一階段:同具身預訓練:用機器人對機器人配對(193,462 條軌跡、229 個任務)訓練 50 萬步。一條軌跡的畫面當作「影片示範」,另一條提供機器人自己的未來觀測與動作。
- 第二階段:人類對機器人調適:用 5,847 段自行蒐集的人類影片,各自配對同任務的機器人軌跡,訓練 10 萬步。條件換成人類影片,預測目標仍是機器人自己的未來軌跡。
- 查示範記憶庫:把指令 $\ell_q$ 和目前畫面編成嵌入,對 $\mathcal{B}$ 中每段影片計算「指令相似度加場景相似度」的加權分數($\omega$ 平衡兩者)。
- 判斷是否為新任務:最高分超過閾值 $\delta$ 就直接用那段影片;否則視為新任務,請人錄一段新影片,用完後存進 $\mathcal{B}$。
- 初始化:視窗起點 $w_0=0$。
- 輸入:目前影片視窗 $\mathcal{W}_t$、目前機器人觀測(實作上 $K=0$,只用當下畫面)、本體感知 $s^{r}_{t}$、語言指令 $\ell$。
- 定位:從雜訊去噪 10 步得到 $\hat{y}^{p}$,解碼成視窗內的相對進度 $\hat{p}_t$。
- 想像未來畫面:以 $\hat{y}^{p}$ 為條件去噪 20 步,得到機器人自己的未來觀測 $\hat{y}^{o}$。
- 推出動作:以 $\hat{y}^{p}$、$\hat{y}^{o}$ 為條件去噪 20 步,得到 $H=32$ 步的動作區塊 $\hat{y}^{a}$。
- 執行並推進視窗:32 步動作完整執行後,把 $\hat{p}_t$ 換算成整段影片中的絕對影格 $\hat{q}_t$,以它為中心設定下一個視窗。起點單調截斷在 $[w_t,|\tau^{d}|-L]$,避免往回漂移。回到步驟 2。
容易誤解的地方
| 直覺上可能以為 | 論文實際 |
|---|---|
| 看到新任務的人類影片後,會用它微調模型 | 部署時完全不更新參數,新技能只靠影片當作條件「在推論時」進入系統。論文報告的平均習得時間約 29 秒,主要是錄一段人類影片;SFT 基準方法則需要約 4.0–4.9 小時。 |
| 推論時用對齊模組(DTW)即時對齊人類影片和機器人 | 對齊模組只在離線建構訓練目標時使用,推論時不呼叫。推論時的進度追蹤由模型自己學會的定位 token 完成(附錄 B.1、B.5)。 |
| 模型直接把人類的手部動作轉成機器人動作 | 不直接轉譯。模型先預測機器人自己的未來畫面,再從這些畫面推出動作,藉此跨越具身形態、視角和外觀的差異。消融實驗中,直接映射到動作的成功率是 0.34,完整級聯是 0.62(圖 10A)。 |
| 大量人類對機器人配對資料是主要訓練來源 | 主力是機器人對機器人的同具身配對(193,462 條)。人類影片只有 5,847 段,用在第二階段調適。新任務的成功率會隨第一階段資料量增加而提升(圖 10D)。 |
| 預測目標是固定的「未來 $H$ 步」 | 目標由影片接下來的進展決定,時間跨度依對齊結果而定。改用時間戳記選視窗的成功率只有 0.29,依進度選視窗是 0.45,再加上目標耦合是 0.62(圖 9E)。 |
| 示範記憶庫是一種經驗或互動記憶 | $\mathcal{B}$ 只存人類影片,加上指令和初始場景的嵌入,用途是檢索要給模型的那段影片。它不記錄執行結果或成敗,模型本身也不會因此改變。 |
出處:§4.1–4.4、式 (1)–(20)、附錄 B.1–B.5(補充表 1–5)、圖 2、圖 6、圖 9E、圖 10A/D/E。
HOST:跟著影片跳舞
機器人一邊看人類影片、一邊找「我做到哪一段了」,想像自己接下來的樣子,再做一小段,然後把影片往後翻。
機器人是這樣做的
- 拿到新任務,先去影片書櫃找找看有沒有看過。沒有的話,請人錄一段人類影片,用完放進書櫃。
- 看著影片的一小段:「我現在做到哪裡了?」
- 想像自己(機器人)接下來的畫面。
- 從想像的畫面推出接下來一串動作(大約 32 步),做完它。
- 把影片往後翻到新的進度,再回到第 2 步。影片只會往前翻,不會倒退。
- 學新任務時大腦不會改,影片只是放在旁邊參考。
- 影片書櫃只放影片,不記成功或失敗。
- 上學時大部分是看「機器人對機器人」的影片,人類影片只佔一小部分。
大人版重點:離線以 Smooth DTW+TCC 對齊建構耦合目標;部署時級聯「定位 token → 未來觀測 → 32 步動作」,再以定位推進影片視窗。切換到大人版 →
RoboArchitect:以持久記憶自動設計機器人代理
RoboArchitect: Automating the Design of Robotic Agents with Persistent Memory
一句話:不動任何權重,讓程式碼模型反覆看 rollout 紀錄、診斷失敗、改寫包在凍結 VLA 外面的 harness 程式(含它自己設計的持久記憶),只有在訓練回合上變好才採用。
先釐清名詞
- Harness(agent harness)
- 介於環境觀測與低階機器人指令之間的程式。每個控制步收到相機影像、深度圖、夾爪位姿與狀態、任務指令,輸出低階動作向量;它決定何時呼叫 VLA、何時用輔助工具、何時直接指揮手臂。
- 程式碼模型(coding model)
- 負責「設計」harness 的模型(實驗用 claude-opus-5,經 Claude Code、最高推理強度)。它只在最佳化迴圈中出現,不在機器人執行時跑。
- 訓練回合/保留回合(training / held-out episodes)
- 訓練回合只用來最佳化 harness;保留回合用來最終評估,分為未見場景(同任務、不同擺放)與未見任務(不同任務、共享技能)。
- 輔助工具(auxiliary tools)
- LLM(Qwen3-30B-A3B)、VLM(Molmo2-8B 或 Qwen3-VL-8B)、物體偵測(Grounding-DINO)、分割(SAM 3)、指向(Molmo2-8B)、抓取位姿(GraspGen),以及像素+深度轉 3D 座標、相對軌跡基元等幾何工具。
- 持久記憶(persistent memory)
- harness 程式內的資料結構,跨回合累積經驗;存什麼、什麼格式、怎麼讀,全由演化決定,沒有預設 schema。
運作流程
- 直通 harness:把觀測交給凍結的 VLA、原樣回傳它預測的動作——也就是裸策略(Bare Policy)本身。
- 在訓練回合上執行目前的 harness,記錄完整軌跡:每步相機畫面、機器人讀數、所有模型與工具的輸出。
- 程式碼模型審閱紀錄:診斷失敗模式(例如手臂卡住、從上方撞到層板、推門力道不足)。
- 提出候選 harness:可能改成跟隨策略、呼叫工具、或以程式直接指揮手臂,也可能新增或修改持久記憶。
- 在同一訓練集重新評估候選版本:成功率超過目前 harness 才採用,否則保留舊版——因此訓練集上的軌跡單調不下降。
- harness 收到觀測(影像、深度、夾爪位姿與狀態、指令)。
- 依演化出的程式邏輯決定:查詢 VLA、呼叫工具(指向、偵測、抓取…)、或直接下指令;必要時讀取持久記憶(例如有效抓取深度)。
- 輸出低階動作向量給機器人控制器;執行中把新經驗寫入記憶。每次評估都從空記憶開始累積。
- 跨具身訓練池:在 2,201 個程序化生成回合(LIBERO-Pro、VLABench、SimplerEnv WidowX/Google 的新場景、物體、指令)上演化單一 harness,再於 2,160 個基準標準回合上評估。
容易誤解的地方
| 直覺上可能以為 | 論文實際 |
|---|---|
| 程式碼模型在機器人執行時即時下指令 | 程式碼模型只在離線最佳化迴圈中改寫程式;執行時跑的是它寫好的 harness 程式 |
| 有微調 VLA | 所有模型權重(VLA 與工具)都沒有更新,只改 harness 程式 |
| 持久記憶是程式碼模型的上下文 | 記憶是 harness 程式內的資料結構,在機器人 rollout 中累積、跨回合保存;評估時從空記憶開始 |
| 人工規定何時用 VLA、何時用程式 | 從未指示如何分工;全由 rollout 證據演化(例如通用 X-VLA 在 WidowX 上被完全棄用,微調版則保留主導) |
| 每次修改都會被採用 | 候選版必須在訓練集上勝過目前版本才採用 |
| 在測試題上調整 | 保留回合在演化期間從未出現 |
出處:§3(Harness interface、Auxiliary tools、Optimization loop、Persistent memory)、§4.1、§4.2、§4.4、附錄 B、圖 2
RoboArchitect:聰明教練寫的規則手冊
機器人小幫手常常卡住,所以請一位聰明教練看錄影,幫它寫一本「做事規則手冊」,一次比一次寫得好。
機器人是這樣做的
- 一開始手冊是空的,小幫手想怎麼做就怎麼做。
- 讓小幫手在練習場做很多次,全部錄起來。
- 教練(一個很會寫程式的 AI)看錄影,找出哪裡做錯,改寫手冊。手冊可以叫小幫手照自己的方法做,可以叫它用放大鏡、指指看這些工具,也可以直接告訴它手要怎麼動。
- 新手冊在練習場真的變更好才換上,沒變好就留著舊的。最多改 5 次。
- 最後拿從沒見過的題目考試。考試時教練不在場,小幫手只照手冊做。
- 教練只在練習的時候幫忙改手冊,真正工作時不在旁邊。
- 筆記本是手冊裡的東西,是小幫手做事時記的,不是教練的記憶。
大人版重點:程式碼模型審閱 rollout 紀錄 → 改寫包住凍結 VLA 的 harness → 訓練回合上變好才採用(≤5 輪)→ 在保留回合評估。切換到大人版 →
ICRT:透過次一詞元預測的情境模仿學習
In-Context Imitation Learning via Next-Token Prediction
一句話:把同一任務的多條「影像+本體感覺+動作」軌跡串成一條長序列,訓練因果 transformer 做次一詞元預測;部署時把幾條人類遙控示範塞進序列開頭當提示(prompt),模型接著自迴歸地產生新環境中的動作,完全不更新權重。
先釐清名詞
- 感覺運動軌跡(sensorimotor trajectory)
- 一連串 $(i_t, s_t, a_t)$:相機影像(固定相機+腕部相機)、本體感覺狀態(絕對末端執行器姿態)、動作(相鄰時間步的末端姿態差量+連續夾爪動作)。提示和模型輸出都是這個格式(§IV-A)。
- 提示軌跡(prompt)
- 序列前段的 $k$ 條同任務完整軌跡。部署時就是人類遙控機器人蒐集的新任務示範,告訴模型「要用哪個動作基元、對哪個物體」。
- 狀態詞元 $f_s^t$ /動作詞元 $f_a^t$
- 每台相機的 ViT 特徵圖與本體感覺 MLP 嵌入做注意力池化,再把各相機結果串接成 $f_s^t$;動作用 MLP 嵌入成 $f_a^t$。transformer 吃的是交錯的 $(f_s^1, f_a^1, \dots, f_s^t, f_a^t)$(§IV-B)。
- 情境長度 $L=512$
- 一條訓練序列含 512 個(觀測、狀態、動作)三元組,通常可容納同任務至多 5 條軌跡。
- 動作基元(motion primitive)與「新任務」
- 任務 = 一個動作基元 + 互動物體集合。論文的「新任務」指未見物體、但動作基元在訓練資料中出現過(§III)。
運作流程
- 依任務分組軌跡:資料集切成互不相交的任務集合 $\mathcal{S}_k$。DROID 子集用語言指令的 CLIP 文字嵌入餘弦相似度(門檻 0.9)分組,每組至少 4 條,得約 2k 條;另自行蒐集 ICRT-MT(1,098 條、29 任務、6 種基元)。
- 刻意做成「多任務場景」:ICRT-MT 每個場景在當前觀測下至少有 2 種可能任務,逼模型必須讀提示才能知道要做什麼,避免「只看當前畫面」的捷徑解。
- 串接成長序列:每個 epoch 打亂同任務內軌跡順序後串接,取長度 512 的子序列;隨機把前 $k$ 條標為提示(至少含一條完整軌跡)。加上亮度/對比、裁切縮放與本體感覺雜訊 $\mathcal{N}(0, 0.005)$ 增強。
- 編碼:凍結的視覺編碼器(以 CrossMAE 在 ImageNet + Open X-Embodiment 上預訓練的 ViT-Base)輸出特徵圖,經模態專屬投影器得到 $f_s^t$、$f_a^t$。
- 次一詞元預測:12 層、隱維度 768、隨機初始化的 Llama2 式因果 transformer(Llama2-Base),在狀態詞元位置經 MLP 解碼頭預測接下來 $h=16$ 個動作(也預測下一個本體感覺狀態)。
- 只對提示之後算損失:動作 L1 損失只計算提示軌跡之後的位置,提示段不計損失(仿多輪對話 LLM 只對回應算損失)。
- 先預訓練再微調:先在 DROID 子集預訓練,再於 ICRT-MT 做完整微調(表 IX、X)。
- 人類遙控蒐集新任務示範:每個任務在實驗前蒐集 3 條示範,測試時隨機抽 1 條當提示(附錄也測了 2、3 條提示)。示範的場景布置與測試時不同。
- 放進序列開頭:提示軌跡以和訓練資料完全相同的格式編碼,放在 transformer 序列最前面。
- 讀入當前觀測:當前影像與本體感覺編碼成狀態詞元,接在「提示+先前已執行步驟」之後。
- 預測動作:模型自迴歸地輸出接下來 16 個動作,以時間集成(temporal ensembling)決定實際執行的動作。
- 執行並接回序列:機器人執行後取得新觀測與狀態,繼續預測下一步。
- KV 快取:只計算新詞元,先前詞元的 key/value 被快取,複雜度從平方級降到線性級,推論達 39.6 Hz,可做即時閉迴路控制。
容易誤解的地方
| 直覺上可能以為 | 論文實際 |
|---|---|
| 拿到新示範後會微調一下模型 | 測試時完全不更新參數;新任務只透過序列中的提示軌跡指定。權重更新只發生在離線的預訓練+微調。 |
| 提示是語言指令或目標影像 | 提示是原始機器人感覺運動軌跡(影像+本體感覺+動作),不需要語言、關鍵點或額外感知模組。目標影像條件策略是被比較的基線。 |
| 模型是在複製示範的動作序列 | 測試場景的物體位置與提示不同,模型要從提示辨識「哪個基元、哪個物體」,再在當前場景中執行。 |
| 連提示段也一起算損失,監督訊號更多 | 提示段不計損失才是關鍵:加入提示損失後平均成功率從 79.2% 掉到 22.5%(表 II),推測是模型會學成忽略提示的無條件生成。 |
| 資料越多越大越好,只用 DROID 就夠 | 只用 DROID 訓練成功率 0%;關鍵是 ICRT-MT 那種「同一初始觀測可做多種任務」的結構。但 DROID 預訓練仍有幫助(ICRT(MT) 73.3% < ICRT 79.2%)。 |
| 用大型語言模型(Llama2-7B)當主幹會更強 | ICRT-Llama2(LoRA 微調)訓練損失較低但表現較差(58.3%),論文歸因於推論頻率較低(10.7 Hz vs 39.6 Hz)。 |
| 會累積多次嘗試的經驗、越試越好 | 論文沒有跨嘗試的記憶機制;情境只有提示軌跡與當前 rollout 的歷史。評估時每個難度層級試一次,單次 rollout 內有 25 秒(375 步)可重試。 |
出處:§III 問題定義、§IV-A 資料構成、§IV-B 模型架構(損失函數、推論、KV 快取)、圖 3、§VI 消融與表 II、附錄 IX-B2(提示類型,表 IV)、IX-B4(共同訓練,表 VI)。論文未提供演算法框;情境超過 512 步時如何處理,論文未說明。
ICRT:看完示範,玩接龍
把幾次示範放在故事的開頭,機器人就像玩「接龍」一樣,一個動作接一個動作地接下去。
機器人是這樣做的
- 有人用遙控器讓機器人做一次新任務,這就是示範。
- 把示範(看到的畫面、手臂的位置、做的動作)放在最前面。
- 機器人看看現在的畫面,接著說出接下來的 16 個動作。
- 做完一點,把新看到的畫面接到後面,繼續接龍。它很快,1 秒鐘可以接好幾十次。
- 示範不是用說的,而是真的動作紀錄。
- 它不是照抄示範,因為東西擺的位置變了,它要自己找到東西在哪。
- 新任務的意思是「新的東西」,動作的種類是上學時看過的。
大人版重點:多條感覺運動軌跡串成序列,因果 transformer 做次一詞元預測,只對提示之後的位置計算損失;部署以遙操作示範當提示,KV 快取達 39.6 Hz。切換到大人版 →
GEN-1.5:具身基礎模型就是單樣本學習者
GEN-1.5: Embodied Foundation Models are One-Shot Learners
一句話:一個只做大規模物理互動資料預訓練的機器人基礎模型,部署時把一段 3–12 秒的示範(觀測+動作)直接塞進 30 秒的情境窗,就能零梯度執行新任務;若願意訓練,只需 1–10 個梯度步即可適應。
先釐清名詞
- 情境窗(context window)
- 模型輸入端的 30 秒記憶,內容包含影像、額外感測器資料、語言與本體感覺。部署時一部分放示範,其餘容量裝「滾動更新的即時觀測」。
- 物理提示(physical prompting)
- 把感覺運動(sensorimotor)範例——感測資料加上動作序列——直接插入情境窗。來源可以是人類用一對手持夾爪錄製的資料、機器人自身的執行軌跡,也可以是模擬器產生的軌跡。長度 3–12 秒、一次即可。
- 單樣本情境學習(one-shot in-context learning)
- 零梯度步:插入一段物理提示後模型立刻執行該任務,不訓練、不微調。10 項任務平均成功率 59%(±10%)。
- 少樣本梯度適應(few gradient steps)
- 用 1–5 分鐘資料(約 10–50 次示範)、1–10 個梯度步更新權重。10 步、5 分鐘資料時平均成功率 83%(±9%);最極端的單步、1 分鐘資料在保留任務上達 66.5%。
- 提示組合(prompt composition)
- 把兩段各自獨立錄製的示範一起放入情境,模型會依序完成兩項任務,並自行生成兩段示範中都沒有的銜接動作(重新定位、重新抓取、錯誤修正)。
運作流程
- 資料來源:從資料引擎(家庭、倉儲、工廠等場景)隨機取樣的連續物理互動片段;不含任何模擬資料。
- 訓練方式:大型多模態模型,輸入影像(30 秒記憶)+感測器+語言+本體感覺,輸出 100 Hz 連續動作軌跡;持續預訓練超過八個月。
- 沒有刻意設計情境學習:文件明言沒有為情境學習做架構修改、沒有內外層元學習迴圈、沒有鼓勵即興的輔助目標,也沒有把範例打包進情境窗的訓練基礎設施——單樣本能力是「自然浮現」。
- 模型架構、損失函數、參數量:文件未說明。
- 準備物理提示:取一段 3–12 秒的示範(人類手持夾爪、機器人自身軌跡、模擬器軌跡;有時甚至是人手直接在機器人攝影機前示範)。
- 插入情境窗:透過拖放介面把示範片段放進 30 秒情境窗;可放多段以組合行為。
- 閉迴路執行:情境窗剩餘容量持續放入滾動更新的即時觀測,模型輸出 100 Hz 動作軌跡;權重完全不變。
- 行為表現:模型需自行推斷示範目標並在新初始條件下即興應變;技能比微調模型脆弱,但仍保有一定擾動泛化與錯誤修正。
- 取資料:取樣一段 5 分鐘長(約 50 次示範)的資料序列;最極端情況只用 1 分鐘。
- 梯度下降:用與預訓練相近的超參數做 1–10 步更新;文件表示幾乎沒調校、沒做超參數掃描。
- 權重變化極小:十步調整在保留任務上權重變化不到 0.15%,作者解讀為「重新組態既有知識」而非建構新表徵。
- 執行:以適應後的權重閉迴路執行;微調步數越少,錯誤修正與即興行為反而越強。
容易誤解的地方
| 直覺上可能以為 | 論文實際 |
|---|---|
| 有專門的元學習或情境學習訓練機制 | 沒有:無架構修改、無元學習迴圈、無輔助目標;能力被描述為從大規模預訓練中自然浮現,成因僅有假說(突發性/齊夫結構、物理工作的重複循環) |
| 提示只能是同一台機器人的示範 | 可以是人類手持夾爪資料、機器人軌跡、模擬器軌跡(預訓練完全沒有模擬資料),有時人手直接示範也行 |
| 部署時有外部記憶庫會累積經驗 | 文件只描述 30 秒情境窗(示範+滾動即時觀測),沒有描述跨回合累積的記憶機制 |
| 單樣本就已經很可靠 | 平均 59%,作者自稱「中等」、任務簡單且短時程;情境學習得到的技能比微調後更脆弱 |
| 少樣本適應等於大量微調 | 只有 1–10 步、權重變化 <0.15%,更接近極低資料量的測試時訓練 |
| 文件有完整方法細節 | 這是部落格文章,未公開架構、損失、參數量與正式演算法;以上流程是依文章敘述整理 |
出處:GEN-1.5 部落格 §02 認識 GEN-1.5、§03 擴大預訓練、§04 情境中的單樣本學習、§05 組合式泛化、§06 Sim-to-Real、§07 人到機器人、§08 極少梯度步的適應(文件無演算法框與公式)
GEN-1.5:貼在小黑板上就會了
機器人有一塊只記得 30 秒的「小黑板」。把幾秒鐘的示範貼上去,它就會試著做做看。
機器人可以選兩條路
- 只看不練:把 3 到 12 秒的示範貼到小黑板上,大腦不改,馬上就做。大約 6 成會成功。
- 稍微練一下下:給它幾分鐘的示範,讓大腦只調整一點點(練 1 到 10 次)。大約 8 成多會成功。
- 還可以把兩段示範一起貼上去,它會一件接一件做完,中間怎麼銜接,它會自己想辦法。
- 這是公司部落格,很多細節(大腦長什麼樣子、有多大)沒有說。
- 只看不練學到的本事比較容易出錯,作者自己也說成功率只算「中等」。
大人版重點:30 秒情境窗放入示範+滾動即時觀測,零梯度執行(59%);或 1–10 個梯度步適應(83%,權重變化 <0.15%)。切換到大人版 →
像世界模型一樣思考,像 VLA 一樣行動:將世界模型表徵蒸餾進精簡機器人策略
Think Like a World Model, Act Like a VLA: Distilling World-Model Representations into Compact Robot Policies
一句話:在一般 VLA 訓練中只多加一項損失:讓 0.8B 學生策略的每視角影像 token 池化特徵,經一個用完即丟的 MLP 投影後,在方向上(餘弦)對齊凍結世界模型事先離線快取好的內部特徵。部署時的網路與未蒸餾基線完全相同,不需要額外推論成本。
先釐清名詞
- 學生策略(student, QwenGR00T)
- 真正被訓練、也是唯一被部署的模型:Qwen3.5-VL 0.8B 視覺-語言骨幹,後接 GR00T 風格的流匹配(flow-matching)動作專家。輸入 $o_t$ 包含一或多個相機視角、語言指令和本體感知狀態;輸出未來 $K$ 步的動作區塊 $\mathbf{a}_{t:t+K}$。
- 教師世界模型(teacher, Cosmos3-Nano)
- 取自 Cosmos 3(全模態 mixture-of-transformers 世界模型)的理解塔,也就是從統一 checkpoint 抽出的 Qwen3-VL-8B 推理器,其他塔都捨棄。讀取第 24 層影像 token 的隱藏狀態,每個視角做平均池化,得到 $D_t=4096$ 維向量。前向計算是確定性的,沒有擴散時間步,也不取樣。教師全程凍結。
- 教師特徵快取(offline teacher cache)
- 訓練開始前讓教師對所有訓練影格跑一次,把結果寫進以(軌跡 id、起始索引)為鍵的記憶體映射檔。每一列只存「每個相機視角一個池化向量」。在 LIBERO 上用 4 張 GPU 大約一小時完成。
- 每視角池化特徵 $f^S_c(o_t)$
- 從學生骨幹最後一層隱藏狀態 $h(o_t)\in\mathbb{R}^{L\times D_s}$ 中,取出視角 $c$ 的影像佔位 token 位置 $\mathcal{I}_c$,做平均池化(式 2)。只用影像 token,不含指令 token 和狀態 token。
- 投影器 $p_\phi$
- 兩層 MLP,把學生特徵寬度 $D_s$ 映射到教師寬度 $D_t$,所以兩個骨幹不必共用特徵空間或維度。這是只在訓練時存在的輔助頭,訓練結束後丟棄。
- 對齊損失 $\mathcal{L}_{\text{align}}$
- $1-\cos\big(p_\phi(f^S_c),\ \mathrm{sg}[f^T_c]\big)$(式 3),$\mathrm{sg}$ 為 stop-gradient。只要求方向一致、不要求數值重現,學生因此仍能保留動作目標所需的結構。
運作流程
- 載入凍結的教師:使用 Cosmos3-Nano 理解塔(Qwen3-VL-8B 推理器)。
- 餵入學生訓練資料的影格:送入全部 $C$ 個相機視角的畫面,教師完全不接觸動作。作者刻意排除動作通道,因為師生的動作參數化不同,而且這套方法要能適用任何教師。
- 取第 24 層影像 token 隱藏狀態:每個視角各自平均池化,得到 $f^T_c\in\mathbb{R}^{4096}$。
- 寫入記憶體映射快取:以(軌跡 id、起始索引)為鍵。之後訓練時不會再載入任何教師權重,所以師生甚至可以在彼此不相容的環境中執行,同一份快取也能給多個學生共用。
- 學生前向:$o_t$(多視角影像+指令+本體感知狀態)通過 Qwen-VL 骨幹,得到最後一層隱藏狀態 $h(o_t)$。
- 動作損失(原本的 VLA 訓練):動作專家以 $h(o_t)$ 為條件,沿流匹配路徑回歸速度。設 $\mathbf{a}^\tau=\tau\epsilon+(1-\tau)\mathbf{a}_{t:t+K}$,目標速度為 $\epsilon-\mathbf{a}_{t:t+K}$,得到 $\mathcal{L}_{\text{act}}$(式 1)。監督訊號是示範資料中的真值動作,不使用教師提供的動作目標。
- 每視角池化:對每個視角 $c$,把 $h(o_t)$ 中屬於該視角影像 token 的位置平均,得到 $f^S_c(o_t)$(式 2)。
- 投影並對齊:$p_\phi$ 把 $f^S_c$ 投影到 $D_t$ 維,再從快取讀出同一筆樣本的 $f^T_c$,計算餘弦損失 $\mathcal{L}_{\text{align}}$(式 3)。教師端做 stop-gradient。
- 總損失與更新:$\mathcal{L}=\mathcal{L}_{\text{act}}+\lambda_{\text{align}}\mathcal{L}_{\text{align}}$,所有實驗都用 $\lambda_{\text{align}}=0.5$。更新對象是學生骨幹、動作專家和投影器;教師沒有參與這一步,也沒有被載入。
- 訓練設定:4×A100-80GB、DeepSpeed ZeRO-2、有效 batch 256、cosine 學習率排程。
- 丟棄所有蒸餾模組:投影器和教師快取都不再使用,部署的網路在架構上與未蒸餾基線完全相同,流匹配步數也一樣。
- 產生動作:輸入 $o_t$,骨幹做一次 prefill,動作專家跑 4 個流匹配步,輸出動作區塊 $\mathbf{a}_{t:t+K}$。
- 成本:在 RTX 5090 上每次推論 32 ms、峰值顯存 1.86 GB。對照之下,DreamZero 需要 45.9 GB,在 H100 上每次約 3 秒。因此效能增益只能歸因於學到的表徵,而不是增加的容量或測試時運算。
- 部署時沒有記憶、沒有世界模型推演,也不更新權重:學生從頭到尾都不會預測未來畫面。
容易誤解的地方
| 直覺上可能以為 | 論文實際 |
|---|---|
| 部署時策略會先用世界模型「想像未來」再決定動作 | 部署的網路與未蒸餾基線完全相同(一次 prefill+4 個流匹配步,32 ms/1.86 GB)。世界模型只在訓練前離線跑一次,學生也從不預測未來畫面。 |
| 蒸餾時教師與學生同時前向,像一般的知識蒸餾 | 教師特徵事先算好、存進快取。訓練期間記憶體裡不會載入教師,學生只是從快取讀取目標向量。 |
| 蒸餾的是教師的動作或輸出分布 | 只對齊內部特徵(影像 token 的池化隱藏狀態)。動作損失仍由示範真值監督,作者刻意排除動作通道,教師也不提供任何動作目標。 |
| 學生特徵要逐值逼近教師特徵(例如 L2) | 使用經 MLP 投影後的餘弦損失,只要求方向一致。兩者的寬度可以不同($D_s\to D_t$),投影器訓練完就丟掉。 |
| 對齊整段序列的所有 token | 每個相機視角只取自己的影像 token 平均池化,各對應一個教師向量;文字 token 和狀態 token 都不參與對齊。 |
| 效果仰賴 Cosmos3-Nano 這個特定教師或特定層 | 改用 Fast-WAM 或 V-JEPA2-AC 當教師,LIBERO 成績分別比未蒸餾基線(95.3)高 1.6 和 1.2 分;換學生規模(4B)或骨幹(InternVL 1B)同樣有提升。對齊層的選擇影響不大,最後一層最好(49.8%)也最便宜,因此採用最後一層。 |
出處:§III-A 學生與式 (1)、§III-B 式 (2)(3) 與離線教師快取、§III-C 教師、圖 2、§IV-A 訓練設定、圖 1 推論成本、表 I–II、表 IV–VI。真實機器人實驗中各平台以約 30 分鐘遙操作示範微調(雙臂約 1 小時),論文未說明該微調是否也加入對齊項。
跟博士學看圖,自己去考試
一個小小的機器人大腦,上學時跟一位很懂世界的「博士大腦」學怎麼看圖。考試時不用帶博士,自己就很會了。
機器人是這樣做的
- 上學前:博士把所有練習照片看一遍,把看法寫成小抄。博士只做這一次。
- 上學時:小學生大腦照常學「看到這個畫面,手要怎麼動」。
- 同時加一個小功課:自己看照片的方向,要和小抄對齊。只要方向對,不用一模一樣。
- 工作時:小抄和對齊用的小工具都丟掉,只剩小學生大腦,一下子就算出動作。
- 工作時它不會先想像未來的畫面,博士也不在。
- 博士沒有教它怎麼動手,只教它怎麼看。怎麼動手是從示範資料學的。
大人版重點:凍結的 Cosmos3-Nano 理解塔離線快取第 24 層每視角池化特徵;0.8B 學生以 MLP 投影+餘弦損失對齊(λ=0.5),部署時移除投影器。切換到大人版 →