論文導讀:Mechanistic Steering——不訓練、不用獎勵,直接調 VLA 內部神經元改變機器人行為

Bear Häon, Kaylene Stocking, Ian Chuang, Claire Tomlin · 2025原文連結

一句話讀懂這篇論文

VLA(視覺—語言—動作模型)是從大型視覺語言模型微調來的,最後只輸出機器人動作。那它內部還在用「語言」思考嗎?這篇論文發現:是的。模型內部有很多神經元仍然對應清楚的語意概念,例如「slow(慢)」「up(上)」。更有趣的是,直接把這些神經元的活性調高,機器人的動作真的會變慢、變高——不需要重新訓練、不需要獎勵訊號,也不需要跟環境互動。

論文資訊卡

  • 標題:Mechanistic Interpretability for Steering Vision-Language-Action Models
  • 作者:Bear Häon、Kaylene Stocking(共同一作)、Ian Chuang、Claire Tomlin——UC Berkeley 電機與資訊工程系
  • 發表:CoRL 2025(PMLR 305: 2743–2762,arXiv 2509.00328)
  • 程式碼:github.com/Physical-AI-Safety-Institute/mechanistic-steering-vlas(支援 OpenVLA + LIBERO、π0 + LeRobot 兩套環境)
  • 定位:作者稱這是第一個透過內部表示來解讀並引導 VLA 的框架,把大型語言模型的機制可解釋性技術用在大型機器人模型上

問題背景

VLA 部署後的信任問題

VLA 的目標是「開箱即用」:π0 在 DROID 平台上常能零樣本完成任務,Gemini Robotics 也能透過程式碼生成做零樣本控制。這跟工廠或倉庫裡對每個任務嚴格評估、認證的做法很不一樣——機器人會被放進全新環境,被期待直接表現良好。這帶來安全、穩健、透明的問題:什麼時候可以相信 VLA 會安全地行動?失敗時要怎麼診斷和修正?

傳統機器人流程有明確的運動學、動力學、控制模型,出了問題可以追。VLA 是一個巨大的黑盒,缺乏這種機制層面的理解。

從大型語言模型借工具

大型語言模型的機制可解釋性研究已經有不少成果:發現特定注意力頭的功能、在模型活性中找出語意可解釋的概念,甚至用來診斷模型的實際問題。這篇論文問:這些工具能不能也用來理解並塑造機器人基礎模型的行為?

為什麼選 FFN value vector,而不是稀疏自編碼器

稀疏自編碼器(SAE)能找出更細緻、分散在多個神經元上的概念,但需要大量資料訓練,結果也依資料集而異。在機器人領域這是很大的障礙:開源資料集規模小,也不太可能涵蓋模型從 VLM 預訓練中學到的所有語意概念。所以作者專注在單一神經元層級的特徵——不需要任何額外訓練資料就能解讀和引導。

方法基礎:FFN value vector 是什麼

Transformer 每一層都有一個前饋層(FFN):

FFN(x)=f(x)⊤W\text{FFN}(x) = f(x)^\top W
  • x∈Rnx \in \mathbb{R}^n:輸入
  • f(x)∈Rmf(x) \in \mathbb{R}^m:跟輸入有關的活性(每個神經元一個值)
  • W∈Rm×nW \in \mathbb{R}^{m\times n}:跟輸入無關的參數矩陣

把 WW 的第 ii 列記作 w(i)w^{(i)},可以改寫成:

FFN(x)=∑i[f(x)]i w(i)\text{FFN}(x) = \sum_i [f(x)]_i\, w^{(i)}

意思是:FFN 的輸出是一組固定向量 w(i)w^{(i)} 的加權和,權重是當下的神經元活性。這些 w(i)w^{(i)} 稱為 value vector,因為跟輸入無關,可以看成 FFN 輸出的「基底」。

關鍵在於,value vector 跟 Transformer 最終輸出位於同一個線性空間,所以可以把它乘上詞嵌入矩陣,當成一個對所有詞彙的機率分佈來看。如果某個 value vector 投影後機率最高的詞是「slow」「careful」「gently」,就有理由推測這個神經元跟「動作放慢」有關。

這個方法來自 Geva 等人(2022)對語言模型的研究:Transformer 的前饋層是透過「在詞彙空間中推高某些概念」來建構預測。

發現一:VLA 訓練後,神經元仍保留語意

VLA 訓練時,常見做法(RT-2、OpenVLA、π0-FAST)是把一小部分很少用的詞彙 token 指定為「動作 token」,再解碼成控制輸出。訓練後模型的最終輸出只有動作 token。那它內部還保留語言式的表示嗎?

作者用 π0 和它的基底 VLM PaliGemma-3B 比較(PaliGemma 的詞彙量比 OpenVLA 基底 LLaMA-2-7B 大,單一 token 比較好解讀):

  • 從 VLM 和 VLA 的每一層各隨機抽 10 個 value vector
  • 看前 30 個詞中,是否至少 4 個遵循共同模式(沿用 Geva 等人的方法)

