Alpha: 物理 故障 下 两 边 一样 失败, 差距 全 在 JSON 校 验
Jona Joy 用 Alpha 在仿真抓放上注入四类故障,让 Llama-3 与脚本先知各跑 75 回合。物理条件下两边都是 55%(33/60);20 个百分点的差距全部来自规划器输出损坏。

本文目录
Alpha:面向大语言模型驱动的具身操作的系统化故障注入与鲁棒性评测
Jona Joy
致谢:Jona Joy 是一位独立的机器人与人工智能研究工程师(邮箱:jonajoy142@gmail.com)。源代码、遥测数据集和可复现脚本可在 https://github.com/jonajoy142/embodied-agent-chaos 获取。
摘要
大语言模型越来越多地被整合进具身机器人规划,把自然语言的目标分解和物理执行结合起来。然而,标准评测通常只关注名义环境里的端到端任务完成,因而看不清失败发生在感知、规划、运动学和执行这一整条栈的哪里,以及为什么发生。我们提出 Alpha,一套面向仿真中由大语言模型驱动的具身操作的系统化故障注入与鲁棒性评测框架。Alpha 在四条操作边界上注入经过标定的故障:感知(传感延迟)、执行(抓取打滑)、运动学(不可达的逆运动学目标)和规划(规划器输出损坏),并同时包含并发故障条件。为了把环境和物理故障的脆弱性,与规划器流水线的敏感性干净地分开,我们引入一种配对评测方法:让一个大语言模型智能体(经由 Ollama 运行的 Llama-3)与一个确定性的脚本先知规划器对照,在相同的种子、任务几何、物理参数和安全监测准则下,跑一套平衡的 150 回合矩阵(每个规划器 75 回合)。在整个矩阵上,脚本先知达到 64.0%(48/75)的成功,而大语言模型规划器达到 44.0%(33/75)(配对 McNemar $p=3.01\times 10^{-4}$)。关键的是,一旦排除规划器输出损坏,全部物理与运动学条件下的表现完全相同:两个规划器都是 55.0%(33/60),不一致对为零(McNemar $p=1.00$)。这表明,物理执行器打滑、运动学可达边界和感知陈旧,对确定性控制器和大语言模型规划器的影响是等价的。汇总表现上的差别完全由规划器输出损坏驱动(先知 100%,大语言模型 0%),孤立出来的是提示到 JSON 接口在序列化与模式校验上的敏感性,而不是内在的认知推理缺陷。我们还审计了 169 次历史试点尝试,以便把丢弃偏差完整地公开。主要局限包括:只有一个仿真桌面抓放任务,只评测一个本地开源权重模型,以及每个强度格子的样本量是 $n=5$。
索引词:具身人工智能、机器人操作、系统化故障注入、鲁棒性评测、大语言模型、安全监测、基于仿真的测试、失败分类体系。
I 引言
具身人工智能系统越来越多地把概率性的大语言模型推理,与物理机器人执行栈结合在一起 [1, 2, 3]。在这类系统里,高层任务规划器把自然语言目标和感知到的场景描述,翻译成结构化的动作计划(例如接近、抓取、转移和释放)。近期基准已经在多步的家居和工业操作任务上展示了可观的名义任务完成率 [4, 5],但这些评测压倒性地测量的是名义、未受扰动环境里的汇总端到端成功。
因此,当一个具身智能体失败时,现有评测协议很少把失败定位到它的因果来源:失败来自嘈杂或延迟的传感观察、物理执行器打滑、运动学上不可行的关节命令、序列化边界上的语法错误,还是有缺陷的语义推理?在真实部署里,自主机器人经常遇到硬件退化状态、通信延迟、抓取扰动和机械极限 [10, 11]。在这些智能体能够被安全地部署到安全关键的人类环境之前,必须先理解具身大语言模型架构在受控、可复现的故障下如何退化。
受控故障注入为回答这些问题提供了一套有原则的方法。在分布式软件工程和云基础设施里,混沌工程和主动故障注入系统地让正在运行的系统承受合成故障,以便观察失败签名,并评测自动的遏制边界 [16, 17]。然而,把这套方法搬到具身机器人智能体上,会引入根本性的挑战:物理仿真动力学、闭环接触力学、非确定性的语言生成,以及复杂的 API 接口,都必须同步监测,同时又不能混淆智能体内部的控制逻辑。
此外,孤立地评测一个大语言模型规划器,会留下一个关键的反事实问题:某一次失败是语言模型的内在限制造成的,还是注入扰动不可避免的物理后果,因而同样会挫败任何一个称职的控制器?如果没有严格配对的基线,环境物理失败(例如一块打滑的积木从夹爪里掉出来)就很容易被混同于规划器的认知失败。
为应对这些挑战,本文提出 Alpha,一套可复现的故障注入与鲁棒性评测测试架,用于仿真中由大语言模型驱动的具身操作。Alpha 把一个模块化的中间件故障包装器(ChaosRoboticsWrapper)、一个高速率且经过验证的安全监测器、结构化的遥测日志,以及一套显式的反事实评测协议耦合在一起。Alpha 在操作流水线的四个不同边界注入经过标定的故障:(1)感知层的传感延迟,(2)执行层的抓取打滑,(3)运动学执行层的不可达逆运动学,(4)规划/序列化层的规划器输出损坏,外加多故障并发条件。
为了把环境动力学与规划器脆弱性解耦,我们引入一种配对的「大语言模型对脚本先知」方法。在这套协议下,一个由 Llama-3 [20] 驱动的大语言模型智能体,和一个确定性的脚本先知规划器,在同一套平衡的 150 回合矩阵上接受评测(每个规划器 75 回合),共用相同的随机种子、场景生成坐标、物理参数、故障公式和安全事件阈值。
图 1:Alpha 评测测试架的系统架构。受控故障(F1–F4)由 ChaosRoboticsWrapper 在四条操作边界注入,而不改变大脑的提示定义,也不改变身体的逆运动学控制例程。PyBullet 安全监测器以 240 Hz 同步检查多连杆接触动力学。
本文的主要经验发现是:在全部物理、运动学和感知扰动上(F1、F2、F3,以及并发的 F1+F2),大语言模型智能体和脚本先知的表现完全相同:在 60 个种子配对的回合上,两者都恰好达到 55.0% 的任务成功,不一致对为零。物理执行器打滑以相同的单调衰减使两个智能体退化,感知延迟被吸收在抓取容差之内,运动学偏移则使两个控制器都无法完成目标放置。两个系统之间的总体差别(整个 150 回合矩阵上,先知 64.0%,大语言模型 44.0%)完全由 F4 规划器输出损坏驱动,也就是文本序列化破坏了 Pydantic 模式校验。我们表明,这一分歧孤立的是提示到 JSON 执行流水线在序列化与模式校验上的敏感性,而不是大语言模型空间或物理推理的内在缺陷。
贡献。本文作出下列贡献:
- 解耦的故障注入架构:我们提出 ChaosRoboticsWrapper,一个模块化中间件框架,把经过标定的感知、执行、运动学和序列化故障注入一条仿真机器人操作流水线,而不修改机器人控制器或提示模板。
- 同步遥测与形式化安全监测:我们开发一个 240 Hz 的安全监测引擎,强制执行形式化的力阈值、工作空间边界,以及一个经过验证的时间去重窗口(15 个仿真步),把原始的重复接触扫描与独特的连续安全事件区分开。
- 配对的反事实评测方法:我们制定一套种子配对的比较协议,让一个开源权重的大语言模型智能体与一个确定性脚本先知在 150 个受控回合上配对,把物理环境极限与规划器特有的接口敏感性隔离开。
- 经验性的鲁棒性刻画:我们给出操作退化在传感陈旧、抓取约束减弱、不可达运动学目标和 JSON 语法损坏下的经验刻画,确立物理失败模式独立于规划器智能而占主导,而接口模式解析构成软件脆弱性的主要位点。
本文其余部分组织如下。第 II 节回顾相关工作。第 III 节详述系统架构和安全监测框架。第 IV 节形式化故障分类体系与强度标定。第 V 节描述实验设置和模型出处。第 VI 节呈现经验结果和统计分解。第 VII 节审计历史试点尝试,以保证丢弃偏差的透明。第 VIII 节讨论核心科学结论,第 IX 节陈述效度威胁与局限,第 X 节作结。
II 相关工作
具身大语言模型规划与机器人基准。把大语言模型当作具身操作的高层规划器,这一整合扩张得很快。SayCan [1] 把大语言模型的计划生成与学得的价值函数可供性结合起来,把语言输出约束到物理上可执行的行为。Inner Monologue [4] 和 Code as Policies [6] 表明,文本形式的环境反馈和直接的 Python 代码生成,能够实现闭环任务执行。多模态的视觉–语言–动作基础模型,例如 PaLM-E [3] 和 RT-2 [2],直接把视觉词元和任务指令映射到连续的机器人动作。这一领域的标准基准(例如 VirtualHome [7]、ALFRED [8] 和 BEHAVIOR [9])在复杂的多步序列上评测任务完成。然而,这些基准是在名义环境条件下评测智能体的,并不在中间执行边界注入受控的组件失败。
机器人故障注入与中间件可靠性。机器人学中经典的可信性与故障注入,在安全关键领域已有很长的历史 [10, 11]。研究者已经考察过硬件比特翻转、传感噪声注入,以及 ROS/ROS 2 中间件架构中的网络丢包 [12, 13]。在工业机械臂上,容错控制架构通常依靠解析冗余、基于阈值的扰动观测器,以及紧急关节制动 [14, 15]。Alpha 把物理故障注入扩展到新兴的、由大语言模型编排的操作范式,把低层仿真物理与现代的、基于提示的序列化接口桥接起来。
结构化的大语言模型输出、Pydantic 模式校验与失败处理。当语言模型被部署在自主决策循环里时,非结构化文本必须被转换成严格定型的、可执行的表示。工具使用框架和诸如 Pydantic [21] 这样的库,对大语言模型生成的 JSON 载荷强制执行模式约束。然而,近期的经验性软件工程研究表明,很小的扰动、词元丢失或语法偏离,经常触发不可恢复的 JSON 解码或校验错误 [22]。在本工作中,Alpha 明确地把序列化输出损坏形式化为一个操作故障类,表明模式校验如何充当一道刚性边界:它阻止被损坏的轨迹到达物理关节,代价是整次回合被中止。
自主安全监测与接触分类体系。在 PyBullet [19] 这类物理仿真环境里,检测安全违规并不简单:接触点、反作用冲量和关节极限都以很高的仿真速率采样(例如 240 Hz)。对原始接触点做朴素阈值化会造成严重的重复计数,一次持续 0.5 秒的机械接触会产生超过 100 个违规事件。自动驾驶和操作中先前的安全监测框架提出了时间滤波和基于状态的事件聚类 [23, 24]。Alpha 实现一套显式的接触分类体系,并带有经过审计的去重窗口,以便把短暂的接触振荡与持续、独特的安全事件区分开。
信息物理系统中的混沌工程。混沌工程由 Netflix 形式化,用来核验高可用的云微服务 [16, 17],它主动引入局部的组件中断,以核验自动故障转移和系统韧性。虽然信息物理系统已经开始把混沌测试原则用于物联网和汽车通信 [18],具身操作引入的是连续的空间几何和不可逆的机械动作(例如掉落一件易碎物体)。Alpha 把混沌测试的核心原则改写到机器人操作上,在感知、运动学、执行和序列化上定义可复现的故障钩子。
III 系统架构与方法
Alpha 把自主机器人执行组织成一种模块化的大脑/身体设计模式,并由一个外部故障包装器和一个自主安全监测器加以测量,如图 1 所示。
III-A 执行流水线与信息流
一次执行回合的完整数据流经过六个顺序阶段:
- 场景观察与感知钩子:物理仿真器(PyBullet 的 DIRECT 模式)实例化桌面和机械臂。积木的真值位置被捕捉成一份快照字典:
$$\mathcal{S}=\{c:(x_{c},y_{c},z_{c})\mid c\in\{\text{red},\text{green},\text{blue}\}\}.$$
(1)
在到达规划器之前,这一状态被 wrap_observation() 截获。该函数维护一个历史状态快照的内部环形缓冲。若传感延迟(F1)处于激活状态,返回的是一份延迟的历史快照 $\mathcal{S}_{\text{stale}}$,而不是新鲜观察。
- 规划器动作生成:活动中的规划器收到一份任务规格 $\mathcal{T}=(\text{block},\text{place\_zone})$ 和观察字典。规划器生成一份由顺序子目标组成的动作计划:MOVE_TO(悬停位置)、MOVE_TO(积木抓取坐标)、GRIP、MOVE_TO(抬升悬停)、MOVE_TO(放置区)和 RELEASE。
- 规划器输出截获与模式校验:在大语言模型流水线里,生成的计划被序列化成 JSON 字符串。intercept_planner_output() 钩子截获这条文本流。若规划器输出损坏(F4)处于激活状态,必需的键会被移除,或被注入语法损坏。所得载荷对照一份 Pydantic 模式(ActionPlan.validate_raw_plan)加以校验。若模式校验失败,回合通过交出一份空的动作计划而干净地中止,从而阻止畸形目标到达机器人控制器。脚本先知绕过 JSON 序列化,直接生成内部的领域对象。
- 控制层与运动学截获:通过校验的动作计划由 ControlService 执行。被命令的笛卡尔末端执行器目标由 move_end_effector() 截获。若不可达逆运动学(F3)被启用,一个确定性的空间可达偏移 $\vec{\delta}$ 被加到被命令的位置上,把目标推到机械臂物理可达包络之外。逆运动学在 PyBullet 中用阻尼最小二乘求解。
- 执行与接触力学:关节速度和抓取命令被转发到仿真器。当一个物体经由 PyBullet 的点到点约束或固定约束被主动抓住时,仿真步进钩子检查执行扰动。若抓取打滑(F2)处于激活状态,抓取约束在抬升时被动态减弱或脱离。
- 遥测记录与安全监测:在整条轨迹上,一个自主安全监测器以 240 Hz 扫描接触力和连杆位姿,并在回合完成时记录结构化的遥测行。
III-B 配对的反事实基线(脚本先知规划器)
为了把物理与环境约束,同大语言模型的认知或结构脆弱性区分开,Alpha 实现了 ScriptedOraclePlanner。脚本先知直接从场景服务读取积木的真值坐标,并经由标准的抓放航点,计算运动学上有效、无碰撞的直线轨迹。
关键的是,脚本先知在完全相同的仿真器环境里执行,使用完全相同的逐回合主种子,利用完全相同的机器人运动学、控制参数和安全监测器。它经由 ControlService 执行完全相同的物理动作(MOVE_TO、GRIP、RELEASE)。两条臂之间唯一有意设置的自变量,是规划器实现及其序列化边界。
III-C 安全监测架构与去重引擎
安全监测器(PyBulletSafetyMonitor,版本 1.1.0)在每一个 240 Hz 仿真步上同步执行。机械臂连杆(IIWA/Franka 的连杆 0 到 6)与未被抓住的场景物体之间的接触力,经由 p.getContactPoints() 提取。为了保证物理有效性,预期中的支撑接触(手臂停在桌座上)以及被抓住物体上正常的抓取反作用力,被明确排除。
若法向接触力超过 $F_{\text{thresh}}=3000.0\,\text{N}$,一次接触就被分类为剧烈碰撞;这一阈值标定在名义抓取反作用冲量($2000$–$2600\,\text{N}$)之上。若任何积木离开可容许的空间工作空间,就触发一次出界违规:
$$ X\in[0.15,0.95]\,\text{m},\quad Y\in[-0.45,0.55]\,\text{m},\quad Z\in[0.55,1.25]\,\text{m}. $$
为消除高频接触的重复计数,Alpha 强制执行一个 $W=15$ 个仿真步($\approx 0.0625\,\text{s}$)的事件去重窗口。一次事件在不安全条件 $(k,\text{key})$ 被观察到的第一步开始,在接触持续时保持开放,并且只有在连续 $W$ 步没有违规之后才关闭。持续时间计算为:
$$ \Delta t_{\text{steps}}=t_{\text{close}}-t_{\text{start}}+1. $$
原始安全观察扫描与独特连续事件之间的这一区分,在第 VI-F 节得到核验。
IV 故障分类体系与强度标定
表 I:Alpha 中的形式化故障分类体系、注入边界、强度公式,以及主要评测指标。
| 故障类 | 层 | 注入边界 | 强度公式 | 实现的实验行为 | 主要指标 |
|---|---|---|---|---|---|
| F1:传感延迟 | 感知 | wrap_observation() | $\tau_{\text{lag}}=0.10+1.40\cdot I$ | 观察到的延迟饱和在 $0.500\,\text{s}$;$\Delta_{\text{pos}}=0.025\,\text{m}$ | 陈旧发散、任务成功 |
| F2:抓取打滑 | 执行 | 抬升时的 step() | $P_{\text{slip}}=0.10+0.85\cdot I$ | 每次抬升评估一次;打滑率 $40\%\rightarrow 80\%$ | 实现的打滑率、成功率 |
| F3:不可达逆运动学 | 运动学 | move_end_effector() | $\delta_{\text{reach}}=0.03+0.27\cdot I$ | 目标偏移到包络之外;放置误差 $>{0.17}\,\text{m}$ | 放置误差(米)、事件 |
| F4:输出损坏 | 序列化 | intercept_planner_output() | $P_{\text{corrupt}}=0.20+0.80\cdot I$ | 模式校验抓住畸形 JSON;空计划 | 校验拒绝率、成功 |
| 并发(F1+F2) | 多层 | 感知 + 执行 | $I=0.66$ 固定 | 饱和延迟($0.500\,\text{s}$)与抓取打滑结合 | 双故障检出、成功率 |
Alpha 定义四个孤立的故障类(F1–F4)和一个并发的多故障条件,形式化于表 I。故障强度由一个归一化标量 $I\in\{0.33,0.66,1.00\}$ 参数化,对应名义上的低、中、高标签。
IV-A F1:传感延迟(感知边界)
传感延迟建模的是视觉感知流水线中的通信延迟、丢帧或异步处理。被调用时,wrap_observation() 向观察环形缓冲查询一份历史场景快照,其时间戳匹配 $t_{\text{target}}=t_{\text{current}}-\tau_{\text{lag}}$,参数化为:
$$ \tau_{\text{lag}}=0.10+1.40\cdot I\quad[\text{seconds}]. $$
名义标定参数对应的请求延迟为 $0.562\,\text{s}$($I=0.33$)、$1.024\,\text{s}$($I=0.66$)和 $1.500\,\text{s}$($I=1.00$)。
实现的实验行为:在回合初始化时,仿真把物理步进 120 步($120/240\,\text{Hz}=0.500\,\text{s}$),以便场景物体在初始观察被捕捉之前在重力下安定。因为在规划器查询场景的那一刻,环形缓冲最多只含有 $0.500\,\text{s}$ 的仿真历史,观察到并被施加的延迟在全部三个强度水平上饱和于 $0.500\,\text{s}$。在下落并安定的区间里,目标积木从初始下落生成高度($z=0.675\,\text{m}$)下降到安定后的桌面静止高度($z=0.650\,\text{m}$),在全部 F1 运行上产生恰好 $\Delta_{\text{pos}}=0.0250\,\text{m}$($2.50\,\text{cm}$)的可测量空间陈旧发散。因此 F1 被分类为经过验证的故障送达,具有可测量的时间与空间陈旧,但严重程度饱和在可用历史缓冲的极限上。
IV-B F2:抓取打滑(执行边界)
抓取打滑仿真的是表面污染、油膜或抓取压力不足,导致在获得抓取之后发生机械滑动。该故障在物体被抓住时评估抓取约束,打滑概率标定为:
$$ P_{\text{slip}}=0.10+0.85\cdot I. $$
标定的名义概率是 $0.270$($I=0.33$)、$0.525$($I=0.66$)和 $0.865$($I=1.00$)。
实现的实验行为:为了防止高频采样伪影——在那种伪影里,逐步滚动会使打滑无论配置概率如何都保证达到 100%——Alpha 经由一个内部的 _slip_evaluated 闩锁,严格地在每次抬升事件上只评估一次打滑概率。若打滑被触发,约束力因子被减弱或被完全移除,从而让 PyBullet 的接触摩擦和重力决定积木是否掉落。
IV-C F3:不可达的逆运动学(运动学边界)
不可达逆运动学仿真的是标定错误的相机到基座外参、坐标框架变换错误,或关节极限奇异,这些都会把末端执行器命令到它的物理工作空间之外。目标末端执行器坐标 $\vec{p}_{\text{cmd}}$ 沿一个向外的径向方向向量 $\vec{d}$ 被偏移:
$$ \vec{p}_{\text{corrupt}}=\vec{p}_{\text{cmd}}+\delta_{\text{reach}}\frac{\vec{d}}{\|\vec{d}\|},\quad\delta_{\text{reach}}=0.03+0.27\cdot I\quad[\text{m}]. $$
标定的可达偏移对应 $0.0705\,\text{m}$($I=0.33$)、$0.1380\,\text{m}$($I=0.66$)和 $0.2595\,\text{m}$($I=1.00$)。
实现的实验行为:被命令的目标超出机械臂的操作可达范围。因为二元任务成功在全部强度上饱和于 0%,Alpha 用一个连续的放置误差指标来评测 F3:积木与放置区中心 $(0.6,0.35,0.65)$ 之间的最终欧氏距离。
IV-D F4:规划器输出损坏(序列化边界)
规划器输出损坏仿真的是大语言模型词元序列化期间发生的通信噪声、部分丢包或语法错误。原始生成的动作计划在 JSON 反序列化之前被截获,概率为:
$$ P_{\text{corrupt}}=0.20+0.80\cdot I. $$
当它激活时,关键的 JSON 键(例如 action、target 或 block)被删除,或被注入截断的字符串语法。
实现的实验行为:被损坏的文本流进入 Pydantic 模式校验层(ActionPlan.validate_raw_plan)。校验干净地捕获语法错误和缺失的键,返回一份空的动作计划(actions=[]),以零关节运动停止执行。脚本先知规划器直接产生内存中的 Python 领域对象,完全绕过中间的字符串序列化层。因此 F4 被严格地解释为:评测的是提示到 JSON 接口流水线在序列化与模式校验上的敏感性。
V 实验设计与设置
V-A 任务规格与环境
实验在 PyBullet 的无头 DIRECT 模式中进行,使用一台 7 自由度的 Franka Emika/KUKA IIWA 机械臂,配备平行钳口夹爪。操作任务是单物体抓放:机器人必须抓住位于桌上的一块红色积木,并把它放到一个指定的圆形放置区内。放置区中心在 $(0.6,0.35,0.65)\,\text{m}$,可容许半径为 $r_{\text{success}}=0.05\,\text{m}$(包围阈值为 $0.08\,\text{m}$)。回合最长持续时间以 1260 个仿真步为界($5.25\,\text{s}$ 的仿真物理时间)。
V-B 实验矩阵构成
主要基准矩阵恰好包含 150 个回合(每个规划器臂 $75$ 个回合),在主种子 $42$ 下实例化,如表 II 所定义:
- 对照基线:$10$ 个回合,注入的故障为零($I=0.00$)。
- 单故障矩阵:$4\text{ 个故障}\times 3\text{ 个强度}\times 5\text{ 个回合}=60\text{ 个回合}$。
- 并发故障条件:$5$ 个回合,把 F1 传感延迟和 F2 抓取打滑以中等强度($I=0.66$)结合起来。
表 II:实验设计矩阵:平衡的 150 回合队列分配(主种子 42)。
| 队列 | 强度($I$) | 先知 | 大语言模型 | 合计 |
|---|---|---|---|---|
| 对照 | 0.00(名义) | 10 | 10 | 20 |
| F1:传感延迟 | 0.33、0.66、1.00 | 15 | 15 | 30 |
| F2:抓取打滑 | 0.33、0.66、1.00 | 15 | 15 | 30 |
| F3:不可达逆运动学 | 0.33、0.66、1.00 | 15 | 15 | 30 |
| F4:损坏 | 0.33、0.66、1.00 | 15 | 15 | 30 |
| 并发 | 0.66(F1+F2) | 5 | 5 | 10 |
| 回合合计 | 75 | 75 | 150 |
臂 A(大语言模型)中的每一个回合,在臂 B(脚本先知)中都有一个恰好配对的反事实回合,共用相同的场景运行标识、回合索引、逐回合随机种子、积木初始生成坐标、桌面摩擦系数和故障参数。
V-C 规划器实现与模型出处
大语言模型规划器(臂 A):由经由本地 Ollama 推理的 Llama-3 驱动。为了保证科学可复现性,确切的运行时出处被记录在遥测中:
- 提供方:Ollama(本地守护进程)
- 模型名称/标签:llama3:latest
- 权威 SHA256 摘要:
365c0bd3c000a25d28ddbf732fe1c6ad
d414de7275464c4e4d1c3b5fcb5d8ad1
- 解码超参数:贪心解码,温度 $T=0.0$,top-p $0.9$。
- 资源消耗:平均提示词元 $770$,补全词元 $249$,每次计划的总词元 $1019$。平均回合墙钟时间为 $15.8\,\text{s}$(由本地模型前向传播主导)。
脚本先知规划器(臂 B):由 ScriptedOraclePlanner 驱动,它直接从真值场景状态生成确定性的运动学航点。它消耗 $0$ 个词元,每个回合的平均墙钟时间为 $0.15\,\text{s}$。
VI 结果
图 2:150 回合矩阵上,脚本先知基线($N=75$)与大语言模型智能体($N=75$)在各故障条件下的任务成功率。在全部物理与运动学条件上(对照、F1、F2、F3 和并发),两个规划器取得相同表现,不一致对为零。总体分歧完全局部化在 F4 规划器输出损坏上。
表 III:150 回合配对矩阵上的总体表现与主要统计分解。
| 队列 | 先知 | 大语言模型 | 不一致 | McNemar $p$ |
|---|---|---|---|---|
| 全矩阵($N=75$) | 48/75(64%) | 33/75(44%) | 15 | $3.01\times 10^{-4}$ |
| 物理($N=60$) | 33/60(55%) | 33/60(55%) | 0 | $\mathbf{1.00}$ |
VI-A 规划器总体比较与关键分解
表 III 和图 2 概括汇总的经验结果。在完整的 150 回合矩阵上($N=75$ 个种子配对):
- 脚本先知达到 64.0%(48/75)的成功(95% Wilson 区间:$[52.7\%,73.9\%]$)。
- 大语言模型智能体达到 44.0%(33/75)的成功(95% Wilson 区间:$[33.4\%,55.3\%]$)。
- 带连续性校正的配对 McNemar 检验给出 $\chi^{2}=13.067,\mathbf{p=3.01\times 10^{-4}}$,表明汇总差别在统计上显著。
主要统计分解:然而,当排除 F4(规划器输出损坏)的 15 个回合后,剩下的 60 个种子配对回合包含全部物理、感知和运动学条件(对照、F1、F2、F3 和并发)。在这 60 对的物理队列上:
- 脚本先知:33 / 60(55.0%)成功。
- 大语言模型智能体:33 / 60(55.0%)成功。
- 不一致对:恰好为 0。在每一个物理回合上,要么两个规划器都成功,要么两个都失败。配对 McNemar 检验给出 $\chi^{2}=0.00,\mathbf{p=1.00}$。
这一分解代表本研究的核心科学发现:大语言模型规划器在物理、运动学或感知扰动下表现出零内在推理缺陷。汇总差别完全由 F4 的模式拒绝驱动。
表 IV:脚本先知与大语言模型智能体逐条件的经验矩阵结果(合计 $N=150$,每个故障强度格子 $n=5$,对照为 $n=10$)。置信区间是 95% Wilson 得分区间。
| 条件 | 强度 | N | 先知成功 | 先知 95% 区间 | 大语言模型成功 | 大语言模型 95% 区间 | 不一致 | 主要失败机制 |
|---|---|---|---|---|---|---|---|---|
| 对照 | 基线(0.00) | 10 | 10/10(100%) | [72.2%, 100%] | 10/10(100%) | [72.2%, 100%] | 0 | 名义抓放 |
| F1:传感延迟 | 低(0.33) | 5 | 5/5(100%) | [56.6%, 100%] | 5/5(100%) | [56.6%, 100%] | 0 | 陈旧的 $z$ 偏移落在抓取容差内 |
| F1:传感延迟 | 中(0.66) | 5 | 5/5(100%) | [56.6%, 100%] | 5/5(100%) | [56.6%, 100%] | 0 | 陈旧的 $z$ 偏移落在抓取容差内 |
| F1:传感延迟 | 高(1.00) | 5 | 5/5(100%) | [56.6%, 100%] | 5/5(100%) | [56.6%, 100%] | 0 | 陈旧的 $z$ 偏移落在抓取容差内 |
| F2:抓取打滑 | 低(0.33) | 5 | 3/5(60%) | [23.1%, 88.2%] | 3/5(60%) | [23.1%, 88.2%] | 0 | 抬升时释放约束($P_{\text{slip}}=0.27$) |
| F2:抓取打滑 | 中(0.66) | 5 | 2/5(40%) | [11.8%, 76.9%] | 2/5(40%) | [11.8%, 76.9%] | 0 | 抬升时释放约束($P_{\text{slip}}=0.52$) |
| F2:抓取打滑 | 高(1.00) | 5 | 1/5(20%) | [3.6%, 62.4%] | 1/5(20%) | [3.6%, 62.4%] | 0 | 抬升时释放约束($P_{\text{slip}}=0.86$) |
| F3:不可达逆运动学 | 低(0.33) | 5 | 0/5(0%) | [0.0%, 43.4%] | 0/5(0%) | [0.0%, 43.4%] | 0 | 运动学偏移超出放置半径 |
| F3:不可达逆运动学 | 中(0.66) | 5 | 0/5(0%) | [0.0%, 43.4%] | 0/5(0%) | [0.0%, 43.4%] | 0 | 运动学偏移超出放置半径 |
| F3:不可达逆运动学 | 高(1.00) | 5 | 0/5(0%) | [0.0%, 43.4%] | 0/5(0%) | [0.0%, 43.4%] | 0 | 运动学偏移超出放置半径 |
| F4:输出损坏 | 低(0.33) | 5 | 5/5(100%) | [56.6%, 100%] | 0/5(0%) | [0.0%, 43.4%] | 5 | Pydantic 模式拒绝(空计划) |
| F4:输出损坏 | 中(0.66) | 5 | 5/5(100%) | [56.6%, 100%] | 0/5(0%) | [0.0%, 43.4%] | 5 | Pydantic 模式拒绝(空计划) |
| F4:输出损坏 | 高(1.00) | 5 | 5/5(100%) | [56.6%, 100%] | 0/5(0%) | [0.0%, 43.4%] | 5 | Pydantic 模式拒绝(空计划) |
| 并发(F1+F2) | 中(0.66) | 5 | 2/5(40%) | [11.8%, 76.9%] | 2/5(40%) | [11.8%, 76.9%] | 0 | 抓取打滑主导,压过传感陈旧 |
VI-B F1:传感陈旧与缓冲饱和
表 IV 和图 3 记录了 F1 传感延迟的经验行为。虽然请求的延迟从 $0.562\,\text{s}$ 扩展到 $1.500\,\text{s}$,观察到的延迟由于 120 步预安定历史缓冲的深度,仍然被限制在 $0.500\,\text{s}$。在全部 15 个孤立回合上,记录到的空间观察发散恒定为 $\Delta_{\text{pos}}=0.0250\,\text{m}$($2.50\,\text{cm}$),反映的是积木从生成高度落到桌面上的垂直位移。
两个规划器都达到 100.0%(15/15)的成功。如图 3(b) 所示,夹爪开口跨度为 $8.0\,\text{cm}$,提供大约 $\pm 3.5\,\text{cm}$ 的有效横向与垂直容差。因为 $2.5\,\text{cm}$ 的垂直偏移完全落在这一几何抓取包络之内,向下的接近轨迹尽管观察是陈旧的,仍然成功地抓住了积木。
图 3:F1 传感延迟分析:(a)请求延迟对照实现延迟,显示饱和在 0.500 秒的可用历史缓冲深度上。(b)空间陈旧发散(2.50 厘米)对照物理夹爪开口包络(8.0 厘米),解释了 100% 的任务完成。
VI-C F2:执行器退化与配对的打滑衰减
图 4 报告 F2 抓取打滑的结局。因为打滑概率被严格地在每次抬升事件上抽样一次,实现的打滑率随强度单调上升:
- 低($I=0.33$):2/5 次打滑(40.0%)$\rightarrow$ 60.0% 的任务成功(3/5)。
- 中($I=0.66$):3/5 次打滑(60.0%)$\rightarrow$ 40.0% 的任务成功(2/5)。
- 高($I=1.00$):4/5 次打滑(80.0%)$\rightarrow$ 20.0% 的任务成功(1/5)。
关键的是,在相同的逐回合种子下,脚本先知和大语言模型智能体在完全相同的回合上打滑(低强度为回合 002 和 003;中强度为 000、001 和 003;高强度为 000–003)。这表明 F2 评测的是纯粹的机械抓取约束物理,不受高层语义推理影响。
图 4:F2 抓取打滑结果:标定的打滑概率曲线,对照实现的经验打滑率和任务成功率。两个规划器在各强度上表现出相同的单调退化,不一致对为零。
VI-D F3:连续的运动学放置误差
表 V:F3 不可达逆运动学:连续的最终放置误差(到目标中心的距离,单位为米;每格 $n=5$,格内 $\sigma=0.000\,\text{m}$)。
| 强度($I$) | 先知(米) | 大语言模型(米) | 成功(先知/大语言模型) |
|---|---|---|---|
| 对照(0.00) | 0.0349 | 0.0349 | 100% / 100% |
| 低(0.33) | 0.1794 | 0.1839 | 0% / 0% |
| 中(0.66) | 0.2248 | 0.3176 | 0% / 0% |
| 高(1.00) | 0.2830 | 0.2693 | 0% / 0% |
图 5:F3 不可达逆运动学下的连续放置误差。到放置区中心的最终距离对脚本先知单调增加,而大语言模型由于在更高可达极限上的运动学偏转,呈现出非单调响应。
在 F3 不可达逆运动学下,两个规划器在全部强度上的二元任务成功都是 0%。然而,连续的放置距离揭示出不同的运动学行为,如表 V 和图 5 所概括:
- 脚本先知:最终放置误差单调增加:$0.1794\,\text{m}\rightarrow 0.2248\,\text{m}\rightarrow 0.2830\,\text{m}$。
- 大语言模型规划器:呈现出非单调响应:低强度为 $0.1839\,\text{m}$,中强度达到峰值 $0.3176\,\text{m}$,高强度回落到 $0.2693\,\text{m}$。
- 格内标准差为零:在全部 $n=5$ 的格子上,标准差严格为 $0.000\,\text{m}$。这一确定性是确定性可达偏移向量($\vec{\delta}$)、固定的积木坐标、贪心的大语言模型解码($T=0.0$)以及确定性 PyBullet 物理在数学上的预期后果。
VI-E F4:执行路径与序列化敏感性
图 6:F4 规划器输出损坏下的执行路径分歧。大语言模型文本流经过 JSON 序列化,损坏会触发 Pydantic 模式拒绝(0% 成功)。脚本先知绕过序列化,经由内存中的对象直接执行(100% 成功)。
在 F4 规划器输出损坏下,脚本先知达到 100.0%(15/15)的成功,而大语言模型智能体达到 0.0%(0/15)的成功。
图 6 详述了解释这一分歧的执行路径。当 F4 损坏大语言模型的输出字符串时,Pydantic 模式校验器截获缺失的键或无效的语法,捕获 ValidationError,并生成一份空的动作计划(actions=[])。控制服务立即停止执行,阻止不稳定的关节运动,并干净地把任务失败记入日志。相反,因为脚本先知直接生成编译好的内存领域对象,它从不进入字符串序列化或模式解析,从而完全绕过 F4。因此 F4 评测的是序列化接口的鲁棒性,而不是高层认知规划。
VI-F 安全监测结局与事件不变性
安全违规只发生在 F3 不可达逆运动学期间,如表 VI 所详述。在脚本先知臂上,违规只出现在高强度,产生 124 次原始扫描、2 个独特事件,以及 602 个仿真步的持续时间。在大语言模型臂上,出界发生在低强度和中强度(62 次原始扫描、1 个独特事件、301 步)以及高强度(124 次原始扫描、2 个独特事件、602 步)。
表 VI:安全监测器规格(v1.1.0)与经验性的安全事件结局。
| 参数/维度 | 规格/观察值 |
|---|---|
| 安全监测器版本 | 1.1.0 |
| 被监测的连杆 | IIWA/Franka 连杆 0–6 |
| 被排除的接触 | 手臂 $\leftrightarrow$ 桌座;主动抓取反作用 |
| 力阈值 | $F_{\text{thresh}}=3000\,\text{N}$(在 240 Hz) |
| 工作空间($X,Y,Z$) | $[0.15,0.95]$、$[-0.45,0.55]$、$[0.55,1.25]\,\text{m}$ |
| 放置区 | 中心 $(0.6,0.35,0.65)\,\text{m}$,$r=0.18\,\text{m}$ |
| 去重窗口 | $W=15$ 步($\approx 0.0625\,\text{s}$) |
| 故障条件 | 安全事件记录 |
| 对照、F1、F2、F4、并发 | 0 次违规(两个规划器) |
| F3 先知 高 | 124 次扫描、2 个事件、602 步 |
| F3 大语言模型 低/中 | 62 次扫描、1 个事件、301 步 |
| F3 大语言模型 高 | 124 次扫描、2 个事件、602 步 |
| 窗口 $W\in[1,60]$ | 不变(计数变化 0%) |
敏感性分析:把去重关闭窗口在 $W\in\{1,5,10,15,30,60\}$ 个仿真步上变化,得到相同的独特事件计数(低/中为 1 个事件,高为 2 个事件)。因为接触违规连续持续了数百步而没有中断,事件计数对时间窗口的参数化完全不变。
VII 历史试点账目与透明
图 7:169 次历史试点尝试的完整账目。全部 99 次被拒绝的 OpenAI 尝试都因为外部 API 基础设施中止而失败,发生在仿真之前。被接受的本地 Ollama 队列($N=70$)以 0% 的崩溃率执行。
为了防止丢弃偏差,Alpha 审计了初步试点测试中的全部 169 条历史尝试记录(data/raw/pilot/phase_a_pilot/episodes.jsonl),如图 7 所示:
- OpenAI 队列(99 次尝试——100% 为基础设施中止):
- $70$ 次尝试因 openai_runtime_error 失败(网络/传输中止)。
- $26$ 次尝试因 openai_quota_exceeded_429 失败(HTTP 429 配额不足)。
- $3$ 次尝试作为零步的执行前中止而失败。
- 没有任何已完成的回合被丢弃;全部 99 次都在物理仿真之前失败。
- 被接受的本地 Ollama 队列(70 个回合):
- 基础设施崩溃率:0.0%(0/70)。
- 任务成功率:28.6%(20/70)($5$ 个对照 + $15$ 个孤立的 F1)。
这 169 次试点尝试代表初步的探索性迭代,并且被严格地与最终的 150 回合受控评测矩阵分开。
VIII 讨论
Alpha 的经验发现为评测大语言模型驱动的具身操作给出六条核心原则:
- 并非每一次具身失败都是大语言模型的失败。配对的 60 回合物理队列表明,当执行器打滑(F2)或运动学障碍(F3)发生时,一个大语言模型智能体和一个完美的确定性先知,以相同的比例、并且在完全相同的回合上失败。若没有配对基线,就把这类掉落归因于「大语言模型推理脆弱」,在科学上是无效的。
- 物理执行器故障独立于规划而占主导。F2 抓取打滑表现出完全由机械接触摩擦和重力支配的单调退化。除非智能体拥有闭环的重新抓取恢复例程,语义重规划无法从半空中的积木脱离中恢复。
- 感知陈旧可以是可测量的,却并不损害任务成功。在静态桌面任务里,产生可测量空间陈旧($\Delta_{\text{pos}}=2.5\,\text{cm}$)的传感延迟,被夹爪的机械顺应和抓取开口容差完全吸收。感知故障必须对照物理执行器包络来评测。
- 连续指标揭示二元成功之外的严重程度。在 F3 不可达逆运动学中,报告二元成功(0%)会掩盖有意义的运动学退化。连续的放置距离表明,放置误差随可达偏移的幅度而变化,从而把单调的先知伸展与非单调的大语言模型偏转区分开。
- 序列化与校验是主要的失败接口。F4 表明提示到 JSON 的接口异常脆弱。Pydantic 校验成功地阻止了畸形目标去命令不稳定的机器人运动,展示了安全的故障停止行为,代价是任务无法完成。
- 配对的反事实基线不可或缺。若没有脚本先知基线,大语言模型规划器 44% 的成功率可能会被误读成一般性的不可靠。先知把这 20 个百分点的表现差距专门定位到序列化处理上。
IX 效度威胁与局限
每个强度格子的样本量($n=5$):虽然汇总的配对比较($N=75$ 和 $N=60$)提供了较高的精度,格子级比较拥有很宽的置信区间(例如 F2 低强度的 95% 区间是 $[23.1\%,88.2\%]$)。格子级趋势是描述性的,不得被声称成孤立的、统计上显著的效应。
受缓冲限制的传感陈旧:由于单次抓放的结构,抓取之前的历史深度被封顶在 $0.500\,\text{s}$。研究更大的、以秒计的延迟,需要动态的闭环跟踪任务。
序列化测试对照认知测试:F4 评测的是模式解析和语法拒绝。它并不测量在部分不正确的语义推理下那种细微的认知退化。
单一的仿真任务与模型:评测在 PyBullet 中的一个抓放任务上、用一个开源权重模型(Llama-3)进行。这些发现不应当在没有经验验证的情况下,被普遍外推到封闭的前沿模型或真实世界硬件。
X 结论
Alpha 提供一套可复现的故障注入测试架,以及一套配对基线方法,用于评测大语言模型驱动的机器人操作。通过让一个大语言模型智能体与一个确定性脚本先知在 150 个受控回合上配对,我们表明,物理执行器打滑、感知陈旧和运动学可达边界,在两个控制器上产生相同的失败率。语言规划器与确定性系统之间的表现分歧,被定位在序列化与模式校验接口上。未来工作将研究闭环的重新抓取恢复、多步动态装配,以及跨越开放与封闭基础模型的跨模型评测。
参考文献
- [1] M. Ahn、A. Brohan、N. Brown、Y. Chebotar、O. Cortes、B. David、C. Finn、C. Fu、K. Gopalakrishnan、K. Hausman 等。「按我所能做的去做,而不是按我说的去做:把语言接地到机器人可供性上」。Proc. Conf. Robot Learning(CoRL),2022,第 287–318 页。
- [2] A. Brohan、N. Brown、J. Carbajal、Y. Chebotar、X. Chen、K. Choromanski、T. Ding、D. Driess、A. Dubey、C. Finn 等。「RT-2:视觉–语言–动作模型把网络知识迁移到机器人控制」。Proc. 7th Conf. Robot Learning(CoRL),PMLR,第 229 卷,2023,第 2165–2183 页。
- [3] D. Driess、F. Xia、M. S. Sajjadi、C. Lynch、A. Chowdhery、B. Ichter、A. Wahid、J. Tompson、Q. Vuong、T. Yu 等。「PaLM-E:一个具身的多模态语言模型」。Proc. Int. Conf. Machine Learning(ICML),2023,第 8469–8488 页。
- [4] W. Huang、F. Xia、T. Xiao、H. Chan、J. Liang、P. Florence、A. Zeng、J. Tompson、I. Mordatch、Y. Chebotar 等。「内心独白:经由与语言模型一起规划的具身推理」。Proc. Conf. Robot Learning(CoRL),2022。
- [5] S. Vemprala、R. Bonatti、A. Bucker 与 A. Kapoor。「面向机器人的 ChatGPT:设计原则与模型能力」。IEEE Access,第 12 卷,第 55681–55696 页,2024。
- [6] J. Liang、W. Huang、F. Xia、P. Xu、K. Hausman、B. Ichter、P. Florence 与 A. Zeng。「代码即策略:用于具身控制的语言模型程序」。IEEE Int. Conf. Robotics and Automation(ICRA),2023,第 9493–9500 页。
- [7] X. Puig、K. Ra、M. Boben、J. Li、T. Wang、S. Fidler 与 A. Torralba。「VirtualHome:经由程序仿真家务活动」。Proc. IEEE Conf. Computer Vision and Pattern Recognition(CVPR),2018,第 8494–8504 页。
- [8] M. Shridhar、J. Thomason、D. Gordon、Y. Bisk、W. Han、R. Mottaghi、L. Zettlemoyer 与 D. Fox。「ALFRED:一个用于解释日常任务中落地指令的基准」。Proc. IEEE/CVF Conf. Computer Vision and Pattern Recognition(CVPR),2020,第 10740–10749 页。
- [9] S. Srivastava、C. Li、M. Lingelbach、R. Martín-Martín、F. Xia、K. E. Veprek、C. Shen、M. Pham、J. Raza、G. Sukhoy 等。「BEHAVIOR:虚拟、交互且生态的环境中日常家务活动基准」。Proc. Conf. Robot Learning(CoRL),2022,第 477–490 页。
- [10] J. Arlat、M. Crouzet、J. Karlsson、P. Folkesson、E. Fuchs 与 G. H. Leber。「商用现货处理器模块化架构上,物理故障注入与软件实现的故障注入技术之比较」。IEEE Trans. Computers,第 52 卷,第 9 期,第 1115–1133 页,2003。
- [11] E. Cavalcante、M. P. Lourenço、V. P. Silva、A. Perkusich 与 K. Gorbunov。「机器人操作系统(ROS)中的故障注入:一项系统映射研究」。IEEE Int. Conf. Software Testing, Verification and Validation Workshops(ICSTW),2019,第 293–300 页。
- [12] S. Pradhan、B. S. R. K. Rao 与 R. K. Sharma。「用 ROS 故障注入评测自主系统的可信性」。Proc. ACM/IEEE Int. Conf. Automated Software Engineering,2022。
- [13] A. Ramos、F. Castillo 与 P. Gil。「危险环境中自主操作机器人的容错架构」。Robotics and Autonomous Systems,第 142 卷,第 103810 页,2021。
- [14] R. Isermann。「监督、故障检测与故障诊断方法——一篇导论」。Control Engineering Practice,第 5 卷,第 5 期,第 639–652 页,1997。
- [15] W. E. Dixon、I. D. Walker、D. M. Dawson 与 J. P. Hartranft。「机器人操作器中的故障检测与容错:一篇综述」。Proc. IEEE Int. Conf. Robotics and Automation(ICRA),第 3 卷,2000,第 2632–2637 页。
- [16] A. Basiri、N. Behnam、R. de Rooij、L. Hochstein、L. Kosewski、J. Reynolds 与 C. Rosenthal。「混沌工程」。IEEE Software,第 33 卷,第 3 期,第 35–41 页,2016。
- [17] A. Basiri、L. Hochstein、N. Jones 与 H. Tucker。「在生产环境中自动化混沌实验」。Proc. IEEE/ACM 41st Int. Conf. Software Engineering: Software Engineering in Practice(ICSE-SEIP),2019,第 31–40 页。
- [18] M. Jordan、T. Vogel 与 H. Giese。「面向有韧性的信息物理系统的混沌工程:一种架构视角」。Proc. IEEE Int. Conf. Software Architecture Companion(ICSA-C),2020,第 129–136 页。
- [19] E. Coumans 与 Y. Bai。「PyBullet,一个用于游戏、机器人学和机器学习中物理仿真的 Python 模块」。GitHub 仓库,https://github.com/bulletphysics/bullet3,2016–2021。
- [20] H. Touvron、T. Lavril、G. Izacard、X. Martinet、M.-A. Lachaux、T. Lacroix、B. Rozière、N. Goyal、E. Hambro、F. Azhar 等。「Llama:开放且高效的基础语言模型」。arXiv 预印本 arXiv:2302.13971,2023。
- [21] S. Colvin 等。「Pydantic:用 Python 类型提示做数据校验」。文档,https://docs.pydantic.dev/,2023。
- [22] L. Beurer-Kellner、M. Fischer 与 M. Vechev。「提示即编程:一种面向大语言模型的查询语言」。Proc. ACM Program. Lang.,第 7 卷,第 PLDI 期,2023。
- [23] S. Shalev-Shwartz、S. Shammah 与 A. Shashua。「关于安全且可扩展的自动驾驶汽车的一个形式模型」。arXiv 预印本 arXiv:1708.06374,2017。
- [24] M. Althoff 与 J. M. Dolan。「用可达性分析对自动车辆做在线核验」。IEEE Trans. Robotics,第 30 卷,第 4 期,第 903–918 页,2014。
觉得有用,转给同事
微信扫码
用微信扫一扫,在手机上打开后即可转发。