跳转至

第 9 章 评估(Demo 谎言学)

这一章是整本书里最不打算交朋友的一章。可只要你在这个领域待过两年,迟早要学会两件事:怎么读懂别人的 demo,怎么不让自己变成下一个被当场看穿的人。


不妨先看一段视频。

2024 年某个礼拜五,一家具身智能公司在 Twitter 上发了一段 30 秒的短视频。画面里是一台双臂人形机器人,面前的桌上堆着一摊杂物,旁边的工程师随口吩咐了一句 “please clean up the table”。机器人随即动了起来:它把可乐罐扔进回收箱,把香蕉搁进水果盘,把叉子摆到餐巾上,顺手把毛巾折好塞在角落。视频放完,桌面收拾得干干净净。两个小时里这段视频刷出了 800 万次播放,顶在最上面的热评赫然写着 “AGI is here”。

我把这段视频逐帧拉着看了一遍。

先看第一处:第 3 秒到第 4 秒之间,藏着一个 27 帧的硬切。镜头上一秒还是机器人躯干的特写,下一秒直接切到了俯瞰桌面的另一台相机;就在画面跳切的瞬间,机器人的右手已经从桌沿外面,瞬移到了可乐罐上方 5 厘米的预抓取位姿。就在这被剪掉的一秒钟里,它完成了镜头没敢拍出来的一段动作。那段动作十有八九是靠近物体时的最后微调,大概率中间试错了几回,被剪辑师顺手抹掉了。

再看第二处:第 12 秒抓香蕉那一下,画面的帧率从 30 fps 掉到了大约 22 fps。原始素材分明是按 30 fps 录的,这意味着那几秒被加速了差不多 1.4 倍。抓香蕉这个动作在真实世界里其实花了 4 秒,剪进 demo 时被压成了 2.8 秒。放在真实的物理环境里,花 4 秒抓起一根香蕉慢得有些扎眼,慢到这家公司的 CEO 后来在播客里不得不把这种迟缓包装成所谓的 “slow but reliable” 哲学。

还有第三处:背景里的水果盘干干净净,里面一个果子都没有。在真正的家庭环境里收拾桌子,果盘里总会胡乱堆着别的杂物或水果。眼下这个空盘子显然是专门为这段演示摆在那里的,桌上的每一件道具都经过了挑剔的筛选。这根本不是机器人在应付日常场景,只是在镜头前把训练集里的分布原样重演了一遍。

这三处还只是浮在面上的破绽。往深处看,机器人每次伸手去碰物体,手掌切入的角度全是一模一样的姿态,说明它只会用自己练得最熟的那种抓取模式(grasp pattern);那句 “please clean up the table” 在这家公司过往的 demo 里反复出现,几乎不用猜就能断定它早就躺在训练集里;至于视频收尾那一刻镜头慌忙切走,始终没给收拾完的桌面留一个完整的广角镜头(wide shot),因为那个全景里,大概率落着一两件没能归位的东西。

紧接着,这段视频会被 venture capital 郑重其事地写进给出资人的 LP 报告,会被科技记者写成 “home robot 已经来了”,还会让另外三家做同类产品的竞品公司在第二天手忙脚乱地把自己的 roadmap 往前赶。

这就是 demo,它从来不是产品。Demo 的本质是营销,是一种堂而皇之、合规合法、被整个行业心照不宣接纳的包装手段。这一章不想费心思教你如何不上当,因为圈子里很多人心里明明白白,却依然甘愿跟着起舞。这一章要教你的,是当你自己动手做评估的时候,怎么不沦为你当初最鄙视的那种 demo 制造者。


不妨先把对手的工具箱摊开来看看。一段精心挑选出来的 cherry-picked demo,常用的手法大致就这五样,由粗暴到隐蔽,排在前面的最直白,越往后的越精巧:

手法一:多次试错只剪成功段。这是年纪最老、用得也最顺手的一招。同一个动作录上 50 次,只要撞大运成功了 3 回,就把这 3 回拼进成片。外行看的是 100% 的成功率,台后的工程师自己清楚真实水平只有 6%。想识破这种片子倒也不难:看那段利索的动作是不是被放在了视频最开头,剪辑师向来习惯把最拿得出手的一幕顶在最前;再看不同视频里机器人的初始位姿是不是分毫不差,因为但凡换个起手姿势,模型大概率就接不住了。

