想象你是一家米其林三星餐厅的主厨,突然接到一个任务:把毕生厨艺教给一个机器人徒弟。你没法像带人类徒弟那样聊天说笑,因为机器人只懂数据。你必须把每一个颠勺、切菜、调味的瞬间,都变成一条条“教学录像”——摄像头拍下食材状态,麦克风录下“土豆削皮”这样的指令,传感器记录手部关节的一举一动。这些录像,就是人工智能领域所说的“具身大模型训练数据”(Embodied Large Model Training Data),也是VLA(视觉-语言-动作)模型学会“动手”的饭碗。 但录像不是拍得越多越好。一条动作笨拙、半途而废、镜头偏了的废片,不但帮不了徒弟,还会把他教坏。你需要品菜师逐条打分、删掉废片;需要把不同厨房、不同菜系的菜谱,翻译成同一种模板,让徒弟能一起学习;还要给整个菜谱库搭建归档管理系统。这篇文章,就带你走进这位“机器人主厨”的后厨,看看数据是怎么被采集、把关、融合,最终让机器人学会像人一样动手做事。

岗位关联

掌握具身大模型训练数据工程的底层逻辑,是AI机器人方向工程师的必修课——数据质量决定模型在真实世界“动手”能力的上限。

目录
  1. 可视化演示
  2. 数据采集策略
  3. 多模态对齐
  4. 示教质量评估
  5. 异构数据融合
  6. VLA训练管线
  7. 数据工程体系
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

演示具身大模型训练数据:视觉语言动作多模态对齐、数据采集策略与异构来源融合,为VLA模型训练提供数据工程参考。

本节配有交互动效(进入视口后自动加载,约 3KB)。

多模态对齐 视觉 语言 V⊕L⊕A 视觉语言动作三模态对齐

数据采集策略

主厨想教机器人徒弟做菜,第一步是收集示范。师傅有三种方式:握住徒弟的手腕一步步带他切菜——这相当于遥操作采集;在虚拟厨房里让徒弟疯狂练习——这相当于仿真数据生成;请全国各地的厨师上传自己切菜的录像——这相当于众包数据收集。每条示范都在同步记录“看到了什么、说了什么、手做了什么”,形成一条完整的示教轨迹。

在机器人学习领域,这三种方式构成VLA模型训练数据的三大源头。遥操作采集是人工通过操控杆或VR设备远程控制机器人执行任务,同时记录关节角度、相机画面和自然语言指令。它的数据质量高、语义清晰,但成本极高——一名熟练操作员一天可能只能产出几百条有效轨迹,像主厨手把手教学,细致但慢。

仿真数据则是在MuJoCo、Isaac Sim等物理引擎里,用脚本或强化学习自动采样,一天可以生成几十万条带标注数据。如同让徒弟在模拟厨房里反复颠勺,量大管饱,但模拟与真实的物理参数存在差距,学到的动作在真实世界里可能“水土不服”。众包数据从互联网人类视频中提取动作信息,覆盖面广、能兜住长尾场景,却需要大量后处理,把“人的动作”转换成“机器人的动作”。

所以,真正的主厨不会只用一招收菜谱——遥操作保质量,仿真保数量,众包保广度,三管齐下,先摸清自家后厨最缺哪种“菜”,再决定下一批数据的采购策略。

Ccollect=Ntele⋅ctele+Nsim⋅csim+Ncrowd⋅ccrowd\displaystyle C_{collect} = N_{tele} \cdot c_{tele} + N_{sim} \cdot c_{sim} + N_{crowd} \cdot c_{crowd}
采集总成本等于三种来源各自的数据量乘以单条成本再求和,帮你决定钱该往哪里花。
  1. 遥操作项遥操作采集的轨迹条数乘以单条成本,体现高质量数据来源的昂贵代价。
    Ntele⋅cteleN_{tele} \cdot c_{tele}
  2. 仿真项仿真环境自动生成的轨迹条数乘以单条成本,量大但单价低。
    Nsim⋅csimN_{sim} \cdot c_{sim}
  3. 众包项众包收集的轨迹条数乘以单条清洗与后处理成本,处理环节最重。
    Ncrowd⋅ccrowdN_{crowd} \cdot c_{crowd}
  4. 总成本求和三个来源的成本相加,得到整份数据集的总采集成本,指导数据源配额决策。
    Ccollect=Ntele⋅ctele+Nsim⋅csim+Ncrowd⋅ccrowd\displaystyle C_{collect} = N_{tele} \cdot c_{tele} + N_{sim} \cdot c_{sim} + N_{crowd} \cdot c_{crowd}

