論文導讀:AHA——會說出「機器人為什麼失敗」的視覺語言模型

Jiafei Duan, Wilbert Pumacay, Nishanth Kumar, Yi Ru Wang, Shulin Tian, Wentao Yuan, Ranjay Krishna, Dieter Fox, Ajay Mandlekar, Yijie Guo · 2025原文連結

一句話讀懂這篇論文

讓大型語言模型或視覺語言模型幫機器人寫獎勵函數、規劃任務、生成軌跡已經很常見,但它們很不擅長發現自己哪裡做錯了。AHA 是一個專門用來看機器人操作畫面、回答「這一步成功了嗎?沒成功的話,原因是什麼?」的視覺語言模型。訓練資料是用模擬器故意把成功的示範弄壞自動生成的,結果它在真實機器人的失敗資料上,也比 GPT-4o 判斷得更準、解釋得更好。

論文資訊卡

  • 標題:AHA: A Vision-Language-Model for Detecting and Reasoning Over Failures in Robotic Manipulation
  • 作者:Jiafei Duan、Wilbert Pumacay、Nishanth Kumar、Yi Ru Wang、Shulin Tian、Wentao Yuan、Ranjay Krishna、Dieter Fox、Ajay Mandlekar、Yijie Guo(後兩位共同指導)
  • 機構:NVIDIA、華盛頓大學、聖巴勃羅天主教大學、MIT、南洋理工大學、Allen AI
  • 發表:ICLR 2025(arXiv 2410.00371)
  • 專案頁:aha-vlm.github.io
  • 定位:跟 SAFE 一樣處理「機器人失敗偵測」,但路線不同。SAFE 讀 VLA 內部的隱藏狀態做即時偵測;AHA 是一個外部的 VLM 觀察者,用語言解釋失敗原因

問題背景

基礎模型在開放世界任務上進步很多,但仍有幻覺問題——輸出偏離事實,而且模型自己察覺不到。人類能從失敗中學習(小孩學溜冰、練揮桿),RLHF 也是透過人類回饋讓模型往正確方向調整。問題是:**能不能讓模型自己偵測、推理自己的失敗?**這在機器人領域特別迫切,因為環境是隨機、不可預測的。

LLM/VLM 已經被整合進機器人系統做很多事:

  • 自動生成強化學習的獎勵函數(例如 Eureka)
  • 替運動規劃產生任務計畫
  • 零樣本生成機器人軌跡

它們擅長「執行」,但不擅長偵測和推理失敗。比如機器人在任務中途掉了東西,人類觀察者會立刻發現並修正,機器人卻常常渾然不覺地繼續下一步。

既有的失敗偵測研究大多把現成的 VLM/LLM 當成功偵測器用,或者對 VLM 做指令微調來偵測失敗,但幾乎都只做二分類——只說成功或失敗,不解釋原因。

失敗分類:七種常見失敗模式

作者檢視了 DROID、Open X-Embodiment 等資料集,以及行為複製策略的實際執行結果(包含遙操作和自主策略的失敗),參考 REFLECT 的研究,整理出七種失敗模式:

失敗模式類型描述
No_Grasp(沒夾)物體相關夾爪到了該夾的位置,卻沒閉合就繼續下一步
Slip(滑落)物體相關已經夾起物體,移到下一個關鍵姿態途中夾力鬆掉、物體滑落
Translation(位置偏移)動作相關移向關鍵姿態時,X、Y 或 Z 方向有偏移,導致任務失敗
Rotation(角度錯誤)動作相關位置對了,但 roll、yaw 或 pitch 有偏差
No_Rotation(沒轉)動作相關位置對了,但完全沒做該做的旋轉
Wrong_action(順序錯)動作相關動作順序錯誤,例如「把方塊放進抽屜」時,抽屜還沒開就把方塊移過去
Wrong_object(拿錯東西)物體相關對錯的物體動作,例如「拿紅杯」卻拿了綠杯

FailGen:把成功示範「弄壞」

為什麼用 RLBench

RLBench 原生提供任務示範的關鍵姿態(keyframe)。基於關鍵姿態的表示,可以很靈活地更換操作對象、改變動作順序。FailGen 是包在 RLBench 外面的環境封裝,透過三種方式修改軌跡:擾動關鍵姿態、替換物體、重排關鍵姿態順序。

每種失敗怎麼生成

  • No_Grasp:在相關關鍵姿態上拿掉夾爪開合指令
  • Slip:夾爪閉合後不久,定時放開
  • Translation / Rotation:擾動關鍵姿態的位置 / 朝向
  • No_Rotation:限制關鍵姿態的旋轉軸
  • Wrong_action:重排關鍵姿態的執行順序
  • Wrong_object:把原本給某個物體的關鍵姿態改派給另一個物體,保持相對姿態,模擬拿錯東西

系統化掃描