手法二:切镜头隐藏失败动作。这算得上近年来的升级版把戏。画面中机器人刚摆出动作的架势,镜头忽然转开了,给工程师的脸来个特写,或者扫一下房间的全景、切一个居高临下的俯拍;等镜头切回原地,手头的事情早已稳稳办完。被蒙在鼓里的那一两秒到底发生了什么,只有在场的人心里有数。辨别的尺度其实很清楚:一段 30 秒的短片里要是硬切超过 3 次,多半是在掩盖些见不得光的小动作。一套真正扎实流畅的连贯操作,本就不需要靠剪辑节奏来撑场面。

手法三:加速回放掩盖卡顿。VLA 模型在执行某些细分动作时,推理频率冷不丁会往下掉,比如从 10 Hz 跌到 3 Hz,连带着机械手在半空中一顿一顿地抽搐。剪辑师只要把卡顿的片段快进 1.3 到 1.8 倍,肉眼瞧上去就显得行云流水。想抓住这种把柄,盯着背景看就行:看周围走动的人影,或者看桌角滴落的水珠、空调出风口摆动的叶片;一旦这些参照物的动作快得反常,和机器人的动作节奏搭不上,那就铁定是被抽帧加速过了。

手法四:演示物体范围比训练分布还窄。训练集里明明塞进了 200 种物体,可在对外放出的 demo 里,颠来倒去露脸的永远只有 5 到 8 种,而且清一色是这 200 种里最规整、最经典的道具,比如标准包装的可乐罐、没有斑点的标准香蕉、叠得方正的标准毛巾。这套路 RT-2 用过,π0 的演示视频里也干过,甚至 π0 后来在论文 appendix 里自己也认了。这算不上直接撒谎,但也谈不上坦诚。真正要证明策略具备泛化能力,demo 就该让不知情的外人现场随机挑东西来试,然而在这行里,几乎没人敢这么录视频。

手法五:主语言指令在训练集中。这是藏得最深、但也最泛滥的一手。“clean up the table”、“make me a coffee”、“pack the lunch box”,这类指令在训练数据里被灌进去成百上千遍,模型在底层干的不过是依样画葫芦的指令匹配,根本谈不上什么真正的语义理解。一旦你换成意思一样但换了说法的短语(比如 “tidy this mess up”),机器人的操作成功率当场就会折掉一半。想看出破绽,不妨对比这家公司几段不同 demo 里的提示词,如果每次用的句子都一字不差,那多半就是从训练集里原封不动搬出来的模板。

这五种手法算不上什么深不可测的阴谋。无非是赶在交差的截止日期前,大家面对上面的老板和手握支票的 VC 时,人人心知肚明却谁也不挑明的一套惯例。耍点花招本身不是最致命的,问题在于从来没人会在发布视频时诚实地在角落附上一句说明:“this is one of N attempts”。学术圈写 paper 至少还有个专门的评估章节(evaluation section)撑着底线,到了工业界,连这点最后的遮羞布也荡然无存了。


至于公开的 benchmark,至少数据透明、流程可以复现,拿来在不同团队之间做横向对比也还算公允。

走到 2026 年,这个领域里真正值得坐下来认真对待的公开 benchmark,大致有这么几个:

SimplerEnv(Stanford 2024)。这是 Li 和 Levine 那批学者拿出来的成果,头一次在仿真环境(sim)里高保真重现了 RT-1、RT-2、Octo 和 OpenVLA 这一脉 VLA 的原始训练任务,让你不必守着真机,也能测出与实机表现相当吻合的成功率。它的过人之处不在于这套基准本身,而在于它向所有人证明了一点:把仿真拿来作为 VLA 的公开评测手段,在特定的任务上确实走得通。但也仅仅局限于特定任务,真要碰上布料变形、流体流动或是复杂的接触力学,SimplerEnv 差得还很远。

LIBERO(UT Austin,2023)。任务的边界划得相当整齐,分出四个测试集(Spatial、Object、Goal、Long),很适合拿来摸清一个新策略(policy)的基本功底。毛病在于任务设计过于程式化,和真实的物理场景对不上号。论文在圈内被引用的次数极多,但在从业者心里赢来的信任却得打些折扣。