多模态对齐

一份好菜谱,图片、文字、师傅的手势必须严丝合缝。如果视频里明明在切土豆,字幕却写着“削苹果皮”,徒弟就会当场石化。具身训练数据也一样,必须在“看、说、做”之间建立严格的对应关系,这份对应关系就是多模态对齐。

VLA模型同时吃进三种模态的输入:相机图像(视觉)、语言指令(文本)、机器人关节状态与动作(动作)。要让模型学会“看到土豆→听懂'削皮'→输出削皮动作”这条推理链,训练数据必须保证三类信息在时间上同步、在空间上对齐、在语义上一致。时间同步解决“哪一帧画面对应哪一句指令、哪一段动作”的问题;空间对齐解决“画面里物体位置如何映射到机器人坐标系”的问题;语义对齐解决“文本表述与图像内容是否真的匹配”的问题。

语义对齐最常见的做法是对比学习预训练。把匹配的图文对当作正样本,不匹配的图文对当作负样本,用InfoNCE损失把正样本之间的距离拉近、负样本推远。这样,模型在进入动作预测之前,已经具备了“看到物体→理解指令”的跨模态理解能力,后续再学动作就轻松得多。

就像菜谱要先通过“图文一致性审校”才能进厨房,多模态对齐就是具身数据的编审环节,保证每一条数据的三项信息一一对应、各就各位。

LInfoNCE=−log⁡exp⁡(sim(vi,li)/τ)∑k=1Kexp⁡(sim(vi,lk)/τ)\displaystyle \mathcal{L}_{InfoNCE} = -\log \frac{\exp(\text{sim}(v_i, l_i) / \tau)}{\sum_{k=1}^{K} \exp(\text{sim}(v_i, l_k) / \tau)}
这条损失函数像一个严格的编审,让“画面和文字确实是一对”的组合越来越受重视。
  1. 相似度计算\text{sim}(v_i, l_i) 计算第 i 个视觉特征向量与对应语言特征向量的相似度,常用余弦相似度,值越大说明越匹配。
    sim(vi,li)\text{sim}(v_i, l_i)
  2. 温度缩放除以温度系数 \tau 后取指数,将相似度变成非负权重;τ 越小,分布越尖锐,模型越“较真”。
    exp⁡(sim(vi,li)/τ)\exp(\text{sim}(v_i, l_i) / \tau)
  3. 正样本分子匹配的图文对(正样本)的权重,也就是“该对上”的那一对。
    exp⁡(sim(vi,li)/τ)\exp(\text{sim}(v_i, l_i) / \tau)
  4. 负样本分母第 i 个视觉特征与所有 K 个语言特征(1 个正样本 + K-1 个负样本)的权重之和,代表“所有可能的选择”。
    ∑k=1Kexp⁡(sim(vi,lk)/τ)\sum_{k=1}^{K} \exp(\text{sim}(v_i, l_k) / \tau)
  5. 负对数对整个比值取负对数,让模型不断增大正样本的相对概率,直到它“一眼就认出自己的搭档”。
    −log⁡(⋅)-\log(\cdot)

示教质量评估

主厨收菜谱不是照单全收。品菜师会逐条试做、试吃,从刀工、火候到摆盘逐项打分,不及格直接扔进废纸篓。机器人训练数据同样如此——在数据进入模型之前,先评估后使用,这是避免“劣币驱逐良币”的关键防线。