結果:VLM 和 VLA 的 value vector 有可辨識模式的比例差不多,其中很多是語意上有意義的。VLA 訓練並沒有讓 FFN 失去概念的組織,即使最終只輸出非語意的動作 token。

論文的另一個量化結論:不到 25% 的 FFN 神經元被重新接線用於動作預測,其餘有很大一部分代表清楚、語意可解釋的概念。

發現二:動作 token 出現在每一層

統計每一層 value vector 的前 100 個詞中有多少是動作 token:OpenVLA 和 π0 都是在最後一層最多,但每一層都至少有幾個百分點。

這代表 VLA 內部不是「前面幾層想任務、後面幾層想控制」的硬切換,而是從最早的計算就開始持續推理和修正動作預測。

發現三:任務微調主要改的是動作 token

把基底 π0-FAST 跟在 DROID 上微調過的 checkpoint 比較,用雙比例 z 檢定看每個詞在 value vector 中出現次數的顯著增減:

  • 最顯著的差異幾乎全是動作 token
  • 原因是微調後的模型對動作 token 的分佈變得更不均、更專門化,預訓練模型則比較平均
  • DROID 任務指令中最常見的詞,在微調後的 value vector 中出現頻率提高約 1.2 倍,影響溫和

結論:微調的主要效果是重新接線,讓模型更容易產生微調任務用到的動作 token、忽略其他的,對語意 token 的影響不大。

以上三個發現說明 VLA 在所有層混合使用預訓練的語意概念和動作 token 來推理。但這還不能證明特定語意概念跟機器人行為之間有因果關係。如果有,應該可以透過介入語意概念來改變行為。

方法:活性引導(Activation Steering)

整個流程:

shell
1. 抽出每一層 FFN 的 value vector w(i)
2. 乘上詞嵌入矩陣,投影到詞彙空間,看每個 value vector 最像哪些詞
3. 依語意分群:手動挑選,或對語意嵌入做 kNN
   → 得到「fast 群」「slow 群」「up 群」「careful 群」……
4. 推論時,把選定群組的神經元活性設成固定值 α

形式上,選一個神經元子集 S⊆{1,…,m}S \subseteq \{1, \ldots, m\},覆寫它們的活性:

f~(i)(x)={α,i∈S[f(x)]i,其他FFNsteered(x)=∑i=1mf~(i)(x) w(i)\tilde{f}^{(i)}(x) = \begin{cases} \alpha, & i \in S \\ [f(x)]_i, & \text{其他} \end{cases} \qquad \text{FFN}_{steered}(x) = \sum_{i=1}^{m}\tilde{f}^{(i)}(x)\, w^{(i)}

這會在殘差流中產生一個偏移 Δx=FFNsteered(x)−FFN(x)\Delta x = \text{FFN}_{steered}(x) - \text{FFN}(x),一路傳到後面的層,改變最終的動作 token 分佈。

實作:OpenVLA(PyTorch)在 FFN 的 down_proj 上掛 forward hook 覆寫活性;π0(JAX)則把神經元索引 SS 和係數 α\alpha 傳進重構過的 FFN。兩者實現的是同一個運算,可用於即時機器人控制。

模擬實驗:OpenVLA + LIBERO-Long

LIBERO-Long 有 10 個長序列操作任務(物體擺放、收納、操作家電等)。使用 7B 參數的 OpenVLA、LIBERO-Long 微調版本,在 NVIDIA H100 上執行。執行結果以固定種子決定,可以精確比較有介入和沒介入的軌跡。

動作幅度:fast vs. slow

手動挑選前幾個投影詞反映「動作幅度」語意的 value vector,組成 fast 群和 slow 群:

  • 群組大小:10、20
  • 活性強度 α\alpha:2、4、6、8、10、20
  • 每種設定跑 10 個任務 × 每任務 10 次

結果:

  • fast 群一致地讓末端執行器位移更大,平均比 slow 群多 27.73%,部分設定最多多 148.54%
  • 10 組配對比較全部有統計顯著差異(p < 0.001,配對 t 檢定)
  • 效果量 d 從 −0.091 到 1.419,顯示方向一致的影響

只啟動語意可解釋的 value vector,就能調整行為的方向。

介入位置:早層 vs. 晚層 vs. 全部

用 kNN 在投影後的語意嵌入上找出「up」主題的群組,只在早層、晚層或所有層注入:

注入位置平均 Y 方向位移 μ
全部層0.098
晚層0.086
早層0.007

效果量:早層 vs. 晚層 d = −0.376、早層 vs. 全部 d = −0.321、晚層 vs. 全部 d = −0.062(可忽略)。全部層介入平均效果最強,但晚層在較高強度和較大群組時也能追上。這符合預期:明確的動作語意集中在模型後段。

真實機器人實驗:π0-FAST + UR5

用 3B 參數的 π0-FAST(JAX,NVIDIA A4500),測試能不能引導「二元相反」的控制:慢 vs. 快、低 vs. 高。

為什麼要先微調:作者的 UR5 平台不在 π0-FAST 的訓練資料中,沒辦法零樣本完成任務。所以用 LoRA 在自己蒐集的小資料集上微調。這樣做也有好處:可以控制整個資料蒐集過程,刻意在資料中加入想要引導的行為變化——但訓練時不在提示中標註這些變化,測試 VLA 能不能把這些行為跟高階語意概念連起來。

兩個任務:

  • 低/高搬運:撿起玩具企鵝放進籃子,75 段示範,搬運時舉起的高度有未標註的變化
  • 慢/快搬運:撿起玩具海豹放到指定盤子,120 段示範,動作速度有變化

比較方式:

  1. 不介入
  2. 在提示前面加描述詞(例如「low」)
  3. 隨機挑神經元調高
  4. 調高語意群組(low/high、slow/fast)

評估:低/高任務每種變體 10 次,記錄末端執行器相對底座的最高高度;慢/快任務則同時對所有變體推論、但只執行無介入的動作,測量每一步之間末端執行器的平均位移。

結果:

  • low 介入產生最低的軌跡,slow 介入產生最慢的動作,確實改變了行為
  • 但相反方向(high、fast)跟不介入差不多。作者推測模型本來就把基準軌跡「認為」是又快又高的
  • 隨機介入跟不介入差別很小,表示選語意有意義的神經元,比隨便挑神經元更能有效引導
  • 引導介入比在提示加描述詞更有效:兩個任務中,改提示的影響都比較弱

限制

  • 語意模糊與表示漂移:分群依據的是詞彙語意相似度,不是實際行為結果。kNN 假設局部相似代表共享語意,但實際上群組可能混雜不同行為,例如「慢而小心」和「慢而卡住」,導致效果不一致。而且同一個 value vector 的意義在不同模型、任務、時間點可能改變——在某個情境對應「up」的向量,換個情境行為可能不同
  • 微調與可引導性:還不完全理解 VLA 微調如何影響可引導性。有些語意方向在微調後仍有因果影響,但也可能被改變得更難存取
  • 評估範圍:只做了單臂的夾取放置任務,延伸到移動、雙臂平台和非結構化環境是重要的下一步

實際跑一次的觀察

把官方程式碼接到 π0 那條線(使用 pi0_fast_droid checkpoint)在 Colab 上跑過一次,分兩段:

  • Phase A(只讀權重,不需要資料):挑出官方設定檔 dictionaries.yaml 點名的神經元(分 high_cluster、low_cluster 兩組),各自投影到詞彙表,列出最接近的 10 個詞。這些就是後面實際拿去引導的神經元
  • Phase B(引導示範):輸入一張相機畫面 + 手臂當下的關節角度 + 一句指令,比較「不介入」和「調高引導神經元」兩個版本的預測動作,8 個維度(7 個關節角度變化 + 夾爪開合)。用真實 DROID 資料集的畫面(桌上有鍋子,指令是「Put the marker in the pot」)和合成的假資料各跑一次,假資料只用來確認整條流程走得通

幾個實務上的注意事項:

  • 讀 pi0_fast_droid checkpoint 需要大記憶體,標準 RAM 的 Colab 會被記憶體 cgroup 砍掉,要用 High-RAM
  • 專案釘死的套件版本跟 Colab 的 Python 版本對不上,需要另外建一個 Python 3.10 環境
  • 官方 run_eval.py 不會把相機畫面存成檔案,要拿到畫面得照官方組 observation 的方式自己重建
  • 這種測法只能看到「動作預測值有被改變」,看不到「引導之後任務有沒有做得更好」——要驗證後者,需要真的在模擬器或機器人上執行

影響與定位

這篇論文的意義在於提供了一個可解釋的控制旋鈕:

  • 對研究者:VLA 微調後仍保留結構化、可組合的語意,而且這些語意跟動作有因果關係。這些效果在沒有明確行為監督的情況下出現,代表 VLA 在預訓練中內化的語意概念能支援跨層的組合推理
  • 對實務者:一個簡單、可解釋的部署後行為調整工具,不需要重新訓練,直接用在現有策略上,可以快速測試和調整

跟其他「不重訓就改變策略」的方法比較:

方法從哪裡下手需要什麼
改提示詞輸入什麼都不用,但效果弱
V-GPS輸出(取樣多個動作再挑)另外訓練一個價值函數
Mechanistic Steering模型內部(神經元活性)能存取模型權重和中間層

相關論文推薦

參考資料

相關術語

訂閱 RoboTech Lab 電子報

每週一封,整理新的教學、論文導讀與機器人業界動態。隨時可以取消訂閱。