MetaWorld(Berkeley,2019)。这是当年强化学习火热时期的老古董,收录了 50 个机械臂操作任务(manipulation)。到了大模型与 VLA 的年头,它的处境日显尴尬:任务全靠程序拼接生成,画面带着浓重的仿真塑料感,和如今大家真正想测的真实指令理解格格不入。新出的论文还在拿它跑实验,大多不过是沿袭旧例的惯性使然。

CALVIN(Karlsruhe,2022)。专门用来测试由语言引导的长程多步骤任务(long-horizon)。如果单纯拿来考察机器人听懂连续指令的本领,它依然派得上用场;只是底层的渲染引擎太过陈旧,站在 2026 年的眼光看过去,仿真和真实世界之间的视觉落差(visual gap)实在大得难以忽视。

FurnitureBench(KAIST,2023)。这是一套让人由衷尊重的测试基准。它的任务直接盯在组装宜家家具上,全在真实的机械臂上跑,并给出了完整的遥操作(teleop)数据集和评估规范。它是公开测试集里极少数坚持用真机做评估的项目,审稿人看完了数据,也不会轻率地全盘盲信。

ColosseumBench / Colosseum(CMU,2024)。它的矛头专门对准了 VLA 在遭遇各种外界扰动(perturbation)时的抗造程度:变一变光照、换一换背景、随手扔几件干扰杂物、挪动一下物体的摆放姿态。这是近年来最配得上 “评估” 二字的一套基准,因为它二话不说直接把模型推到了分布外(OOD)的环境里去考。跑出来的成绩自然也最刺眼:所有公开权重的 VLA,在它难度最高的测试子集(split)上,成功率全跌到了 30% 以下。

RoboCasa(NVIDIA / Stanford,2024)。摆出了 100 个任务和 120 个场景,主打仿真环境里的多样与扩展能力。它的态度很坦诚:“我们承认 sim 不能 1:1 评估真机,但我们提供海量的 task variation 让你的 policy 在 sim 里就能过 robustness 这关。” 这种不装腔作势的态度,我很认可。

把这些 benchmark 挨个摆出来,不是要劝你全去跑一遍。列在这里,是想让你看清一件事:每一个公开 benchmark 固然都在某一方面比公开的 demo 严谨得多,却偏偏都不去评估你心底最想知道的东西。SimplerEnv 不评估真机部署,LIBERO 不评估真实物体,Colosseum 不评估长程任务,FurnitureBench 不评估 VLA 上限。

没有一个公开 benchmark 会去评估 “这台机器人到客户家里能不能用”。

这就是仿真 benchmark 永远不够用的原因。它们测量的,无非是你的 policy 在它们划定的 distribution 里跑得好不好,而不是你的 deployment 扔进真实世界里能不能活。这两个 distribution 之间的天壤之别,正是本书第 7 章剖析的那整套 sim2real gap。如果团队内部的业务决断只敢死盯着 SimplerEnv 上的几个跑分,你实际上就是在拿一把根本不称真问题的尺子,在自己身上量来量去。这怪不着 benchmark,错在用它的人。


至于真机上的真实评估,代价通常是这样的。

真机上跑一次 trial,wall-clock 耗时大概 30 秒到 2 分钟。每轮跑完都得 reset 环境:把物体放回初始位置,机器人归位,再确认传感器没有漂移,这套收拾又要 30 秒到 3 分钟。算上偶尔的硬件故障、停下充电,再加上人在场观察的时间,一个全职评估工程师忙上一整天,能跑出来的也就 100 次到 200 次 trial。

跑满 100 次,拿到手的不过是一个二项分布样本,也就是 0/1 成功率乘以 100 次试验。要是观察到的成功率刚好是 70/100=70%,按 95% 置信区间(Wilson interval)算下来,范围大概在 [60%, 78%]。足足 18 个百分点宽。

只跑 10 次,拿到手的不过是一个几乎没有信息量的数字。如果观察到 7/10=70%,95% Wilson 区间(Wilson confidence interval:用二项分布算成功率的可信范围,比 normal approximation 在小样本下准)直接落入 [40%, 90%]。整整 50 个百分点宽。在这样的区间宽度下,70% 和 50% 在统计上分不开,70% 和 85% 也分不开。你在 paper 里写“我们的方法 70% 比 baseline 60% 好”,若是两边都只跑了 10 次,这两个数字在 95% 信度上完全可能反过来。