示教数据质量评估的目标,是识别出三类问题样本:失败轨迹(任务没完成)、抖动轨迹(动作不流畅)、图文错配样本(指令与画面不符)。工程上常用的评估维度有三个:任务成功率,看是否达成目标状态,例如“杯子是否被抓起来”;轨迹平滑度,看关节速度与加速度是否出现剧烈突变;语义一致性,看语言指令与视觉内容是否匹配,通常由CLIP这类多模态模型自动打分。

实际操作中,这些维度会加权融合成一个综合质量分 Q。设定一个阈值,Q 低于阈值的样本直接丢弃。任务成功率可由环境中的自动结算函数计算,轨迹平滑度可以计算关节速度导数的范数,语义一致性则依赖预训练的图文匹配模型输出。三个维度的权重也不是拍脑袋定的,要根据下游任务特点反复调参。

品菜师的评分表,就是数据流水线上的质检关卡。只要把好这一关,机器人徒弟看到的每一条示范都值得模仿,训练出来的动作自然有模有样。

Q=α⋅Stask+β⋅Ssmooth+γ⋅Salign\displaystyle Q = \alpha \cdot S_{task} + \beta \cdot S_{smooth} + \gamma \cdot S_{align}
综合质量分是三个评价维度的加权和,相当于品菜师在刀工、火候、摆盘三张评分表上的总分。
  1. 任务成功分\alpha \cdot S_{task} 是任务成功维度的加权分,S_{task} 由结算函数判定,取值 0 或 1。
    α⋅Stask\alpha \cdot S_{task}
  2. 平滑度分\beta \cdot S_{smooth} 是轨迹平滑维度的加权分,S_{smooth} 由速度变化率计算,取值连续在 0 到 1 之间。
    β⋅Ssmooth\beta \cdot S_{smooth}
  3. 语义对齐分\gamma \cdot S_{align} 是语义一致性的加权分,由多模态模型打分,取值连续在 0 到 1 之间。
    γ⋅Salign\gamma \cdot S_{align}
  4. 加权求和三个加权分相加得到综合质量分 Q,阈值以下的轨迹在训练前被自动过滤掉。
    Q=α⋅Stask+β⋅Ssmooth+γ⋅Salign\displaystyle Q = \alpha \cdot S_{task} + \beta \cdot S_{smooth} + \gamma \cdot S_{align}

异构数据融合

中餐菜谱写“盐少许”,法餐菜谱写“3克盐”,家常菜视频里甚至只有画面没有文字。主厨必须先建立一套通用菜谱模板,把不同厨房的菜谱都“翻译”成统一格式,徒弟才不会精神分裂。

来自不同采集方式的数据,异构性非常明显:传感器坐标系不同(相机装在左臂还是右臂、装在腕部还是头顶),动作表示不同(关节角、末端位姿还是速度指令),采样频率不同(30Hz还是10Hz),指令粒度不同(“抓杯子”还是“抓住桌子上左边第二个白色陶瓷杯”)。如果这些数据直接混在一起训练,模型会学到混乱的映射关系,动作质量断崖式下跌。

融合前需要做三步标准化。第一,格式统一:把所有来源的数据转成固定频率的关节角序列加自然语言指令的标准结构。第二,坐标系归一化:通过手眼标定和基座标定,将不同传感器下记录的轨迹变换到机器人的基座坐标系,这是最难也最核心的一步。第三,语义标准化:采用统一的物体词典和动作动词表,把同一条指令的不同说法映射到同一个标准表述上。

就像把所有国家的菜谱统一成“食材—用量—步骤”的标准模板,异构融合让机器人能够跨厨房、跨设备地学习,真正掌握通用的操作能力。

