01. 具身智能面试博客:基础认知与 VLA 框架

1. 基础概念速查表

概念面试里应该怎么说常见坑
Embodied AI(具身智能)身体约束下的闭环交互智能,动作会改变下一步观测只说“多模态 AI”
VLA(Vision-Language-Action,视觉-语言-动作)视觉/语言/状态条件下生成机器人动作只把它当 VQA 或规划器
Transformer(基于注意力机制的序列建模架构)用 attention(注意力机制)在 token 之间建模关系,是 VLM/VLA 的常见骨架只会背“注意力”,不会讲 token、位置编码和延迟
ViT(Vision Transformer,视觉 Transformer)把图像切成 patch token,再用 Transformer 编码不知道 patch token 是什么
VAE(Variational Autoencoder,变分自编码器)用 latent variable 表达数据背后的隐变量以为它只用于图像生成
CVAE(Conditional VAE,条件变分自编码器)在条件输入下生成目标,ACT 里常用它建模 action chunk 的多种风格不知道为什么能避免平均动作
MAE(Masked Autoencoder,遮挡自编码器)自监督重建任务,用来学视觉表征以为它是“某个机器人模型名字”
Action Token(动作 token)把连续动作离散化成 token,便于接自回归 VLM忽略离散误差和延迟
Action Chunk(动作块)一次预测未来 K 步动作,提升连贯性和吞吐chunk 越长越好是错的
EEF Action(End-Effector Action,末端执行器动作)末端执行器位姿/增量,更直观、跨任务友好需要 IK/控制器兜底
Joint Action(关节动作)关节位置/速度,更贴近硬件跨机器人迁移较差
快慢系统慢系统做语义/规划,快系统做连续控制误以为必须两个独立模型
Embodiment(具身形态/本体差异)机器人身体形态、自由度、传感器、控制频率等差异只理解成“机器人型号不同”
OOD(Out-of-distribution,训练外分布)测试样本超出训练分布只把它当“泛化差”
BC(Behavior Cloning,行为克隆)直接模仿专家动作只会说“监督学习”

2. Q1:请用你自己的话讲一下,什么是具身智能?它和传统 CV/NLP、机器人控制有什么区别?

2.1 面试官问法

  • 你怎么理解 embodied intelligence?
  • 为什么说 VLA 不是简单的“视觉模型 + 语言模型 + 控制器”?
  • 具身智能和传统机器人算法最大的差别是什么?

如果面试官用英文问,embodied intelligence(具身智能) 强调的是智能体有身体、有传感器、有执行器,并且会在环境中闭环行动。

2.2 考察点

面试官主要看三点:你是否理解“身体和环境交互”是核心;你是否能区分离线感知任务和闭环控制任务;你是否知道机器人学习的瓶颈在数据、泛化、安全和实时性。

2.3 30 秒回答

具身智能是让智能体通过身体、传感器和执行器,在真实或仿真环境中感知、理解、决策并行动的能力。它和传统 CV/NLP 最大的区别是输出不是标签或文本,而是会改变世界状态的动作;和传统控制最大的区别是,它更依赖大规模数据和学习到的语义泛化能力,而不是只依赖手工建模、规划和控制律。

2.4 2-3 分钟展开回答

我会从三个层面理解具身智能。

第一,它是闭环的。CV(Computer Vision,计算机视觉)可以只做识别,NLP(Natural Language Processing,自然语言处理)可以只生成文本,但机器人执行动作后会改变场景,下一帧观测又受上一动作影响,所以要考虑时序反馈、误差累积和安全边界。

第二,它是多模态的。实际系统通常有 RGB/RGB-D、多视角、语言指令、本体状态、力/触觉、历史动作等输入。模型不仅要“看懂”,还要把语义和可执行动作对齐。例如“把杯子放到盘子旁边”不是单纯识别杯子,而是要知道目标物、空间关系、可达性、抓取方式和放置约束。

第三,它是受身体约束的。不同机器人有不同自由度、夹爪、关节限位、控制频率和动力学特性。同一个语言目标在 Franka、xArm、双臂 ALOHA、人形机器人上的动作空间都不一样。因此具身智能不能只看高层语义,还要处理 embodiment(具身形态/本体差异)

一个好的回答可以落到 VLA(Vision-Language-Action,视觉-语言-动作)Vision(视觉) 提供场景和目标,Language(语言) 提供任务语义,Action(动作) 把语义落到连续或离散控制命令。真正难点在于让 Vision、Language、Action 三者在数据、模型和部署闭环里一致

2.5 常见追问

  • 如果只用 VLM 识别目标,再接传统规划,是不是也算具身智能?
  • 为什么机器人数据比互联网图文数据更难规模化?
  • “泛化”在具身智能里具体指什么?

2.6 高分追问回答

VLM(Vision-Language Model,视觉语言模型) + 传统规划可以是具身系统的一种实现,但它通常更偏模块化:VLM 负责语义,规划器负责几何和动作,低层控制器负责执行。端到端 VLA 则试图直接从图像、语言和状态预测动作,优势是能从数据里学习一些难以手写的策略,劣势是可解释性、安全验证和 OOD(Out-of-distribution,训练外分布)鲁棒性更难