大多数 paper 之所以仍旧只跑 10-50 次,根子在三件事上。第一个是钱。一台真机一天的人力 + 折旧 + 场地大概 1500-3000 美元。100 次 trial 一天确实跑得完,可要是分摊到 5-10 个任务、3-5 个 baseline,再加上不同的 perturbation,试验总数动辄破万,成本转眼就奔着六位数去了。第二个是惯性。学术圈里的 reviewer 对 10-30 次 trial 早已习以为常,作者照着惯例写,从没谁因为 trial 跑得太少被拒稿。第三个是政治。辛辛苦苦跑完 200 次,要是发现自己的方法只比 baseline 拔高 5 个点,置信区间还彼此重叠,paper 没法写成“significant improvement”,你的 advisor 就会让你想办法。最简单的“想办法”,无非是把试验次数一路砍下去,直到区间能凑出 non-overlap 为止。这件事在工程界叫 p-hacking 的孪生兄弟 n-hacking。

到了 2026 年,这件事正在被慢慢掀开。CoRL 2025 有一篇 best paper finalist 专门讨论 robotics evaluation 的统计,结论下得极硬:当前 top venue 上 80% 以上的论文,如果按正常的统计标准重新审视,它们宣称的“superior performance”根本站不住脚。这篇 paper 的标题没有点名,可 community 里大家都清楚点的是谁。


立场一:没有 confidence interval 的成功率是营销,不是科学。

光写一句“我们的方法 78% 成功率”,本身没有任何意义。真正负责任的表述是“我们的方法在 N=120 次试验里得到 94/120=78%,Wilson 95% CI [70%, 85%]”。后半段不是摆设,而是这个数字到底能不能信的判据。你的 paper 里要是省掉了后半段,要么说明你压根不知道这回事,要么说明你心里清楚、只是写出来不好看。两个解释都不光彩。

算 Wilson interval 并不复杂,scipy 里一行就能算(statsmodels.stats.proportion.proportion_confint(k, n, method='wilson'))。它在小样本下比 normal approximation 准得多,比起 bootstrap 又省事得多。没有任何理由不写它。投出去的 paper 如果 reviewer 没要求你加,那是 reviewer 的问题;可要是在公司内部做决策时把这件事省掉,那就是你自己的问题了。

立场二:评估投入应该是训练投入的 30-50%。少于这个比例你就在自欺。

假设手头有个项目要 fine-tune 一个 VLA。先算训练这边的开销:8 张 H100 跑两周,加上大概一个月的数据收集(teleop / 标注),再搭上两位 full-time 工程师。合起来是整整一个人月的量级。这笔开销向来是大头。

转头看评估这边,大多数 team 的真实做法不过如此:拉一张 demo task 清单,派一个工程师拿着秒表跑上两天,把结果做成 PPT。前后花掉 1-2 人天。

1-2 人天对上一个人月,评估投入只有训练投入的 5%。守着这个比例,根本测不出任何有用的东西。你的方法在 50 次以上 trial 下的真实成功率,你摸不清楚;在 perturbation 面前它会怎么崩,你更不知道。交出去的那份 PPT,连你自己心里都不会信。

合理的比例应当是 30-50%。一个人月的训练,理应对应 10-15 人天的评估。在这 10-15 人天里要做的事很实在:定义 5-10 个评估任务(分出训练 distribution、轻 OOD 和重 OOD 三档),每个任务跑上 100-200 次 trial,每轮 trial 都老老实实标记 failure mode,最后整理出一份每一项 claim 都带置信区间的内部报告。

工业界在这件事上做得确实比学术界好一些,但也相当有限。Physical Intelligence 内部的评估流程比多数高校严谨,他们在 π0.5 paper 里老老实实给出了 trial 次数。Figure 则是完全不公开。1X 偶尔在博客里提一句“超过一千次 trial”。Tesla 拿出来展示的,基本停留在营销片段。整个行业离“评估投入 ≥ 训练投入 30%”的共识还差得很远,可这道共识早晚得立起来,否则一到 deployment 环节,必定要出事。


