日报 — 2026-03-14
今日概览
- 做了什么: 完成GPU监控工具nvitop风格界面改进、HDF5摄像头数据批量MP4可视化,以及pi05模型四组操作进度预测辅助实验的架构设计与代码实现
- 怎么做的: 通过终端备用缓冲区和自适应列宽优化监控工具,用OpenCV批量解码JPEG帧拼2×2网格写MP4,在JAX/Flax NNX框架下跨6个文件添加辅助MLP预测头、stop_gradient隔离策略和实验配置开关
- 有什么用: GPU监控工具体验提升至nvitop水准;50条演示视频生成完毕可供数据质检;pi05四组实验配置就绪,仅需完成lerobot数据格式转换即可启动训练
改进GPU监控工具交互体验、完成50个机器人演示数据的四路摄像头可视化,并在pi05 VLA模型中设计实现四组操作进度预测辅助任务实验框架
今日任务
架构与策略
- 🔄 pi05 四组操作进度预测辅助实验实现 — 在pi05模型中实现manip_progress_time/distance的辅助预测头(last_token vs special_token × time vs distance四组实验),跨pi0_config.py、model.py、tokenizer.py、robotwin_policy.py、config.py、pi0.py六个文件修改,添加ProgressConfig配置开关和四个一键启动实验配置;训练因数据未转lerobot格式而阻塞
实现与修复
- ✅ HDF5摄像头数据批量可视化脚本 — 创建 script/visualize_hdf5_cameras.py,读取place_dual_shoes/demo_clean/data下50个episode的front/head/left/right四路JPEG摄像头帧,拼成2×2标注网格写入640×480@30FPS MP4,全部50个视频(约2.3MB/个)生成完毕
- ✅ gpumon.py 备用缓冲区与自适应布局 — 为GPU监控脚本添加nvitop风格备用屏幕缓冲区(\033[?1049h启动独立屏幕,Ctrl+C后还原),将GPU表和进程表改为根据终端实际COLUMNS/LINES自适应宽高,修复os.get_terminal_size()在子进程中读不到COLUMNS环境变量的bug
问题与解决方案
关键问题
1. pi05训练启动失败:数据集中缺少manip_progress_time、manip_progress_distance_left/right、target_endpose、target_joint等新字段
解决方案: 需修改 ~/HDD_POOL/mozihao/VLA/convert_robotwin_democlean_to_lerobot.py 添加上述字段再重新转换数据集
关键洞察: 在设计训练代码前应先确认数据pipeline是否完整支持所需字段,避免代码完成后才发现数据缺失
一般问题
2. os.get_terminal_size() 在管道/子进程环境中无法读取 COLUMNS/LINES 环境变量,导致120列宽屏测试时表格未真正展宽
解决方案: 修改 _get_term_size() 优先读取 COLUMNS/LINES 环境变量,失败时再回退到 os.get_terminal_size()
关键洞察: 终端宽度探测需同时处理真实tty(交互式)和仅有环境变量(管道/脚本)两种情况
人类思路 vs AI 思路
战略层面
pi05四组实验的科研设计
| 角色 | 思路 |
|---|---|
| 人类 | 人类主动提出完整的四组对比实验设计:last_token vs special_token两种特征提取方式,time vs distance两类预测目标,以及将预测结果作为conditioning token注入action expert的具体机制 |
| AI | AI在接收实验设计后分析架构可行性,提出MLP规模(2048→256→out)、loss权重λ=0.1、stop_gradient策略和config开关方案等工程实现细节 |
差异分析: 科研假设和实验设计由人类主导,AI主要承担架构分析和工程实现;核心科研方向上人类贡献更大
实现层面
GPU监控工具界面规格
| 角色 | 思路 |
|---|---|
| 人类 | 人类明确指定参考nvitop的交互风格(退出后还原命令窗口),以及自适应宽高的具体诉求 |
| AI | AI实现了备用缓冲区机制,但初版实现时表格宽度未真正随终端变化,需调试才发现问题 |
差异分析: 人类对目标UX体验有清晰预期,AI在实现细节上存在遗漏(环境变量vs tty),需用户测试驱动
AI 局限性
重要局限
- 实现pi05训练代码前未主动验证数据pipeline完整性(manip_progress等字段是否已写入lerobot数据集),导致代码实现完成后才在训练时发现数据格式缺失,浪费了工程时间
一般局限
- gpumon.py初次自适应实现遗漏了子进程中os.get_terminal_size()读不到COLUMNS的问题,需要用户实测后才暴露并修复
今日收获
核心收获
- VLA辅助任务中使用stop_gradient隔离主任务与辅助任务的梯度是安全起点——先确保不干扰动作预测,效果不好再开放梯度做对比实验
- JAX/Flax NNX中添加辅助任务头时,训练阶段用GT值做teacher forcing,推理阶段用预测值注入,两条路径需在compute_loss和sample_actions中分别实现并保持接口一致
实践收获
- 终端备用缓冲区(\033[?1049h进入,\033[?1049l退出)结合signal.SIGINT捕获可实现nvitop风格全屏刷新UI,退出后自动还原原始终端内容
会话摘要
RoboTwin GPU Monitor
✅ gpumon.py 添加nvitop风格备用缓冲区与自适应终端布局 09:24:23.170 | claude_code 用户要求将GPU监控脚本改造为nvitop风格:启动时进入独立屏幕、退出后还原,同时将固定列宽改为自适应。AI实现了\033[?1049h备用缓冲区机制,修复了os.get_terminal_size()在管道环境中无效的问题,并将GPU/进程表宽度改为按比例分配。80列和120列分别测试通过,进程表行数也根据终端高度动态截断。
RoboTwin HDF5 Visualization
✅ 实现HDF5→MP4批量可视化脚本并成功处理全部50个episode 13:21:34.636 | claude_code 用户提交规划文档要求实现,AI创建script/visualize_hdf5_cameras.py,使用cv2.imdecode解码JPEG帧并拼接2×2带标注网格,写入640×480@30FPS MP4。脚本完整运行处理全部50个episode,输出目录生成50个约2.3MB的视频文件,文件数和大小均验证通过。
🔄 HDF5摄像头可视化实现规划(Plan Mode探索) 13:18:03.922 | claude_code 用户重新发起可视化请求,AI使用Explore agent分析数据采集pipeline和HDF5文件结构,确认50个episode的JPEG编码摄像头数据格式(240×320,四路),读取现有parse_hdf5.py工具了解解码模式,最终生成详细实现计划(2×2网格、640×480@30FPS MP4)并退出Plan Mode。
❌ HDF5摄像头可视化请求(因403认证失效中断) 13:16:50.918 | claude_code 用户请求编写HDF5摄像头数据可视化脚本,AI首次尝试读取文件时遇到403 Request not allowed错误(会话令牌失效需重新登录)。会话立即中断,用户随后在新会话中重新发起相同请求。
RoboTwin pi05 VLA
🔄 pi05模型四组操作进度预测辅助实验的架构讨论与六文件实现 14:21:07.908 | claude_code 用户提出四组对比实验(last_token vs special_token × manip_progress_time vs distance_left/right),AI深入分析JAX/Flax NNX架构后提出MLP规模(2048→256)、loss权重λ=0.1、stop_gradient策略和config开关方案,用户全部确认。AI跨6个文件完成实现,包括ProgressConfig配置类、special token注册、Observation.aux_targets字段、辅助loss计算和四个一键实验入口,导入和配置验证测试均通过。训练启动时发现数据集缺少progress相关字段,需先修改lerobot转换脚本。
Token 用量
总览
| 指标 | 数值 |
|---|---|
| 总 Token | 18,998,065 |
| 输入 Token | 11,315 |
| 输出 Token | 60,529 |
| Cache 创建 | 1,403,485 |
| Cache 读取 | 17,522,736 |
| Cache 命中率 | 92.6% |
| 总费用 (USD) | $13.1289 |
模型明细
| 模型 | 输入 | 输出 | Cache 创建 | Cache 读取 | 费用 | 占比 |
|---|---|---|---|---|---|---|
| claude-opus-4-6 | 1,635 | 27,657 | 760,379 | 12,366,827 | $11.6354 | 88.6% |
| claude-haiku-4-5-20251001 | 9,680 | 32,872 | 643,106 | 5,155,909 | $1.4935 | 11.4% |
各设备用量
| 设备 | 总 Token | 输入 | 输出 | 费用 |
|---|---|---|---|---|
| tianhe | 7,203,350 | 5,266 | 23,595 | $5.6472 |
| TzJsDesktop | 11,794,715 | 6,049 | 36,934 | $7.4817 |