泛化不能只说“换物体也能做”。机器人里的泛化至少包括物体泛化、场景泛化、语言泛化、视角泛化、任务组合泛化和 embodiment 泛化。面试时最好结合一个例子,例如模型在训练中见过“拿杯子”和“放碗”,测试时能不能完成“把红色杯子放到碗旁边”,这才体现语义组合和动作泛化。

3. Q2:VLA 是什么意思?Vision、Language、Action 三者怎么串起来?

3.1 面试官问法

  • VLA 模型的输入输出是什么?
  • Vision-Language-Action 是怎么对齐的?
  • RT-2、OpenVLA、π0 这类模型本质上有什么共同点?

3.2 考察点

面试官在看你是否能讲清楚 VLA 的数据流,而不是只知道缩写。核心是:视觉和语言形成任务条件,机器人状态提供 embodiment 约束,动作头输出可执行控制。

3.3 30 秒回答

VLA 是 Vision-Language-Action。典型输入是多视角图像、语言指令、机器人当前状态和历史动作;模型先用视觉/语言 backbone(主干网络) 得到任务上下文,再由 action head(动作头) 输出下一步动作或未来一段动作 chunk。不同模型差别主要在动作表示:RT-2/OpenVLA 偏离散 action token,ACT/π0/GR00T/SmolVLA 更偏连续 action chunk 或 flow/diffusion 生成

3.4 2-3 分钟展开回答

可以把 VLA 拆成四个模块,面试时要强调它不是 VQA,而是条件动作生成系统

  • 视觉编码:把相机图像编码成 token(离散序列单元)feature(特征向量),常见 backbone(主干网络) 包括 ViT(Vision Transformer,视觉 Transformer)SigLIP(Sigmoid Loss for Language Image Pre-training,一种图文对齐视觉编码器)CLIP(Contrastive Language-Image Pre-training,对比式图文预训练模型)DINOv2(自监督视觉表征模型) 或模型自带视觉塔。
  • 语言编码:把自然语言任务变成 token embedding(词元向量表示),提供目标、约束和上下文。
  • 状态融合:加入 proprioception(本体感知),例如关节角、末端位姿、夹爪开合、历史动作、base velocity(移动底盘速度)
  • 动作生成:输出离散 token、关节/末端连续控制、动作块或 latent action(潜在动作表示)

RT-2 的代表性做法是把动作离散化成 token,使 VLM 可以像生成文本一样生成机器人动作。π0、GR00T、SmolVLA 则更强调连续动作生成,通常让VLM 负责语义理解,让 flow matching(流匹配,学习从噪声到动作的向量场)diffusion transformer(扩散 Transformer 动作生成器) 这类 action expert 负责生成平滑的连续轨迹

面试时可以补一句工程视角:VLA 不是输出“最终答案”,而是以一定频率反复输出动作,接到机器人低层控制器。真实部署时还要有安全检查、限幅、碰撞检测、fallback(失败兜底策略) 和动作平滑

3.5 常见追问

  • VLA 的 Action 是低层 torque(扭矩) 还是高层 trajectory(轨迹)?
  • 为什么很多模型输出 action chunk,而不是只输出一个动作?
  • 如果语言指令有歧义怎么办?

3.6 高分追问回答

**Action 粒度取决于系统设计。**大多数 VLA 不直接输出 torque(关节扭矩),因为 torque 对动力学和控制频率要求太高,安全风险也更大。常见输出是 end-effector delta pose(末端执行器位姿增量)joint position/velocity(关节位置/速度)gripper command(夹爪命令),或者未来 K 步动作序列。低层仍由 impedance controller(阻抗控制器)position controller(位置控制器)MPC(Model Predictive Control,模型预测控制) 或机器人 SDK 执行。

action chunk(动作块) 的作用是减少有效决策 horizon(时域长度),提高推理效率和动作连贯性。比如 ACT 和 RDT 都会预测一段未来动作。缺点是 chunk 太长会降低对新观测的反应速度,所以部署时常用 temporal ensemble(时间集成,融合多个重叠动作块)receding horizon(滚动时域,只执行前几步再重规划) 或异步推理来平衡。

语言有歧义时,模型本身可能会猜,这在机器人里危险。工程上应加入澄清机制、任务约束解析、安全规则和低置信度 fallback。例如“拿那个杯子”但画面有多个杯子时,系统应该询问或默认选择最近/最显著目标,并让策略置信度参与决策。

在这里插入图片描述

4. Q3:大脑和小脑在具身智能里分别指什么?分层架构和端到端 VLA 各有什么优缺点?

4.1 面试官问法

  • 你怎么看快慢系统?
  • VLM 负责规划、policy 负责控制,这种架构是不是更合理?
  • 端到端 VLA 会不会不可控?

4.2 考察点

这是架构判断题。面试官想看你是否知道系统可以分层,而不是把所有问题都交给一个大模型。

4.3 30 秒回答

“大脑”通常指高层语义理解、任务规划和长时序推理“小脑”通常指低层连续控制、轨迹生成和快速反馈。分层架构更可控、更容易插入安全规则和传统规划;端到端 VLA 更容易从数据中学习复杂策略和跨任务泛化,但可解释性、实时性和安全验证更难