failure analysis 是整个评估流程里最被低估的一项。

如果只看 success / failure 这种二值结果,你充其量只能告诉别人“我的方法行不行”,却给不出半点“接下来该怎么改”的线索。要想让评估真正变得 actionable,每一次失败都必须分类。平日里用得最顺手的,大致是下面这六种:

perception miss。模型压根没看到目标物体,要么就是直接看错了。识别方法:翻出最后一帧的视觉特征,检查目标物体的注意力权重,或者直接看 policy rollout 迈出的首个动作方向。

planning error。东西确实看到了,却选错了子任务,或者把执行顺序弄颠倒了。比方说叠一件 T-shirt,模型不去先抓下摆,反倒跑去抓领口。这种错在分层架构里更容易单独隔离出来,换到端到端架构下,就得专门设计 probe。

contact failure。规划合情合理,可预期的接触压根没发生,要么是接触位姿出了偏颇。比如手指没接到、接到错误的面、接触深度不对。识别方法:调出力传感器和触觉传感器的时间序列数据,直接拉去跟成功的 trial 对比。

grasp slip。明明已经抓住了,物体却在抓握移动中途脱落。多见于光滑物体、重物或者变形物体。识别方法:看抓取后的轨迹中物体相对于手部的位姿变化。

model OOD。物体或场景超出训练分布,模型的举动变得不可预测,可能完全僵住,可能突然输出极端动作。识别方法:把当前观测的视觉特征拿去跟训练集做最近邻检索,距离一旦超过阈值就标上 OOD。

hardware fault。传感器掉线、电机过热、通讯延迟、电池电压不足。这类失败跟模型半点关系没有,可要是你不把它们单独分出来,就会污染整个成功率统计。

每轮失败标记一个或多个标签,跑完 100 次 trial,你手里拿到的不再是一个单纯的数字,而是一张 confusion-style 的矩阵,列出每种 failure mode 占总失败的比例。这张矩阵清清楚楚告诉你下一步该往哪个方向投入。perception miss 占了 50%,就该去收数据增强 perception;contact failure 占了 50%,就该改阻抗或者去收触觉数据;model OOD 占了 50%,就该在分布外老老实实做 fine-tune。

不少团队在评估里常常跳过这一步,借口往往是“标记 failure mode 太花时间”。其实 100 次 trial 标完 failure 大概也就 2-3 小时。这短短两三个小时救的是你下一个月的研发方向,不标的代价比老老实实标的代价大得多。


工业评估有一套自己的指标体系,跟学术 benchmark 不完全对得上。这套东西值得列一列,因为如果你的下一站是工业部署,这套指标才是你拿去交付的真东西。

MTBF (Mean Time Between Failures,平均无故障时间)。机器人从启动到下一次需要人介入的平均时间。到了 2026 年,家用机器人的目标 MTBF 大概是 2-4 小时,工业拣选机器人则是 8-24 小时。这个数字没法直接拿学术成功率去换算,因为学术成功率算的是单 task,而 MTBF 算的是连续跑多个 task 直到崩掉为止。

Intervention Rate(介入率:每小时操作员要远程接管或现场干预多少次)。也就是每小时人需要干预多少次。1X 在博客里给过他们家用 NEO 的数字,2025 年中大概是 4-6 次/小时。这是实际部署的硬指标,比单看成功率诚实得多:它包含了所有“机器人卡住、人来救一下”的情况,而单 task 评估往往会忽略这种。

Success Rate per Task。这项指标跟学术界看上去一样,但工业界报告的时候通常老老实实带上 N 和置信区间,因为下游签 SLA 合同全要靠它。

MTBF、Intervention Rate 与 per-task SR 构成的三件套,比任何 benchmark 都更接近“这台机器人能不能交付”的真问题。学术 paper 几乎从不报前两个,这正是 academia-industry gap 最具体的表现之一。


最后聊聊自动评估这一波新尝试。

人工评估的瓶颈归根结底还是人工。这两年有几个工作在尝试用模型本身来做评估:

RoboVQA(Google,2023 年底)。给一段机器人视频,让一个 VLM 回答关于这段视频的问题(“机器人有没有完成任务”、“它抓的是什么物体”、“动作是不是顺利”)。它的本质是把“评估”这件事 reframe 成 visual question answering。在 2024 年中之前还算好用,往后随着 VLM 自己也成了被评估对象,循环参考的问题就越来越大了。