pbase=Tcambase⋅Teecam⋅pee\displaystyle p_{base} = T^{base}_{cam} \cdot T^{cam}_{ee} \cdot p_{ee}
齐次变换矩阵把末端位姿从机械臂末端坐标系一路换算到机器人基座坐标系,让所有数据“说同一种语言”。
  1. 末端位姿p_{ee} 是机械臂末端执行器在自身坐标系下的位置与姿态。
    peep_{ee}
  2. 手眼变换T^{cam}_{ee} 是从末端坐标系到相机坐标系的变换矩阵,由手眼标定获得,描述“相机相对手装在哪里”。
    TeecamT^{cam}_{ee}
  3. 相机到基座T^{base}_{cam} 是从相机坐标系到机器人基座坐标系的变换矩阵,通常由外部标定得到。
    TcambaseT^{base}_{cam}
  4. 矩阵连乘将末端位姿依次左乘两个变换矩阵,完成从末端→相机→基座的坐标系迁移。
    pbase=Tcambase⋅Teecam⋅pee\displaystyle p_{base} = T^{base}_{cam} \cdot T^{cam}_{ee} \cdot p_{ee}

VLA训练管线

课程怎么安排?先让徒弟看几十位大师的上千道菜,建立宽广的味觉和刀工直觉;再针对本店招牌菜反复精练,学会特定菜品的精准手法。这就是预训练加微调的课程设计,VLA模型的训练管线正是如此。

VLA模型(Vision-Language-Action Model)的训练通常分两阶段。预训练阶段使用海量互联网图文数据加通用机器人数据集,让模型学会视觉-语言理解和基本操作表征——这相当于“见多识广”阶段。微调阶段则使用目标任务的高质量示教数据,让模型学会在特定场景、特定机械臂上输出准确动作——这相当于“招牌菜专训”阶段。

两阶段之间最容易被忽视的是数据配比问题。不同来源的数据量可能相差两个数量级:仿真数据动辄几十万条,遥操作数据可能只有几千条。如果直接均等采样,模型会被大数据源淹没,小数据源的高质量样本被稀释;如果完全按数量比例采样,小数据源的独特能力又学不到。工程上普遍采用加权采样:给每个数据源设定一个权重,让每个训练批次内各来源的比例符合预设,而不是天然数量比。

课程表的排课比例就是数据配比:招牌菜多排课、辅助菜不能取消、见识课也要保留。如此安排,机器人徒弟才不会变成“只会做一道菜的偏科厨子”。

pi=ni⋅wi∑j=1Nnj⋅wj\displaystyle p_i = \frac{n_i \cdot w_i}{\sum_{j=1}^{N} n_j \cdot w_j}
这条公式算出每个数据源在每一批训练数据中该占多少比例,防止模型“偏科”。
  1. 加权样本数第 i 个数据源的样本总数 n_i 乘以它的权重系数 w_i,得到等效样本数。
    ni⋅win_i \cdot w_i
  2. 归一化分母所有数据源加权样本数之和,作为归一化的基准。
    ∑j=1Nnj⋅wj\sum_{j=1}^{N} n_j \cdot w_j
  3. 采样比例第 i 个数据源在训练批次中的采样概率,权重越大、样本越多,占比越高。
    pi=ni⋅wi∑j=1Nnj⋅wj\displaystyle p_i = \frac{n_i \cdot w_i}{\sum_{j=1}^{N} n_j \cdot w_j}

数据工程体系

一个运转良好的后厨,菜谱绝不只是散落的纸条——有标准化菜谱库、有归档编号、有版本记录。昨天改良了奶油蘑菇汤,改到了v3版本。数据工程体系就是机器人大厨的菜谱库管理后台,支撑着从零散数据到可用训练集的全流程。

当数据规模达到PB级、轨迹条数过亿,具身训练数据的工程化就会成为瓶颈。核心要求有三项:第一,分布式存储,数据以统一格式存到对象存储或数据湖中,支持按任务、来源、质量标签快速检索;第二,版本管理,每条数据都带唯一ID、采集时间、来源标记和标注版本,保证任何一次训练都可以精确复现;第三,可扩展流水线,从采集、清洗、标注、质量评估到融合导出的全链路自动化,支持横向扩容,新增机器人设备时只需接入流水线节点。