4.4 2-3 分钟展开回答

快慢系统可以这样理解,核心是把低频语义推理和高频连续控制解耦

  • 慢系统:理解语言、识别目标、分解任务、选择技能、处理异常。频率可以低一些,几十到几百毫秒甚至秒级。
  • 快系统:根据当前视觉/状态输出动作,保持轨迹平滑,处理扰动。频率通常更高,要求稳定和低延迟。

GR00T 这类模型就很适合作为例子:VLM 侧承担理解和推理,动作侧用 Diffusion Transformer 生成连续动作。SmolVLA 也有类似思想:VLM 提供上下文,flow matching action expert 生成动作块。

分层架构的优势是工程可控。你可以把任务规划、感知、动作生成、安全监控、低层控制拆开调试。缺点是模块接口会带来信息损失,例如高层只输出目标位姿,可能丢掉语言中的细粒度约束。

端到端 VLA 的优势是能利用大规模数据学习感知到动作的隐式映射,对复杂接触和非结构化场景有潜力。缺点是很难证明安全,失败时不容易定位是视觉、语言、动作头还是数据分布问题。

实际项目里我更倾向 hybrid(混合式架构)高层用 VLM/VLA 做语义和技能选择,中层用 learned policy(学习得到的策略模型) 生成动作,底层保留传统控制和安全约束。这样既能利用学习泛化,也保留工程兜底。

4.5 常见追问

  • 长时序任务该用端到端还是分层?
  • learned policy 和传统控制器怎么分工?
  • 如果高层规划错了,低层能不能纠正?

4.6 高分追问回答

长时序任务一般不建议纯端到端一步到位。更稳的做法是把任务拆成 subgoal 或 skill,例如“找到杯子、接近、抓取、移动、放置、验证”。高层负责子目标和异常恢复,低层负责每个短技能的闭环执行。这样能降低 horizon,减少误差累积,也方便收集和标注数据。

learned policy(学习得到的策略模型) 不应该绕过低层安全控制。它可以输出期望末端增量、关节位置或轨迹,底层控制器负责限速、限幅、碰撞检查、关节限位和插补。这样即使模型输出有抖动,也不至于直接变成危险 torque。

5. Q4:常见动作表示有哪些?离散 action token、连续轨迹、action chunk 怎么选?

5.1 面试官问法

  • RT 系列的离散动作 token 和 π0 的连续动作有什么区别?
  • 为什么 ACT/RDT 要做 action chunk?
  • 机器人 14 维动作一般是什么?还有其他表示方法吗?

5.2 考察点

这是 VLA 面试核心题。答得好说明你理解 action space,而不是只会讲模型名。

5.3 30 秒回答

动作表示大致有三类:离散 token、连续单步动作、连续动作块。离散 token 方便接入自回归 VLM,但精度和速度受 tokenization(离散化/token 化) 影响;连续动作更适合机器人控制,可直接表示关节或末端轨迹;action chunk 一次预测未来 K 步,能减少推理频率和长时序误差,但 chunk 太长会降低反应性

5.4 2-3 分钟展开回答

第一类是离散 action token。RT-2 把动作维度离散化,再映射到语言 token 空间。好处是可以复用 VLM 的自回归生成能力,把语言和动作统一成 token 序列。缺点是动作精度受离散 bin 限制,生成多个 token 也可能带来推理延迟。这个是把动作当成“单词”。要输出一个 7 自由度的动作,可能需要生成 7 个 Token( A 1 , A 2 , … , A 7 A_1, A_2, \dots, A_7 A1,A2,,A7)。

第二类是连续单步动作。例如输出 delta x, delta y, delta z, delta roll, delta pitch, delta yaw, gripper,或者输出 joint position/velocity。它更贴近控制,但如果只预测一步,长任务里容易出现 myopic behavior 和动作抖动。这种模型会取出一个特定的特征向量(通常是最后一个 token 的输出或专门的 [ACTION] token),通过一个简单的 MLP(多层感知机)直接输出连续向量。模型只预测下一帧 t + 1 t+1 t+1 的状态。

第三类是 action chunk。ACT、RDT、SmolVLA 等都会输出未来一段动作。chunk 可以看作短 horizon trajectory,让模型学习局部动作模式,比如“伸手抓取”不是单个点,而是一段连续轨迹。推理时通常只执行 chunk 的前几步,再用新观测重规划。在 Transformer 的输出端挂载一个专门的 Action Head(通常是 MLP 或轻量级扩散模型)。Transformer 只跑一次,提取出多模态特征,然后由 Action Head 一次性“喷”出一整个动作块(Chunk)。模型一次预测未来一连串动作轨迹(比如 t + 1 t+1 t+1 t + k t+k t+k)。它输出的是一个时空相关的序列

在这里插入图片描述

14 维动作常见于双臂或包含夹爪的系统。例如双臂各 7 维末端动作:每只手 3D translation + 3D rotation + gripper,合起来 14 维;也可能是双臂各 6/7 个关节位置,再加夹爪。面试时不能死记,要先说明“具体取决于项目定义”,再讲常见设计。

