HiRobot¶
约 1503 个字 预计阅读时间 6 分钟
简介 ¶
Motivation¶
人类智能关键特征:灵活适配新场景、实时响应指令、修正建议。现实家庭环境机器人也需要该能力。
示例场景:餐后整理餐桌,机器人不能死板执行固定步骤,要理解 “只收拾吃完人的餐具”
、 “别碰这个” 这类动态指令。
现实任务语言非常复杂,举例:
“给我做一份素食三明治,不要番茄;如果有火腿,给我朋友单独做一份火腿三明治
。 ”
论文借用卡尼曼《思考快与慢》的System1 / System2认知模型类比机器人系统:
- System1(快直觉):低层,执行简单原子技能,对应传统语言条件模仿学习,完成 “拿起易拉罐” 这类简单指令;
- System2(慢思考):高层推理,解析复杂长时序任务、理解反馈,规划下一步动作,过去机器人工作大多只做到 System1。
直接用机器人演示数据训练高层模型很难覆盖千变万化的人类口语指令。因此提出合成数据生成方法:基于机器人观测和原子动作,用大 VLM 反向生成可能对应的人类指令、插话、约束条件,用这些合成样本训练高层策略。
架构 ¶

整体架构分为高层策略 High‑Level Policy (VLM)、低层策略 Low‑Level Policy (VLA)。
- 用户输入开放指令 / 插话送入高层;
- 高层输出:机器人口头回复(可选) + 简单低层语言命令;
- 低层接收图像、机器人状态、高层输出的原子命令,输出机器人执行动作。
分层推理 ¶
- 高层策略 \(p^{hi}(\hat{\ell}_t | I_t, \ell_t)\):输入图像观测、复杂开放用户指令 \(\ell_t\),输出简化原子语言指令 \(\hat{\ell}_t\)。
- 低层策略 \(p^{lo}(A_t | I_t, \hat{\ell}_t, q_t)\):接收原子指令,输出动作块。
运行频率: 低层高频运行输出动作;高层低频触发:每 1 秒自动运行一次,或者收到新用户语言反馈时立刻触发。
简单任务可以直接把用户原始指令传给低层,跳过高层。高层价值处理低层无法理解的复杂 prompt、上下文约束、实时纠错。
用户交互机制 ¶
用户随时输入文本 / 语音(语音转文本
关键优势:高层同时看图像 + 用户语言,实现现场推理 (situated reasoning)。例如 “那不是垃圾”,结合视觉画面理解对象,纯文本 LLM 做不到。用户可以取消纠错,回到原有任务继续执行。
数据采集与训练流程 ¶

- 采集示教数据 \(D_{demo}\):遥操作机器人采集轨迹;
- 切分标注得到 \(D_{labeled}\):把长轨迹切为 1‑3 秒短技能片段,人工标注原子技能指令(如 “拿起生菜”
) ; - 合成数据生成得到 \(D_{syn}\):给生成用 VLM (\(p^{gen}\)) 输入画面 + 原子技能标签,反向生成可能的用户指令、约束、纠错,还有机器人应答。
输入:画面 + 技能
pick up lettuce;输出用户 prompt: “帮我加一点生菜”,机器人回复: “好的”。
- 训练高层策略:训练集 =\(D_{labeled} \cup D_{syn}\),next‑token 交叉熵损失;
- 训练低层策略:训练集 =\(D_{demo}\cup D_{labeled}\),flow‑matching 损失,复用 π₀训练范式。
训练流程 ¶
预训练 VLM PaliGemma‑3B¶
PaliGemma‑3B 是公开、已经做好多模态预训练的权重,不是本文训练出来的:
- 预训练阶段:在网页图文数据完成图像‑文本对齐预训练;输出文本,不能输出机器人动作。
-
Hi‑Robot 把这个同一个预训练底座拷贝两份副本,分别走两套微调流程:
-
副本 A → 微调为高层策略(High‑Level VLM):仍然只输出文本(机器人应答、原子技能指令)
- 副本 B → 微调为低层 VLA(π₀):在 PaliGemma‑3B 基础上额外增加 flow‑matching「动作专家头
」 ,输出机器人连续动作。
⚠️ 注意:底层 VLA 里面的 VLM 主干,没有重新做图文预训练;它复用 PaliGemma 已经完成的预训练知识,只是在机器人数据集上做二次微调,并且新增动作输出分支。
两个模块训练时序拆解 ¶
步骤 0 ¶
PaliGemma‑3B:大规模图文预训练,得到基础多模态权重。
步骤 1:训练低层 VLA(π₀)¶
- 加载预训练好的 PaliGemma‑3B;
- 增加 flow‑matching 动作输出模块;
- 使用机器人示教数据集 \(D_{demo} \cup D_{labeled}\) 做微调; 目标:输入图像 + 简单原子语言指令,输出机器人动作块。
低层 VLA 内部 Transformer 主干还是 PaliGemma,只是不再只输出文本 token,flow‑matching 头输出连续动作。 预训练(图文)→ 机器人数据微调 → 得到 VLA。
步骤 2:训练高层策略 VLM ¶
- 重新加载一份原始 PaliGemma‑3B 预训练权重(不是训练完的低层 VLA 权重);
高低层是两个独立微调副本,权重不共享,不会互相拷贝;
- 使用 \(D_{labeled} \cup D_{syn}\)(人工标注 + 合成交互数据)做文本方向微调;
高层全程只做文本生成,没有动作头;输入图片 + 用户复杂自然语言,输出机器人回复 + 低层原子技能文本指令。
关键点
- 预训练只有一次(PaliGemma 官方);
- Hi‑Robot 没有自己预训练 VLM/VLA;只做两份不同下游微调;
- 低层 VLA 里的 VLM 主干来自通用图文预训练,之后在机器人数据上微调适配动作任务;高层同样来自原始预训练权重,微调适配交互规划任务。