衡量这套体系效率的关键指标是数据利用率 \eta,即最终进入训练的数据量占原始采集量的比例。业界经验是:遥操作数据利用率约60%到80%,仿真数据可达90%以上,而众包数据常常低于30%,大部分都消耗在清洗和后处理上。提高 \eta 的手段包括优化采集流程、引入自动筛选器、迭代标注规范——每提升一个百分点,都意味着训练成本的大幅下降。

菜谱库管理得当,每一次教学才有据可查。数据工程体系过硬的团队,模型迭代速度会成倍提升——因为他们的每一分算力,都被喂给了最值得学习的数据。

---

η=NqualifiedNraw\displaystyle \eta = \frac{N_{qualified}}{N_{raw}}
数据利用率衡量原始采集量中有多少真正能用于训练,是数据工程体系的核心体检指标。
  1. 原始数据量N_{raw} 表示采集阶段进入系统的全部数据条数,包含所有废片和低质样本。
    NrawN_{raw}
  2. 合格数据量N_{qualified} 表示通过质量评估、格式转换后真正进入训练集的数据条数。
    NqualifiedN_{qualified}
  3. 利用率两者相除得到 \eta,比值越高说明流水线越“不浪费粮食”。
    η=NqualifiedNraw\displaystyle \eta = \frac{N_{qualified}}{N_{raw}}

AI 应用场景

工业机械臂的示教数据工程

阶段:数据采集与质量评估

解决的问题:传统工厂用示教器逐点编程,一天只能编一个工位动作,且不同工程师的操作习惯不同,数据风格混乱,无法直接支撑VLA模型训练。通过遥操作采集加自动质量过滤,将示教时间从小时级压缩到分钟级。

具体案例:某3C电子厂引入VLA机械臂,先通过遥操作采集熟练工人装配手机电池的5000条轨迹,再用仿真扩充到2万条,最后用质量评估脚本过滤掉抖动和失败样本,将换型调试时间从8小时缩短到20分钟,良品率保持99.2%。

家庭服务机器人的多模态数据融合

阶段:多模态对齐与异构融合

解决的问题:家庭场景中用户指令往往模糊(“把那玩意儿拿过来”),目标物体种类繁多,单一来源数据无法覆盖长尾场景。需要将众包人类视频、仿真数据和遥操作数据融合成统一格式的训练集。

具体案例:某家用机器人公司收集了10万段人类做家务的短视频,通过对比学习对齐“画面-指令”,再用手眼标定将视频中的手部动作映射到机器人本体,融合仿真数据后,“捡起掉落物品”任务的成功率从45%提升到78%。

物流分拣机器人的数据配比优化

阶段:VLA训练管线的数据配比

解决的问题:分拣场景SKU成千上万,纯遥操作数据采集成本过高,仿真数据又存在sim2real gap。需要通过精细的数据配比,用最低成本达到目标成功率。

具体案例:某物流科技公司将仿真数据占70%、遥操作数据占20%、众包数据占10%,配合加权采样策略训练分拣VLA模型。在抓取成功率不下降的前提下,数据采集成本降低了65%,新SKU的上线周期从两周压缩到两天。

Python 演示