选择标准:

  • 语言/语义推理强、动作精度要求中等:可以考虑离散 token。
  • 高频连续控制、接触丰富、精度要求高:连续动作或 diffusion/flow 更合适。
  • 长时序、推理开销大、希望动作平滑:action chunk 更合适。
  • 跨机器人 embodiment:需要统一 action schema(动作格式/动作规范),或者使用 latent action / adapter(适配器) 映射。

5.5 常见追问

  • action chunk 增大时,如何平衡推理延迟与控制精度?
  • joint space 和 EEF space 怎么选?
  • gripper 或灵巧手动作怎么表示?

5.6 高分追问回答

chunk 越大,模型每次推理覆盖的未来越长,推理频率可以降低,动作也可能更连贯。但环境变化时,长 chunk 会让策略反应慢,特别是目标移动、接触状态变化或人机交互场景。实践上可以用 receding horizon:预测 K 步,只执行前 M 步;或者用 temporal ensemble 融合多个重叠 chunk,既保留平滑性,又提高反应性

EEF space 末端空间更直观,适合抓取、放置、移动物体;joint space 关节空间更贴近硬件,能避免逆解不稳定和奇异点问题,但跨机器人泛化更差。复杂系统里常见做法是模型输出 EEF delta,底层 IK 或控制器转 joint command。

灵巧手通常需要更高维动作,可以输出关节位置、finger synergy(手指协同控制,把多个手指关节绑定成低维协同模式)grasp primitive(抓取原语,预定义的基础抓取动作) 或 latent action。直接输出所有手指关节会增加数据需求和控制难度,所以很多系统会先用低维夹爪或预定义 grasp mode(抓取模式)

6. Q5:Transformer、ViT 和 VLA 有什么关系?为什么基础面试经常问它?

6.1 面试官问法

  • Transformer 的核心是什么?
  • ViT 为什么能处理图像?
  • VLA 里 token 数为什么会影响推理延迟?

6.2 考察点

这是基础中的基础。面试官不是要你完整推导 Transformer,而是看你是否知道:VLA 里的图像、语言、历史动作和机器人状态,很多时候都会被整理成 token 序列,然后交给 Transformer 建模关系。

6.3 30 秒回答

**Transformer(基于注意力机制的序列建模架构)用 self-attention(自注意力)在 token 之间建立关系。**语言 token 表示词或子词,图像 token 可以来自 ViT 把图像切成 patch,机器人动作和状态也可以变成时序 token。VLA 里 token 数越多,attention 计算和显存越重,所以多相机、多帧历史、长指令都会影响实时性。

6.4 2-3 分钟展开回答

Transformer 的核心是 self-attention(自注意力)。它会让每个 token 去看其他 token,并根据相关性聚合信息。比如语言里“杯子”和“红色”要对齐,图像里目标物 patch 和语言目标要对齐,动作序列里当前动作要和历史动作保持连续。

ViT(Vision Transformer,视觉 Transformer) 的做法是把图像切成小块,也就是 patch(图像块),每个 patch 变成一个 token,再像处理文本一样送进 Transformer。这样图像也能用 attention 建模全局关系。

VLA 里 Transformer 的特殊点是 token 来源更复杂:

  • 语言 token:来自任务指令。
  • 图像 token:来自单视角或多视角图像 patch。
  • 状态 token:来自关节角、末端位姿、夹爪状态。
  • 时间 token:来自历史观测或 action chunk。

所以面试里要补一句工程结论:Transformer 能统一多模态序列,但 token 数会直接影响延迟和显存。 如果多相机高分辨率、长历史窗口全部塞进去,self-attentionO(n^2) 成本会让部署变慢。因此需要降采样、视觉 token 压缩、关键帧选择、cross-attention(跨注意力,用一类 token 查询另一类 token) 或分层架构。

6.5 常见追问

  • self-attention 为什么是 O(n^2)
  • ViT 的 patch size 变大或变小有什么影响?
  • 多视角图像是拼 token 还是分别编码?

6.6 高分追问回答

self-attention 要计算每个 token 和每个 token 的相关性,所以会形成 n x n 的注意力矩阵,复杂度随 token 数平方增长。patch size(图像块大小) 越小,细节更多但 token 更多;patch size 越大,速度更快但细节更粗。多视角可以共享 encoder(编码器) 后拼接,也可以分视角编码再融合,但一定要加 view embedding(视角嵌入) 或 camera pose,否则模型可能不知道每个 token 来自哪个相机。

在这里插入图片描述

7. Q6:ViT、CLIP/SigLIP/DINOv2 这些视觉编码器在 VLA 里怎么选?

7.1 面试官问法

  • VLA 里的视觉 encoder 你会用哪个?
  • CLIP、SigLIP、DINOv2、MAE 适合什么场景?
  • 多视角是否共享 encoder?如何避免 view collapse?

7.2 考察点

面试官想知道你是否理解视觉表征和机器人控制的差异。机器人不是只做图像分类,它需要空间、接触、目标状态和动作相关特征。

7.3 30 秒回答