對每個 RLBench 任務的所有關鍵姿態,掃過七種失敗模式的所有可能設定,用模擬器的成功條件檢查器確認是否真的導致整體失敗,自動產生 YAML 設定檔,記錄失敗模式、參數(距離、動作順序、夾力強度等)和要擾動的關鍵姿態。再搭配描述「兩個關鍵姿態之間機器人在做什麼」的語言模板,系統化地生成問答配對。

最後得到 AHA 資料集:79 個 RLBench 任務、約 4.9 萬筆失敗影像—問題配對。作者也用同一套流程在 ManiSkill 模擬器上生成失敗資料,並改寫既有的 RoboFail 資料集用於評估,證明 FailGen 能套用到不同模擬器。

方法

失敗推理的問題設定

把操作軌跡切成一連串子任務 {S0,S1,…,St}\{S_0, S_1, \ldots, S_t\},每個子任務由兩個相鄰的關鍵姿態組成(例如「堆方塊」中的「拿起方塊」)。對目前的子任務:

  1. 先回答二元判斷:「Yes」或「No」
  2. 如果是「No」,再用簡短的自由語言解釋為什麼失敗

範例問答:

問:針對給定的子任務,先從 ["yes", "no"] 中判斷是否成功,再解釋目前子任務失敗的原因。

答:No,機器人夾爪以錯誤的 roll 角度旋轉。

輸入影像怎麼組

VLM 只吃一張圖,要怎麼表達「時間」?做法是把多張影像拼成一個矩陣:

  • 每一欄是時間序列:從左到右依序放到目前子任務為止的所有關鍵姿態,還沒發生的關鍵姿態用白色區塊補上
  • 每一列是一個相機視角 {V0,V1,…,Vn}\{V_0, V_1, \ldots, V_n\},用多視角減少遮擋問題

再在提示中附上詳細的任務描述。這種格式統一用在所有微調和評估資料上。

訓練資料混合

除了 4.9 萬筆 AHA 資料,還一起微調通用資料,避免模型忘記預訓練知識:

來源數量範例
AHA 資料集49K判斷子任務成功與否並解釋失敗原因
VQA(LLaVA)665K「圖中的貓在做什麼?」
LVIS100K「找出所有抽屜」→ 邊界框中心與尺寸

模型與微調

沿用 LLaVA-v1.5 的指令微調流程:影像編碼器 → 2 層線性投影器 → 跟語言 token 串接 → Transformer 語言模型(LLaMA-2-13B)。所有元件用預訓練權重初始化,只更新投影器和語言模型,影像編碼器和 tokenizer 凍結。模型以自迴歸方式預測回答 token。另外也訓練了 7B 版本。

實驗設定

三個評估資料集,全部沒有在微調中出現過,各自測試一種泛化:

資料集內容測試什麼
AHA(Test)10 個 RLBench 任務、1.1 萬筆,跟訓練任務不重疊新任務、新行為
ManiSkill-FailManiSkill 中 4 個任務、130 筆不同模擬器、不同視角
RoboFail7 個 UR5 真實機器人任務的失敗真實世界、不同機器人形態

四個評估指標(因為要公平比較自由語言推理):

  • ROUGE-L:候選和參考文字的最長共同子序列
  • 餘弦相似度:文字嵌入的相似度
  • LLM 模糊比對:用 Anthropic 的 claude-3-sonnet 以師生提示的方式評估語意相似度
  • 二元成功率:成功/失敗判斷的正確率

比較對象:LLaVA-v1.5-13B(AHA 的基底模型)、LLaVA-NeXT-34B、Qwen-VL、Gemini-1.5 Flash、GPT-4o、GPT-4o 5-shot 情境學習。

實驗結果一:失敗偵測與推理

模型資料集ROUGE-L餘弦相似度二元成功率LLM 模糊比對
LLaVA-v1.5-13BAHA Test0.0610.2080.0800.648
ManiSkill-Fail0.0000.2080.0220.270
RoboFail0.0000.2030.0000.404
LLaVA-NeXT-34BAHA Test0.0130.2310.0170.626
ManiSkill-Fail0.0010.1950.0070.277
RoboFail0.0180.1880.0170.351
Qwen-VLAHA Test0.0000.1610.0000.426
ManiSkill-Fail0.0370.3010.1160.034
RoboFail0.0000.1590.0000.050
Gemini-1.5 FlashAHA Test0.1200.2310.3710.566
ManiSkill-Fail0.0030.1210.0140.032
RoboFail0.0000.0420.0000.393
GPT-4oAHA Test0.2510.3080.5000.784
ManiSkill-Fail0.1420.3350.6880.453
RoboFail0.1140.3180.5540.438
GPT-4o-ICL(5-shot)AHA Test0.2260.3800.6110.776
ManiSkill-Fail0.3410.4290.9710.630
RoboFail0.2360.4290.5710.418
AHA-7BAHA Test0.4340.5740.6910.695
ManiSkill-Fail0.6090.6801.0000.532
RoboFail0.2040.3940.6250.439
AHA-13BAHA Test0.4460.5830.7020.768
ManiSkill-Fail0.6000.6811.0000.633
RoboFail0.2800.4710.6430.465
  • AHA-13B 在每個資料集、幾乎每個指標都最好。唯一例外是 AHA Test 的 LLM 模糊比對,GPT-4o 高不到 3%
  • 對第二名 GPT-4o-ICL 的平均差距:AHA Test 12.6%、ManiSkill-Fail 13.4%、真實世界的 RoboFail 4.9%
  • 整體比 GPT-4o 平均高 20% 以上,比基底模型 LLaVA-v1.5-13B 高 43% 以上
  • 很多通用 VLM 的二元成功率接近 0,代表它們連「這步有沒有成功」都判斷不了,更別說解釋原因