python60 行
"""具身示教数据融合与质量过滤演示"""import mathfrom collections import Counterfrom dataclasses import dataclass, field  @dataclassclass Trajectory:    """一条示教轨迹的元信息"""    source: str    success: bool    smoothness: float    align_score: float    end_pose: tuple = (0.0, 0.0, 0.0)    steps: list = field(default_factory=list)     def quality(self, alpha=0.5, beta=0.3, gamma=0.2):        """计算综合质量分, 任务成功/平滑度/语义对齐的加权和"""        return alpha * self.success + beta * self.smoothness + gamma * self.align_score  def to_base_frame(pose, cam_tf):    """将相机坐标系下的末端位姿变换到基座坐标系(2D简化)"""    cx, cy, ctheta = pose    tx, ty, ttheta = cam_tf    theta = ctheta + ttheta    x = cx * math.cos(ttheta) - cy * math.sin(ttheta) + tx    y = cx * math.sin(ttheta) + cy * math.cos(ttheta) + ty    return (round(x, 3), round(y, 3), round(theta, 3))  def load_raw_data():    """模拟从三个来源加载原始示教数据"""    return [        Trajectory("teleop", True, 0.85, 0.92, (0.5, 0.2, 1.0)),        Trajectory("teleop", False, 0.40, 0.75, (0.1, 0.1, 0.5)),        Trajectory("sim", True, 0.95, 0.60, (0.4, 0.3, 0.8)),        Trajectory("sim", True, 0.80, 0.55, (0.3, 0.2, 0.6)),        Trajectory("crowd", True, 0.50, 0.88, (0.6, 0.1, 1.2)),        Trajectory("crowd", False, 0.30, 0.70, (0.2, 0.4, 0.3)),    ]  def main():    raw = load_raw_data()    cam_tf = (0.05, 0.02, 0.1)    for traj in raw:        traj.end_pose = to_base_frame(traj.end_pose, cam_tf)    qualified = [t for t in raw if t.quality() >= 0.6]    print(f"[坐标变换] {len(raw)} 条轨迹已统一到基座坐标系")    print(f"[质量过滤] 合格 {len(qualified)} 条, 过滤率 {1 - len(qualified) / len(raw):.0%}")    src_cnt = Counter(t.source for t in qualified)    for src, cnt in src_cnt.most_common():        print(f"  [{src}] 合格 {cnt} 条")    for traj in qualified:        print(f"  {traj.source} 位姿={traj.end_pose} 质量分={traj.quality():.2f}")  if __name__ == "__main__":    main()
目的:演示一条具身数据的迷你流水线——坐标变换统一多源数据,再用综合质量分过滤低质样本。
  1. def quality(self, alpha=0.5, beta=0.3, gamma=0.2):定义质量分函数,三个权重的默认值表示“任务成功最重要,平滑度次之,语义对齐再次之”。
  2. return alpha * self.success + beta * self.smoothness + gamma * self.align_score加权求和,三条分数线合成一个0到1之间的综合分。
  3. def to_base_frame(pose, cam_tf):坐标变换核心函数,把相机坐标系下的位姿换算到机器人基座坐标系。
  4. x = cx * math.cos(ttheta) - cy * math.sin(ttheta) + tx旋转加平移,这就是齐次变换矩阵在2D简化下的数学展开。
  5. Trajectory("teleop", True, 0.85, 0.92, ...)用dataclass模拟一条示教数据,字段依次是来源、是否成功、平滑度、语义对齐分、末端位姿。
  6. traj.end_pose = to_base_frame(traj.end_pose, cam_tf)逐条把位姿统一到基座坐标系,完成异构数据融合的第一步。
  7. qualified = [t for t in raw if t.quality() >= 0.6]用0.6作为质检阈值,一次列表推导完成自动清洗。
  8. Counter(t.source for t in qualified)统计三个来源分别贡献了多少条合格数据,帮助判断数据配比是否需要调整。

常见误区

误区只要把数据堆到几十万条,VLA模型自然就强了。采集时舍不得删任何一条,仿真数据更是疯狂生成,觉得反正便宜,全喂给模型就完事了。

正解机器人领域的数据不是越多越好,而是“精”比“多”重要。一条含噪声的示教轨迹,会像一颗老鼠屎坏了一锅汤。给徒弟看100遍错误的颠勺,不如看1遍标准示范。数据质量评估和清洗不是可选项,而是必选项。

为何常见:互联网大模型“数据为王”的印象被简单迁移到机器人领域,忽略了机器人数据与物理世界强耦合、失败成本高的特性。

误区仿真数据是程序自动生成的,标注也是自动的,应该天生干净,直接拿来训练就行,不用做质量检查。