CLIP(对比式图文预训练)/SigLIP(Sigmoid Loss 图文预训练)强在图文语义对齐,适合语言条件任务;DINOv2(自监督视觉表征模型)强在视觉表征和局部结构,适合目标、部件和空间关系;MAE(Masked Autoencoder,遮挡自编码器)适合自监督预训练和多视角重建。VLA 里常用预训练视觉塔,再通过机器人数据微调或接 action head。多视角可以共享 encoder,但要保留 view embedding(视角嵌入) / camera pose(相机位姿),否则容易视角混淆

7.4 2-3 分钟展开回答

CLIP 和 SigLIP 的优势是语义对齐,能把语言指令和图像目标联系起来。例如“拿红色杯子”需要视觉 token 对颜色、类别、语言有对齐能力。SigLIP 在很多新 VLM 中被用作视觉编码器,因为训练目标和扩展性对多模态模型友好。

DINOv2 更偏视觉自监督表征,通常对物体边界、局部结构、dense correspondence(稠密对应关系) 更友好。对于不依赖复杂语言但需要稳定视觉特征的 manipulation(操作/抓取类任务),DINO 类特征可能更有价值。

MAE 的价值在于自监督和重建,特别是多视角场景中,可以通过 masked reconstruction(遮挡重建) 学到几何和场景一致性。但 MAE 的表征未必天然和语言对齐,所以通常需要额外对齐或下游微调。经常会在VLA中被用于掩码掉其中一个视角的图像,尝试通过其他视角的图像来重建。来帮助模型建立 3D 几何一致性。

在这里插入图片描述

多视角是否共享 encoder 要看数据量和相机差异。如果视角相似或希望参数共享,可以共享 encoder,加 camera embedding(相机嵌入)、view embedding 或外参编码;如果 wrist camera(腕部相机)third-person camera(第三视角相机) 差异很大,可以部分共享或分开编码。避免 view collapse(视角坍塌,模型忽略不同相机差异) 的关键是不要让模型把不同视角当成无差别图像,要显式注入视角身份,并在训练目标中保留每个视角对动作的贡献。

7.5 常见追问

  • hard negative mining 在 vision-language 对齐中怎么做?
  • token-level saliency 怎么证明模型看对了?
  • 如果背景变化大怎么办?

7.6 高分追问回答

hard negative mining(困难负样本挖掘) 可以构造语义相近但动作不同的样本,例如“红杯子”和“蓝杯子”同时出现,语言只改颜色,正确动作目标必须变;或者同一场景中目标和 distractor(干扰物) 形状相似。训练时让正样本图文动作对靠近,负样本远离,或者用 contrastive loss(对比损失) / 分类辅助任务增强对齐。

saliency(显著性/关注区域) 可以看 cross-attention(跨模态注意力)gradient-based attribution(基于梯度的归因)、遮挡实验和 counterfactual test(反事实测试)。真正有说服力的是干预:遮住目标物性能下降,遮住背景影响小;替换语言目标后注意力和动作目标也随之变化。

在这里插入图片描述

def compute_gradient_attribution(model, inputs, target_action_idx=0):
    model.zero_grad()
    
    # 开启特征层梯度检查
    features = model.vision_tower(inputs['pixel_values'])
    features.requires_grad = True
    
    # 前向传播得到 Action 预测
    outputs = model(inputs)
    action_logits = outputs.action_logits # 假设输出是离散 token
    
    # 针对预测出的动作计算梯度
    score = action_logits[0, target_action_idx]
    score.backward()
    
    # 获取特征图及其梯度
    grads = features.grad
    weights = torch.mean(grads, dim=(1, 2), keepdim=True)
    grad_cam = torch.sum(weights * features, dim=0).detach()
    
    return grad_cam

背景变化大时,不能只靠数据增强。还要保证数据覆盖、视觉预训练、目标显式 grounding(语义落地/把语言目标定位到具体物体)、多视角冗余和失败数据回流。对于部署,可以加入目标检测/分割辅助分支或 safety monitor(安全监控模块)

8. Q7:Transformer 位置编码、RoPE、KV cache 在 VLA 里有什么用?

8.1 面试官问法

  • 介绍绝对位置编码和 RoPE,为什么很多模型采用 RoPE?
  • KV cache 的作用是什么?机器人里为什么要关心它?
  • 自回归生成动作和非自回归生成动作在推理上有什么差异?

8.2 考察点

这是大模型基础和 VLA 部署的交叉题。答法要同时覆盖原理和机器人实时性。

8.3 30 秒回答

位置编码让 Transformer 知道 token 顺序absolute positional encoding(绝对位置编码) 给每个位置一个固定或可学习 embedding;RoPE(Rotary Position Embedding,旋转位置编码) 通过旋转方式把相对位置信息注入 query/key,更适合长度外推和相对位置建模。KV cache(键值缓存) 缓存历史 token 的 key/value,避免自回归推理时重复计算。机器人里关心它,是因为动作 token 或语言规划的推理延迟会直接影响控制频率。

8.4 2-3 分钟展开回答

