2023 - RT-2 視覺語言動作模型#
案件摘要#
2023 年 7 月,Google DeepMind 發表 RT-2(Robotics Transformer 2):第一個以視覺語言模型(VLM)直接輸出機器人動作的模型,即 VLA(Vision-Language-Action)。核心手法:把機器人動作離散化成 token,塞進語言模型的詞彙表:
動作空間被編碼為如 1 128 91 241 5 101 127 這樣的 token 序列。兇手不是更好的機器人硬體,而是「動作即語言」的編碼決策——網路級的視覺語言知識第一次直接轉移到機器人身上,成為世界模型與具身智能之間的橋樑。
前因 -- 為什麼會有這個案子#
- 機器人學習的長期困境:真實機器人資料極難蒐集——每台機器人每天只能產生數小時示範,遠少於網路文字的兆級 token。資料天賦被鎖死在實體世界。
- 前驅案件 RT-1(2022,DeepMind):以 Transformer 模仿 13 萬條機器人示範,動作離散化成 token,泛化有限——它證明架構可行,但缺知識。
- 2021–2022 年 CLIP(見「2021-CLIP多模態對齊.md」)與 PaLI、PaLM-E(2023,Google)等 VLM 證明:網路規模的視覺語言預訓練可以學出語義理解與物體常識——知識就在那裡,問題是怎麼接上動作。
- 2020 年 GPT-3(見「2020-GPT-3規模湧現.md」)的教訓:任務即提示、一切皆 token;2022 年 Whisper(見「2022-Whisper語音辨識.md」)把任務 token 推廣到聲學——同一手法等待在動作域重演。
- 動機(Ted conservatives、Karol Hausman、Vincent Vanhoucke 等人):機器人要走出實驗室,必須擁有語義泛化(「把恐龍玩具移到桌角」——即使從沒見過這個指令);只有 VLM 的網路知識能提供。
- 2023 年 LLM 界已驗證:語言模型可作為「通用介面」;RT-2 的賭注是動作也能走同一介面。
線索與推理 -- 數學式、程式、理論#
第一條線索:動作 token 化——離散化的魔法#
RT-1 已把連續動作離散化為 256 個 bin;RT-2 把這些 bin 登記為語言模型的額外 token:
VLM(PaLI-X、PaLM-E 為骨幹)的訓練目標完全不變——就是下一個 token 預測:
不需要新的損失函數、新的頭、新的訓練演算法——動作只是另一種「語言」。這延續了 ViT 的哲學:把非文字模態翻譯成 token 序列,其餘交給 Transformer。
第二條線索:共訓練——網路知識的轉移#
RT-2 的資料配方是混合訓練:
| 資料源 | 內容 | 提供什麼 |
|---|---|---|
| 網路 VLM 資料 | 圖文對、視覺問答 | 語義、物體常識、推理 |
| 機器人示範 | RT-1 的 13 萬條軌跡 | 動作與控制 |
共訓練的關鍵結果:即使 VLM 資料不含任何動作,機器人任務的表現反而更好——語義知識透過共享參數滲入動作決策。轉移是免費的,這是共訓練最驚人的判決。
第三條線索:語義泛化的判決書#
| 任務類型 | RT-1 | RT-2 |
|---|---|---|
| 看過的任務(成功率高) | ~85% | ~85% |
| 未見過的語義任務(Emergent) | ~32% | ~62% |
| 推理型任務(「把可移到火星的東西拿來」) | 幾乎為零 | 明顯成功 |
未見過任務的成功率翻倍——RT-2 能執行「把恐龍拿近暴龍玩具」「把茶包移到杯中像自己最喜歡的口味」這類需要世界知識與推理的指令。泛化的跳升不來自更多機器人資料,而來自網路知識。
第四條線索:湧現與代價#
RT-2 推論速度慢(1–3 Hz),因為每次決策都要跑一次 VLM 前向——語義泛化以速度為代價。但推理中觀察到湧現能力:符號理解、鏈式推理、多階段任務分解,皆來自 VLM 骨幹而非機器人訓練。這暗示:具身智能的瓶頸不在控制,而在知識與推理。
第五條線索:動作離散化的取捨#
連續動作離散化成 256 bin 是 RT-2 的關鍵妥協:
| 方案 | 優點 | 缺點 |
|---|---|---|
| 連續動作輸出(回歸頭) | 控制精度高 | 無法用語言模型骨幹、訓練不穩 |
| 離散 token(256 bin) | 與語言模型完全相容、可共訓練 | 控制粒度受限於 bin 解析度 |
「與語言模型相容」壓倒「控制精度」——這是範式選擇的經典取捨:跟上一個強大的範式,即使犧牲局部的最優。日後的 π0 等模型嘗試以 flow matching 混合兩者,但「動作即 token」已定調了 VLA 世代的設計語言。
結案 -- 後果與影響#
- VLA 成為機器人學習的新範式:此後 OpenVLA、π0(Physical Intelligence)、RT-X 資料集(Open X-Embodiment,跨機構機器人資料)相繼出現,機器人學習從「每任務訓練」轉向「基礎模型 + 微調」。
- 矽谷機器人新創潮:2023–2024 年 Physical Intelligence、Skild、Figure 等新創以 VLA 為核心募集數億美元——「通用機器人」從論文願景變成資本市場的敘事。
- 資料瓶頸的新解法:跨具身(cross-embodiment)資料共享、模擬器生成、影片學習(video-conditioned policy)成為活躍方向——實體世界的資料天花板上出現了幾個破口。
- 「動作即語言」成為通用設計:離散化 token 的手法被廣泛採用,證明 Transformer 的統一哲學延伸到第三種模態——像素、文字、動作。
- 機器人與世界模型的關係成為顯學:RT-2 靠 VLM 的語義世界知識,但不做未來預測;2024 年的「2024-VJEPA世界模型.md」提出預測表徵的路線,主張智能的本質是預測而非生成——兩條路線在具身智能上交會。
- 跨具身資料共享:Open X-Embodiment 匯集 22 種機構、60 萬條軌跡、34 種機器人,證明資料規模化在機器人域啟動——機器人版的「Chinchilla 時刻」開始倒數。
- 埋下伏筆:RT-2 證明 VLM 可以輸出動作,但真正的「世界模擬器」爭議在 2024 年 Sora(見「2024-Sora世界模型.md」)爆發——生成影片是否等於理解世界?RT-2 站在中間:它理解世界,但不生成世界。
- 偵探結語:RT-2 案件的核心推理只有一句話——動作離散化成 token 之後,機器人學習與語言模型的邊界就消失了。ViT 把影像翻譯成 token(2021),Whisper 把語音翻譯成 token(2022),RT-2 把動作翻譯成 token(2023)——「一切皆 token,其餘交給 Transformer」完成了對第三種模態的征服。剩下的問題只有一個:世界的未來本身,能被翻譯成 token 嗎?Sora 說能,V-JEPA 說不必——懸案待決。
關鍵人物與文獻#
- Anthony Brohan、Noah Brown、Karol Hausman、Vincent Vanhoucke 等(Google DeepMind):《RT-1: Robotics Transformer for Real-World Control at Scale》(2022)。
- Anthony Brohan 等:《RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control》(2023)。
- Jean-Baptiste Alayrac 等:PaLI(2022);Danny Driess 等:PaLM-E(2023)——VLM 骨幹。
- Open X-Embodiment Collaboration:《Open X-Embodiment: Robotic Learning Datasets and RT-X Models》(2023)。
- 偵探手記:本篇是「一切皆 token」三部曲的終章——ViT 譯影像(2021)、Whisper 譯語音(2022)、RT-2 譯動作(2023);三次翻譯共用同一句咒語:「其餘交給 Transformer」。
- 相關案件:2021-CLIP多模態對齊.md、2024-VJEPA世界模型.md、2024-Sora世界模型.md
補充 -- 程式實作(python + pytorch)#
本案動作 token 化(7 維×離散 bins+交叉熵)+VLM 端對端訓練的最小可執行版本,見 _code/2023-RT2.py(已實測可跑,CPU 約 1 分鐘):
# 2023 - RT-2: a_t ∈ R^7 -> bins 離散化 -> token; L = -E[log p(action tokens|image, instruction)]
import torch
import torch.nn as nn
import torch.nn.functional as F
class RT2Mini(nn.Module):
def __init__(self, d=48, bins=32):
super().__init__()
self.bins = bins
self.venc = nn.Sequential(nn.Linear(16, 64), nn.ReLU(), nn.Linear(64, d))
self.tenc = nn.Embedding(20, d) # 指令 token (VLM 共訓練的縮影)
layer = nn.TransformerEncoderLayer(d, 4, d * 2, batch_first=True)
self.tr = nn.TransformerEncoder(layer, 2)
self.head = nn.Linear(d, 7 * bins) # 7 維動作 × 離散 bins
def forward(self, v, t):
z = torch.cat([self.venc(v).unsqueeze(1), self.tenc(t)], 1)
h = self.tr(z)[:, -1]
return self.head(h).view(-1, 7, self.bins)
def main():
torch.manual_seed(0)
N, BINS = 1200, 32
V = torch.randn(N, 16)
T = torch.randint(0, 20, (N, 4))
A = torch.zeros(N, 7, dtype=torch.long) # 7 維全是輸入的確定性函數
A[:, :2] = ((V[:, :2] + 3) / 6 * (BINS - 1)).long().clamp(0, BINS - 1)
A[:, 2:4] = ((V[:, 2:4] + 3) / 6 * (BINS - 1)).long().clamp(0, BINS - 1)
A[:, 4] = T.sum(1) % BINS # 夾爪由指令決定 (語義 grounding)
A[:, 5] = ((V[:, 4] + T[:, 0].float() / 10 + 3) / 6.2 * (BINS - 1)).long().clamp(0, BINS - 1)
A[:, 6] = ((V[:, 5] - T[:, 1].float() / 10 + 3) / 6.2 * (BINS - 1)).long().clamp(0, BINS - 1)
net = RT2Mini(bins=BINS)
opt = torch.optim.Adam(net.parameters(), lr=5e-3)
for ep in range(200):
opt.zero_grad()
loss = sum(F.cross_entropy(net(V, T)[:, j], A[:, j]) for j in range(7)) / 7
loss.backward()
opt.step()
with torch.no_grad():
pred = net(V, T).argmax(-1)
acc = (pred == A).float().mean().item()
tol = ((pred - A).abs() <= 1).float().mean().item()
err = (pred[:, :2].float() - A[:, :2].float()).abs().mean().item()
print(f"動作 token 準確率={acc:.3f} (±1 bin 容忍={tol:.3f}) 位置維平均 bin 誤差={err:.2f}/{BINS}")
if __name__ == "__main__":
main()
執行結果(python3 _code/2023-RT2.py,torch 2.12.0):
動作 token 準確率=0.708 (±1 bin 容忍=0.779) 位置維平均 bin 誤差=0.69/32
結論: 動作即另一種語言 -- 誤差以 bin 計, 容忍內即抓得住 (VLM 語義泛化)
程式解說:head 輸出 7×bins 即本文第一條線索的離散化全文——連續動作切 32 格(論文 256 格),控制問題變成語言建模問題,損失就是交叉熵。第 4 維(夾爪)只由指令 token 決定:網路必須讀懂指令才能猜對——VLM 共訓練的語義 grounding 縮影。位置維平均誤差 0.69 格:機器人不在乎 argmax 全對,只在乎誤差多小——±1 bin 容忍 0.78 即抓得住。偵探手記的咒語在此:影像、語音之後,動作是第三個被譯成 token 的模態,「其餘交給 Transformer」。