正解仿真数据虽然标注整齐,但它与真实世界存在sim2real gap——物理参数、光照、纹理都是理想化的。如果不做域随机化、不用真实数据校准,模型在真实环境里会明显“水土不服”。仿真数据同样需要质量评估,只是检查的重点从“标得对不对”变成了“像不像真的”。

为何常见:仿真环境的“自动化”标签让人误以为自动生成的就没有噪声,忽略了分布偏移带来的隐性噪声。

误区为了让模型泛化,每条示教数据都配上十几种不同说法,比如“把杯子拿来”“把那玩意儿给我”"pass me the cup",觉得指令越五花八门越能提升鲁棒性。

正解指令多样性要适中。过于随意的同义表述会稀释图文相关性,让模型在语义对齐阶段就产生混淆。更合理的做法是控制指令的句式分布,保证与目标物体的语义锚点一致。菜谱里又写“少许盐”又写“一点盐”又写"salt to taste",徒弟反而会糊涂。

为何常见:多模态大模型的图文匹配能力让人类高估了模型对指令歧义的鲁棒性,忽略了VLA还需要输出精确动作,歧义代价更高。

误区觉得只要把所有数据转成同一个JSON Schema,模型就能学会一切。于是强行把动作表示、单位、坐标系全部“一刀切”。

正解如果源数据在物理本质上有巨大差异,强行统一会造成信息损失。例如,关节角与末端笛卡尔坐标能互相转换,但不同厂商的机械臂构型不同,强行统一成同一种关节表示可能丢失灵活性。正确的做法是设计一个兼容性的中间表征,同时保留原始元数据,按需转换。

为何常见:工程上存在“一个schema解决所有问题”的诱惑,忽略了不同传感器和机械臂的物理本质差异。

误区数据是一次性采集、离线训练的,反正不做线上更新,版本管理可有可无。标注改来改去也不用记录,跑完实验就完事了。

正解训练数据会反复迭代,没有版本管理会导致实验无法复现。今天用的数据加了20%的仿真样本,明天又换了一批清洗规则,模型效果变化时根本说不清是模型改的还是数据改的。菜谱如果被随手改掉,下次做的菜味道就变了。每条数据带唯一ID、时间戳、来源标记是工程底线。

为何常见:研究阶段的随意性习惯被带到工程项目中,早期数据量小看不出问题,数据达到百万级时混乱会彻底爆发。

面试题

Q1. VLA模型中,多模态对齐的目标是什么?

单选题 · easy

  • A.让视觉特征与动作特征完全相同
  • B.让视觉、语言、动作三模态语义一致← 正确答案
  • C.让所有训练样本的标签完全一致
  • D.让所有数据集的中心点重合

答案:B。多模态对齐追求的是视觉画面、语言指令、动作序列三者指向同一件事——看到土豆、听到“削皮”、执行削皮动作,三者在语义上严格对应,而不是让特征完全相同。A偷换了概念,C与语义对齐无关,D是坐标系问题。

Q2. 遥操作数据采集的主要缺点是什么?

单选题 · easy

  • A.数据质量太低无法使用
  • B.采集成本高且速度慢← 正确答案
  • C.无法获取视觉信息
  • D.无法与VLA模型兼容

答案:B。遥操作是人工通过操控设备远程控制机器人,质量高、语义清晰,代价是慢而贵——一人一天可能只有几百条轨迹。它不是质量低,而是产量低。视觉信息由相机记录,数据格式也可以兼容VLA,故其他选项错误。

Q3. 在InfoNCE损失中,温度系数 τ 的取值偏小会产生什么效果?

单选题 · mid

  • A.让模型对所有样本一视同仁
  • B.让相似度分布更加尖锐,模型更严格← 正确答案
  • C.让负样本的数量自动增加
  • D.消除传感器的测量噪声

答案:B。τ 越小,\exp(\text{sim}/\tau) 的分布越尖锐,正样本与负样本的区分越“较真”,模型对相似度差异更敏感。它不改变样本数量,也不处理传感器噪声,更不是让模型一视同仁——恰恰相反,是让模型更挑剔。