**Transformer 本身对 token 顺序不敏感,所以需要位置编码。**绝对位置编码简单,但如果测试长度超过训练长度,外推可能差。RoPE 把位置信息编码到 query/key(查询/键向量) 的旋转角度里,attention score(注意力分数) 会自然包含相对位置信息,因此在长上下文 LLM/VLM 中很常见。传统的绝对位置编码(如 BERT 的可学习编码)只告诉模型“我是第 3 个词”,而 RoPE 通过将向量在复平面上旋转,使得两个 Token 之间的点积(Attention Score)仅依赖于它们的相对距离 ( n − m ) (n-m) (nm)。这样可以让模型不再死记硬背绝对位置,而是学会了“词与词之间的间距关系”,这更符合自然语言的逻辑。

在这里插入图片描述

在 VLA 中,位置不只是一维文本位置,还包括图像 patch 位置、时间步位置、动作序列位置和多视角位置。图像 patch 需要二维空间信息,动作 chunk 需要时间顺序,历史观测需要时序位置。因此不能只说“位置编码用于文本”,而要说它帮助模型区分空间和时间结构。

KV cache 主要用于自回归推理。生成第 t 个 token 时,历史 token 的 key/value 不需要重复算,缓存后只算新增 token 。对于 RT-2/OpenVLA 这类 action token 方案,KV cache 能降低动作 token 生成延迟。但对于 diffusion/flow matching action head,生成方式不完全是标准自回归,KV cache 的收益要看 VLM 部分和 action expert 设计

8.5 常见追问

  • 为什么连续动作生成常比自回归 token 更适合实时控制?
  • RoPE 对图像 token 是否足够?
  • KV cache 会带来什么工程问题?

8.6 高分追问回答

自回归 token 需要逐 token 生成,如果一个动作要多个 token,延迟会叠加;连续动作生成可以一次输出一个 action chunk,更适合低延迟控制。代价是训练目标和动作分布建模更复杂,需要 diffusion、flow matching、CVAE 或回归损失

RoPE 对文本和一维序列很好,但图像和机器人时序常需要额外设计,例如二维位置编码、view embedding、camera embedding、time embedding。多模态模型里位置编码不是一个统一答案,而是要匹配 token 的物理含义。

在这里插入图片描述

KV cache 会占显存,并且多相机高分辨率输入会让上下文 token 很多。部署时要控制图像 token 数、历史窗口长度、batching(批处理) 和 cache 生命周期,否则会影响实时性。

9. Q8:如果面试官问“你会怎么设计一个基础 VLA 系统”,应该怎么答?

9.1 面试官问法

  • 从 0 到 1 设计一个语音/语言控制机械臂拿杯子的系统。
  • 输入输出怎么定义?数据怎么采?模型怎么训?怎么部署?
  • 你会选端到端还是模块化?

9.2 考察点

这是系统设计题。好的回答应该有清晰边界:任务定义、硬件输入、动作空间、数据、模型、训练、部署、安全、评测。

9.3 30 秒回答

我会先做 hybrid VLA 系统:语言/VLM 负责目标理解和任务条件,策略模型负责输出短 horizon action chunk,底层控制器负责限速、IK(Inverse Kinematics,逆运动学)、碰撞和安全。输入包括多视角 RGB、机器人状态和语言指令;输出是 EEF delta pose(末端执行器位姿增量) + gripper 的动作块。训练先用遥操作数据做 BC/ACT 或 Diffusion/Flow policy,再用真实失败数据闭环迭代。

9.4 2-3 分钟展开回答

第一步定义任务和动作空间。比如桌面拿杯子,输入是 third-person camera、wrist camera、机械臂关节状态、夹爪状态、语言指令。输出可以是 dx, dy, dz, droll, dpitch, dyaw, gripper每 100ms 输出一次未来 10-20 步 action chunk

第二步采数据。用遥操作采集不同杯子、不同位置、不同光照、不同背景、成功和部分失败轨迹。每条数据保存时间戳对齐后的图像、状态、动作、语言任务、成功标记。数据质量比盲目堆量更重要,尤其要覆盖起始位姿和干扰物变化

第三步选模型。起步可以用 ACT,因为训练快、数据需求低、工程闭环快。如果任务多、语言变化多,再考虑 VLA backbone + action expert,例如 OpenVLA/SmolVLA 风格。动作多峰明显或需要平滑轨迹时,可以用 Diffusion Policy 或 flow matching action head。

第四步部署。模型输出动作后不直接裸发给机器人,而是经过安全层:限幅、速度限制、工作空间限制、碰撞检查、夹爪状态机、急停。推理延迟要记录,包括相机采集、预处理、模型推理、通信、低层控制执行。

第五步评测。不能只报训练 loss,要报任务成功率、平均完成时间、碰撞/掉落率、OOD 物体成功率、语言改写成功率、扰动恢复能力和 E2E latency。

9.5 常见追问

  • 如果数据只有 50 条 demo 怎么办?
  • 如果动作抖动很大怎么办?
  • 如果部署时推理太慢怎么办?

9.6 高分追问回答

50 条 demo 时不要一上来训练大 VLA。可以先用 ACT 或 Diffusion Policy 做单任务策略,强数据增强,严格控制任务范围;同时用预训练视觉 encoder 或开源 VLA 做 feature 初始化。评估发现失败模式后,定向补数据比随机加数据有效。

