内容提要
机器人训练失败常源于数据质量而非模型规模。以LeRobot与LanceDB集成为例,数据版本化可让训练、搜索、质检指向同一份可复现数据。核心检查包括动作时延、异常抖动、切分泄漏等,并强调按地点、人员或批次分组切分,建立数据契约与人工复核门禁,避免标签错误和时序错位。
延伸解读
数据版本化:解决“训练了哪一份”而非“存在哪”
文章强调,数据版本化不是简单地把数据存到更大存储,而是将原始媒体、状态、动作、派生特征、筛选条件和版本标识绑定,确保同一查询在固定版本上得到同一批样本。这样训练、搜索与质检才能指向一致的可复现数据。LeRobot与LanceDB的集成正是这一思路的实践,让训练器读取的版本与分析人员搜索的版本保持一致。
质量检查先抓时序:动作时延与异常抖动
文章提供的最小质量函数演示了两个关键检查:相邻动作变化是否过猛(抖动分数),以及观测与动作在哪个时移下最匹配(最佳时移)。这能帮助发现常见的时序错位问题。但文章提醒,关键不是固定阈值,而是先用真实设备的正常轨迹建立分布,再将异常样本送人工复核,避免误判。
三个常见误区:打乱、平滑与随机种子
文章指出三个误区:全局随机打乱不能防止泄漏,需按地点、人员或批次分组切分;越平滑的数据不一定越好,成功episode可能更抖,单一平滑度指标AUROC仅0.402;固定随机种子不足以保证复现,还需固定数据快照、代码提交、模型与采样顺序。这些提醒有助于避免训练失败和指标虚高。
落地建议:数据契约与两层质检
文章建议为每个episode固定六类字段:采集地点与设备、操作者或机器人编号、任务指令、开始结束时间、成功定义、原始文件哈希。派生特征需记录计算代码版本。质检分自动层(检查缺帧、时间戳倒退等)和人工层(抽看最难、最异常轨迹)。切分应先选分组键,再检查是否共享视频哈希或连续时间段。
Q&A
机器人训练失败,为什么数据质量比模型规模更重要?
因为训练失败常源于数据问题,如摄像头画面和动作错了几帧、失败片段被当成成功样本,或同一房间的数据同时进了训练集和验证集,而非模型不够大。
LeRobot与LanceDB集成后,数据版本化解决了什么问题?
它让训练、搜索、质检指向同一份可复现数据,解决的是“训练了哪一份”的问题,而不仅仅是数据存储位置。
如何用Python检查机器人数据中的动作时延和异常抖动?
可以编写函数计算不同时移下的MSE来找到最佳时移,并计算动作的jerk分数(加速度最大值)来检测异常抖动。示例代码使用标准库,通过断言验证结果。
数据切分时如何避免泄漏?
应优先按地点、人员或采集批次分组切分,而不是全局随机打乱。例如家庭机器人按房屋切分,仓储机器人按站点和日期切分,个人助理按用户切分。
数据质量检查中常见的误区有哪些?
三个误区:1) 认为全局随机打乱就不会泄漏;2) 认为越平滑的数据越好,但成功episode可能更抖;3) 认为固定随机种子就能复现,但数据版本、筛选查询或解码器变化仍会导致结果漂移。
一份可落地的数据契约应包含哪些字段?
每个episode应固定六类字段:采集地点与设备、操作者或机器人编号、任务指令、开始结束时间、成功定义、原始文件哈希。派生特征需记录计算代码版本,训练任务还需保存数据快照编号、筛选查询和排除原因。