Q4. 示教数据质量评估的常用维度包括哪些?

多选题 · mid

  • A.任务是否成功完成← 正确答案
  • B.轨迹抖动程度即平滑度← 正确答案
  • C.语言指令与画面的语义一致性← 正确答案
  • D.数据文件占用的存储大小

答案:ABC。三个常用评估维度是任务成功率、轨迹平滑度、语义一致性。文件大小反映的是存储成本,与示教质量没有因果关系——一条再标准的示范也可能因为分辨率高而体积大,因此D不应入选。

Q5. 异构数据融合时,坐标系归一化的目的是什么?

单选题 · mid

  • A.把所有轨迹放到同一参考系下← 正确答案
  • B.提升数据传输的网络带宽
  • C.统一所有文件的命名规范
  • D.减少数据占用的存储空间

答案:A。不同传感器(如装在左臂和右臂的相机)记录的坐标基准不同,坐标系归一化通过标定和齐次变换,将轨迹统一到机器人基座坐标系,让模型学到一致的映射关系。它与带宽、命名、存储空间无关。

Q6. 行为克隆损失 \| \pi(o) - a \|^2 中,变量 a 表示什么?

单选题 · hard

  • A.当前帧的视觉观测
  • B.人类下达的语言指令
  • C.示教数据中的参考动作← 正确答案
  • D.模型自己预测的动作

答案:C。行为克隆让模型的输出逼近人类示教的参考动作,其中 \pi(o) 是模型根据观测 o 预测的动作,a 是数据集中人类示教的标准动作。损失值衡量两者差距。A是观测输入,B是语言指令,D是模型预测,都不对。

Q7. 一个合格的具身数据工程体系必须满足哪些要求?

多选题 · hard

  • A.支持分布式存储与大规模并发读取← 正确答案
  • B.数据版本可追溯、训练可复现← 正确答案
  • C.采集到训练的流水线支持自动扩展← 正确答案
  • D.所有标注必须由人类手工完成

答案:ABC。分布式存储、版本追踪、可扩展流水线是数据工程体系的三根支柱。D错误——现代数据工程大量使用模型辅助的自动标注,人工只负责抽检和修正,要求全人工标注既不现实也无必要。

Q8. 仿真数据与真实数据的主要差异是什么?

单选题 · mid

  • A.仿真数据的所有样本质量更高
  • B.sim2real gap导致分布偏移← 正确答案
  • C.仿真数据完全没有标注信息
  • D.仿真数据不需要任何预处理

答案:B。仿真环境的物理引擎、光照、纹理与现实世界存在偏差,这称为sim2real gap,导致模型在仿真上表现好、到真实环境却失灵。仿真数据标注齐全、量大,但质量未必更高,且同样需要处理。

Q9. 众包数据进入训练前最需要什么处理?

单选题 · easy

  • A.提高视频分辨率
  • B.转为统一格式并清洗← 正确答案
  • C.删除全部视频内容
  • D.增加更多众包标注

答案:B。众包数据来源五花八门,格式、语义、坐标系各不相同,必须经过格式统一、坐标系变换和质量清洗才能进入训练集。提高分辨率解决不了异构问题,删除视频和盲目增加标注更是南辕北辙。

Q10. 以下哪些手段可以有效提高示教数据利用率 \eta?

多选题 · hard

  • A.优化采集流程减少废片产生← 正确答案
  • B.引入自动筛选器提前过滤低质样本← 正确答案
  • C.迭代标注规范降低歧义返工率← 正确答案
  • D.无脑增加原始数据采集总量

答案:ABC。\eta = N_{qualified} / N_{raw},提高利用率要么增大分子(提升通过质量评估的数据量),要么减少分母的无效部分。优化采集、自动筛选、规范标注都能精准提升分子占比。单纯增加数据量会同时拉大分母,利用率不升反降。