动作抖动要先定位来源:观测噪声、模型不确定性、动作表示不连续、控制器参数不合适、数据里遥操作本身抖动。模型层面可以加 temporal smoothness loss、预测 action chunk、temporal ensemble(时序集成)、flow/diffusion 轨迹建模;工程层面再加限速和低通滤波。不要只说“加滤波”,因为滤波会增加滞后,可能影响接触任务。

推理太慢时先拆 latency(延迟):图像编码、LLM/VLM、action head、通信、控制。优化手段包括降低图像 token、异步推理、action chunk、model quantization(模型量化)、TensorRT/ONNX、边缘小模型执行、云端只做慢速语义规划。实时安全相关计算必须在本地,不能依赖云端。

在这里插入图片描述

10. Q9:VLA 常用 benchmark 和 baseline 怎么讲?

10.1 面试官问法

  • 你怎么评估一个 VLA 模型好不好?
  • 常见 benchmark 有哪些?
  • 你怎么证明你的方法比 baseline 好?

10.2 考察点

这是基础题和项目题的连接点。面试官不只想听你知道模型,还想看你是否知道机器人学习不能只看 loss,要看真实任务成功率、泛化和安全指标。

10.3 30 秒回答

VLA 评估要分三层:离线指标、仿真任务、真机任务。 离线可以看 action MSE、negative log likelihood / NLL(负对数似然)、轨迹相似度,但最终要看 task success rate(任务成功率)、完成时间、碰撞/掉落率、OOD 泛化和延迟。常见 benchmark(基准评测) 包括 LIBERO、Meta-World、ManiSkill、RoboCasa、BridgeData、DROID、Open X-Embodiment/RT-X 等,baseline(基线方法) 可以选 BC (行为克隆)、ACT、Diffusion Policy、OpenVLA 或任务内最强策略。

10.4 2-3 分钟展开回答

我会把评估分成四类。

第一类是 imitation learning(模仿学习) 的离线指标,比如 action MSE、BC loss(行为克隆损失)、NLL、轨迹 DTW(Dynamic Time Warping,动态时间规整) 距离。这些指标方便训练过程监控,但不能代表真实成功率,因为机器人动作可能多解,和专家轨迹不完全一致也可能成功。

Action MSE (均方误差)直接衡量模型预测的动作数值(如关节角度、末端位姿)与专家标签之间的欧氏距离。

Negative Log Likelihood / NLL (负对数似然)衡量专家动作在模型预测的概率分布下的可能性。NLL 越小,说明专家动作落在模型预测的高概率区间内。

轨迹相似度 (Trajectory Similarity)通过动态时间规整(DTW)或 Fréchet 距离等算法,衡量预测的 Action Chunk(动作块)序列与专家真实轨迹在整体形状上的匹配程度。

第二类是仿真 benchmark。LIBERO 适合看语言条件和长序列任务泛化;Meta-World 适合多任务 manipulation;ManiSkill 适合仿真操作和强化学习;RoboCasa 更偏家居场景和复杂任务组合。仿真优点是可复现、成本低,缺点是 sim-to-real gap。

第三类是真机 benchmark 或真实数据集评测。DROID、BridgeData、Open X-Embodiment 更适合讨论真实机器人数据、多 embodiment 和场景泛化。但如果只是离线 replay,仍然不能完全代表闭环执行效果。

第四类是部署指标:E2E latency、控制频率、GPU/显存占用、失败恢复次数、安全触发率。这些对真实系统很关键,但论文里不一定充分报告。

对比 baseline 时,不能只选弱 baseline。一个可信实验至少要有:简单 BC、当前主流方法如 ACT/Diffusion Policy、同等数据量下的开源 VLA、消融实验。面试里可以强调:如果我的改进是动作建模,就要固定视觉 backbone 和数据;如果改进是数据策略,就要固定模型结构,否则结论不干净

10.5 常见追问

  • 为什么 action MSE 低但真机成功率不一定高?
  • LIBERO 和真实桌面抓取有什么差距?
  • 如果你的方法成功率高但延迟也高,怎么判断值不值得?

10.6 高分追问回答

Action MSE 假设专家动作是唯一正确答案,但机器人任务经常是多解的。比如抓杯子可以从左侧接近,也可以从右侧接近,两个轨迹都成功,但 MSE 可能惩罚其中一个。因此生成式策略、CVAE、diffusion/flow 会更关注动作分布,而不是单一均值。

仿真 benchmark 的价值是快速比较算法和做消融,但真实部署还会遇到相机噪声、标定误差、接触不稳定、夹爪磨损、通信延迟和物体材质差异。所以最终要有小规模真机闭环测试。

延迟高不一定不能接受,要看任务频率。如果是高层语言规划,几百毫秒可以接受;如果是接触控制或动态避障,就必须低延迟。面试回答里要把模型推理频率和底层控制频率分开讲。

11. Q10:如果被问“你平时怎么跟进 VLA 技术”,应该怎么答?