RoboArena(CMU + Stanford,2025)。这套做法把人工对比评估改造成了 ELO 排名系统:让人看两段不同 policy 在同一个任务里的 rollout,挑出表现更好的那个,再把所有胜负汇总成一张 leaderboard。思路显然是从 LMSYS Arena 借来的,放在机器人领域算件新鲜事。只是人去逐段评判 rollout,远比看几行文字费心力,愿意参与的人数始终上不去,到 2026 年初也没能真正成为社区共识。

RoboBench(DeepMind,2025 年中)。这是野心最大的一个方案,想把 sim benchmark、真机 benchmark 和 VLM auto-eval 捏合进同一个 framework,里面还带了一套方便大家横向比较的 reference set。社区接受度眼下还在慢慢爬坡,但若论谁最有可能成为新一代标准,当前大概就是它了。

这一波自动评估真正有价值的地方,在于把评估的边际成本降了下来,让你能在日常迭代里频繁做测试,而不是只在 paper deadline 前夕才去跑一次。它们取代不了真机加上 100 次 trial 与 failure analysis 的金标准,却能让你在 daily training loop 里及早发现哪一版 policy 正在退化。这套工具该用在 CI/CD 上,而不是拿去填 paper 表格。


写到这里,这一章的核心立场不妨再收拢一遍:

公开 demo 终究是营销。公开 benchmark 固然必要,却远远算不上充分。做一套真实评估,代价通常要占到训练投入的 30-50%,低于这个比例的项目多半只是在自欺欺人。没有 confidence interval 的成功率根本谈不上科学。每一次失败都必须分类归因,否则 100 次 trial 费尽心力测出的信息,到头来只会被压缩成孤零零的 1 个数字。工业部署看的是 MTBF 与 Intervention Rate,这两样和学术界用的 SR 从来没法直接换算。自动评估确实开始派上用场,可它依旧替不掉真机上的金标准。

读完这一章大概不会让人觉得轻松。但下一次当你看到一段 30 秒的视频、挂着 800 万播放量、热评第一句写着“AGI is here”时,希望你至少愿意花一分钟把视频拉到 0.25x,仔细数一数镜头硬切的次数。那一分钟教给你的东西,比你接下来读的任何一篇 paper 都要多得多。


练习

找最近最火的一段具身 demo video(Figure / 1X / Tesla / Sanctuary / Apptronik / 国内任意一家任选其一),拿前文提到的五种手法逐项对照一遍。逐帧排查出至少 3 处可疑点,每一处写明对应的是哪种手法。接着去翻这家公司在同一时期发布的 paper 或 blog,查证里面有没有给出试验次数和置信区间。要是压根没提,写出你估计他们真实的成功率范围,并交代依据是什么。

找一篇你最尊重的 robotics paper(RT-2、π0、Helix、GR00T 任选其一),翻到 evaluation section。看一看作者在这一节里总共汇报了多少次 trial、有没有给出置信区间、failure mode 又是如何分类的。参照本章列出的标准给这一节打分(0-10 分),写一小段打分理由。要是得分落到 6 分以下,试着问问自己:你日后是否还会因为其他由头,继续在文章里 cite 这篇 paper 的 SR 数字?

翻你自己手上正在做的项目最近一次内部评估报告(要是手头根本没有评估报告,这个练习便到此为止)。算一算评估投入占训练总投入的比例。如果这一比例低于 30%,写出补足到 30% 到底要做哪些事、需要耗费多少人天、具体由谁来做。要是你的 manager 不肯批出这段时间,就把这本书的这一章直接拍到他桌上。

给你正在 fine-tune 的某一个 policy 写一份诚实的 demo disclosure:交代清楚这段 demo 到底是从第几次成功里剪出来的、真实的训练分布究竟如何、画面里出现的物体是否全在训练集内、指令字句以前有没有出现过、画面加速了多少倍、中间切了几个镜头。写完之后,问一问自己愿不愿意把这份 disclosure 附在 demo 视频后面公开发布。要是不愿意,再想想自己为什么不愿意,那个说不出口的原因,恰恰就是这个行业眼下的病灶。

下一章:第 10 章 安全