實驗結果二:沒有忘記通用知識

模型MMBenchScienceQATextVQAPOPEVizWiz
LLaVA-13B(LLaMA-2)67.7073.2167.4088.0053.01
AHA-13B(LLaMA-2)65.2071.9465.2085.7453.45

跟同樣預訓練權重、只用 VQA 資料微調的 LLaVA 比,差距約 1.5%。AHA 仍然能當一般用途的 VLM。

實驗結果三:資料越多越好

用 3k、6k、12k、34k、48k、60k 筆 AHA 資料分別微調,在 ManiSkill-Fail 上評估。四個指標的平均二次擬合梯度為 0.0022,顯示有隨資料量增加的趨勢,代表繼續用 FailGen 擴大資料可能還會進步。

實驗結果四:接進下游機器人系統

AHA 的價值不只在於回答得準,而是它的失敗解釋能直接回饋給其他系統。作者把它接進三種框架,跟用 GPT-4o 做同樣工作比較。三者平均,任務成功率比 GPT-4 系列高 21.4%。

1. 強化學習獎勵生成(Eureka)

Eureka 用 LLM 寫獎勵函數,根據訓練統計做「反思」再修改。作者把它移植到 ManiSkill,在反思時額外加入評估執行影像的失敗解釋(由 AHA-13B 或 GPT-4o 提供)。五個從桌面到移動操作的強化學習任務,先取一個獎勵函數,再給兩輪 GPT API 呼叫的迭代預算,用 PPO 訓練、1000 步評估。AHA 的回饋讓五個任務都在預算內成功,成功率比 GPT-4o 高 22.34%。

2. 任務與運動規劃(PRoC3S)

PRoC3S 讓 LLM 寫一個生成計畫的語言模型程式,在模擬器裡大量測試,找到有效計畫才在機器人上執行;找不到就把環境的失敗資訊回饋給 LLM 重寫。但傳統做法只能檢查有限幾種失敗(逆運動學無解、碰撞等)。作者用兩種方式加入 VLM:

  1. 把失敗計畫的模擬視覺化給 VLM,請它解釋失敗原因,回饋給 LLM
  2. PRoC3S 找到「有效」計畫後,再給 VLM 看一次,確認這個計畫真的達成語言目標,沒有的話觸發重新規劃

三個任務各 10 次,最多 100 個取樣步、三輪回饋。AHA 比 GPT-4o 高 36.7%。

3. 零樣本資料生成的子任務驗證(Manipulate-Anything)

Manipulate-Anything 用多個 VLM 零樣本生成機器人軌跡,其中有一個子任務驗證模組,看過去和現在的畫面判斷子任務是否完成,決定繼續或重試。把原本的 GPT-4V 換成 AHA-13B,四個 RLBench 任務各 25 次,整體成功率平均提升 5%。

限制

  • AHA 輸出的推理跟微調資料中的失敗情境很接近,對分類以外的失敗模式,還不夠開放
  • FailGen 目前是從模擬中擾動示範來生成失敗;如果能把大型預訓練策略蒸餾到模擬中執行多樣任務,再從中取樣失敗,可以得到更開放的失敗範例

影響與定位

AHA 的兩個主要貢獻:

  1. 把失敗偵測從二分類變成語言推理。「失敗了」對下游系統沒什麼用,「夾爪 roll 角錯了」才能用來修正獎勵函數或重新規劃
  2. FailGen 讓失敗資料可以大量自動生成。真實機器人的失敗資料很難系統化蒐集,但在模擬中有了成功示範和關鍵姿態,就能按分類有系統地擾動出各種失敗

跟 SAFE 放在一起看,可以看到失敗偵測的兩條路線:

SAFEAHA
位置VLA 內部(讀隱藏狀態)VLA 外部(看影像)
輸出失敗分數(可即時、可提早預警)成功/失敗 + 語言解釋
適用對象特定 VLA 模型任何機器人系統,跨形態
主要用途執行中及早停止給 LLM/VLM 系統回饋,讓它修正

相關論文推薦

參考資料

  • Duan, J., Pumacay, W., Kumar, N., Wang, Y. R., Tian, S., Yuan, W., Krishna, R., Fox, D., Mandlekar, A., & Guo, Y. (2025). AHA: A Vision-Language-Model for Detecting and Reasoning Over Failures in Robotic Manipulation. ICLR 2025. arXiv:2410.00371
  • 專案頁:aha-vlm.github.io

訂閱 RoboTech Lab 電子報

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