11.1 面试官问法

  • 你最近关注了哪些具身智能模型?
  • π0、GR00T、SmolVLA、OpenVLA 这些工作你怎么看?
  • 你如果要更新当前 VLA 架构,会从什么方向考虑?

11.2 考察点

这是技术视野题。面试官想看你是否能从论文名跳到技术趋势,而不是罗列模型。

11.3 30 秒回答

我会按三个维度跟进:动作生成范式、数据规模与数据质量、部署实时性。 模型上从 RT-2/OpenVLA 的 action token,发展到 ACT/Diffusion Policy 的 action chunk,再到 π0/GR00T/SmolVLA 这类 VLM + flow/diffusion action expert。趋势是高层语义用大模型,低层动作用连续生成模型,同时通过异步推理、轻量化和数据闭环提高真机可用性。

11.4 2-3 分钟展开回答

我会把最近的 VLA 进展理解为四条线。

第一条是动作表示从离散 token 走向连续轨迹。RT-2/OpenVLA 的好处是能复用 VLM 自回归框架,但机器人动作天然是连续控制,所以 π0、GR00T、SmolVLA 这类工作更强调 flow matching 或 diffusion action expert。

第二条是模型从单体端到端走向快慢系统。VLM 负责理解语言、目标和场景,action expert 负责连续动作。这样更符合工程分工,也方便替换低层策略或加入安全控制。

第三条是数据从实验室小数据走向跨 embodiment 和社区数据。Open X-Embodiment、DROID、LeRobot 社区数据都说明机器人数据的核心问题不是只有“量”,还有格式统一、任务标注、相机视角、动作 schema 和质量控制。

第四条是部署从离线指标走向实时系统。SmolVLA 这类轻量模型、异步推理、action chunk、边缘小模型都在解决“模型能不能在机器人上跑”的问题。

如果更新一个现有 VLA 架构,我会优先看三点:动作头是否从简单回归升级到 chunked diffusion/flow;数据是否有失败回流和 OOD 覆盖;部署是否支持异步推理和本地安全层。只有在这些基础做扎实后,再考虑更大的 VLM backbone。

11.5 常见误区

  • 只说“模型越大越好”。机器人里数据、延迟、控制接口和安全比参数量更容易成为瓶颈。
  • 只说“端到端是未来”。真实项目通常需要传统控制、安全层和任务状态机。
  • 只引用榜单成功率,不说明任务、数据量、评测协议和硬件差异。

12. Q11:MAE 是什么?为什么多视角表征和关键帧重建会反复问到它?

12.1 面试官问法

  • 你说的 MAE 是什么?
  • 做 multi-view 表征时,你 mask 的是 patch 还是 token?
  • 关键帧重建的帧怎么选?为什么不是随便抽帧?

12.2 考察点

这题看的是你是否把“视觉预训练”讲明白。面试官通常不是要你背 MAE 论文,而是看你是否理解:先遮掉一部分输入,再逼模型重建,模型会学到结构信息、几何信息和上下文依赖。

12.3 30 秒回答

**MAE 是 Masked Autoencoder,一种自监督视觉预训练方法。**做法是把图像里的大部分 patch 遮掉,只让模型根据剩余部分去重建被遮住的内容。机器人里常用它学多视角视觉表征,因为它能逼模型关注空间结构、物体边界和场景一致性。多视角时,patch-level masking 更常见;如果想让模型更关注任务相关区域,也可以做 token-level adaptive masking,优先保留或高权重采样关键区域。

12.4 2-3 分钟展开回答

MAE 不是一个“机器人模型”,而是一类自监督学习目标。它的核心思想很简单:如果模型能从部分图像推断出被遮住的内容,说明它学到了更深层的结构,而不是只记表面纹理

为什么这对机器人有用?因为机器人看场景时经常遇到遮挡、多视角和局部可见。比如腕部相机可能只看到杯口的一部分,第三视角可能看到整张桌子。MAE 能帮助视觉编码器学到 “物体大概在哪里、边界怎么走、不同视角如何对应”

在 multi-view 场景里,面试官常追问两点:

  • mask patch:这是最标准做法。图像先切成 patch,再随机遮掉一部分,让模型重建。
  • token-level adaptive masking:这是更工程化的做法,按任务相关性或不确定性对 token 赋权。比如抓取任务中,目标物附近 patch 更重要,背景墙壁可以少看一点。

如果问关键帧选择,别说“随机抽”。正确回答是根据动作阶段和信息增益选帧。比如接近、抓取、抬起、放置四个阶段,关键帧应该覆盖阶段切换点,而不是等间隔切。一个更稳的做法是用 motion magnitude、视觉变化、夹爪状态变化或 reward 变化打分。

面试里如果你不确定细节,可以这样说:MAE 更适合作为视觉表征预训练,不一定直接决定策略性能,但它会影响后续 VLA 的 grounding 能力、跨视角一致性和下游 sample efficiency(样本效率,用更少数据学到有效策略的能力)

12.5 常见追问

  • 为什么 MAE 不直接等于更好的控制?
  • token-level adaptive masking 和 hard negative mining 有什么关系?
  • 多视角里如何避免某个视角被忽略?

12.6 高分追问回答

…详情请参照古月居

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