周报 — 2026-W09 (2026-02-23 ~ 2026-03-01)

本周在DCC和天河两台集群上并行推进空间转录组学(MIHD)与机器人错误恢复基准(Error Recovery Benchmark)两条主线。DCC端修复了scGPT致命权重加载Bug(ARI平均提升44.4%),将MIHD benchmark扩展至Visium HD数据集,并完成约250K行代码的大规模仓库重构;天河端从头建立BC-RNN Phoenix基线训练流水线(9任务并行),发现并修复Pi0.5评估0%成功率的任务分布不匹配根因,获得M14基线评估关键结论(学习策略在错误场景下SR≈0%,证明M15 LoRA微调必要性),并成功将Pi0.5 LoRA 9任务并行微调在6×A800上稳定启动。

本周概览

指标 数值
日期范围 2026-02-23 ~ 2026-03-01
活跃天数 5 / 7
总对话数 19
涉及项目 5
完成任务 35
进行中任务 6
总 Token 177,973,151
总费用 $105.52
日均费用 $21.10

项目进展

Error Recovery Benchmark(机器人错误恢复基准) (5 天活跃) — 🔄 active

完成项:

  • M14三路评估(Pi0/Pi0.5/BC-RNN)完成:BC-RNN SR=0.28%、Pi0/Pi0.5 SR=0%,Random的Recovery Progress反而最高,证明学习策略在错误注入场景下严重分布外泛化失败,直接证明M15 LoRA微调必要性
  • 发现并修复Pi0.5评估0%成功率根因:训练任务(MimicGen 5任务)与评估任务(PickPlace)完全不重叠,改为在训练任务上评估
  • BC-RNN Phoenix基线完整实现:image模式配置重写(符合MimicGen论文),9任务并行训练稳定运行,Stack D0 epoch22即达64% SR
  • Coffee BC-RNN配置缺陷修复:独立发现并添加缺失的57维object观测键,修复Coffee 0% SR根本原因
  • BC-RNN Stack_D0错误场景生成流水线完成:修复4层连续图像格式bug,生成11个tip_over场景及MP4可视化
  • Pi0.5 LoRA 9任务并行微调成功启动(6×A800,GPU利用率100%,77.7GB/卡)
  • 评估框架扩展至5个MimicGen任务,新增task registry + –task参数统一管理
  • Pi0.5 Phoenix 9任务基础模型评估:总SR=4.2%(Stack D0 24%,其余≤2%)
  • 649场景数据库组成发现:~519个兼容场景+130个natural_*不兼容场景,实际有效评估目标为519个

阻塞项:

  • ⚠️ Coffee环境初始化存在物体穿模/卡死问题(simulator bug),BC-RNN rollout可视化后发现,修复未完成
  • ⚠️ Pi0.5 LoRA微调效果(对比4.2%基线)待训练完成后验证

MIHD(多模态空间转录组学融合) (3 天活跃) — 🔄 active

完成项:

  • 修复scGPT致命权重加载Bug:TransformerModel.__init__遗漏self.use_fast_transformer导致17.7%注意力权重随机初始化,修复后ARI平均提升44.4%、NMI提升33.3%
  • STAIG fusion RM-IDEAL评估全面领先(151673平均r=0.396,Layer_3峰值r=0.644),证明多模态融合对空间niche结构捕获能力远超单模态基线(avg r≈0.06-0.12)
  • Visium HD crop10large全链路支持:8文件修改,修复4处路径适配bug,端到端验证Silhouette=0.343(vs PCA 0.086)
  • VisiumHD barcode映射发现(r_big//4规律),完成病理学家annotation、STHD细胞类型、STAIG fusion聚类三种对比可视化
  • Vision Refine对比实验:发现scan_cluster refine对弱fusion有益、对强fusion有害规律,qformer+no-refine最优(ARI=0.4832)
  • 仓库6阶段大规模重构:删除41文件/~250K代码+5.3MB图片,提取6个功能模块,dry_run验证440个实验通过,修复BasicContrastive drop_feature逻辑反转bug
  • STAIG fusion三项CPU加速实现(cdist向量化+GPU化随机数+批量forward,预计20-50x加速)

阻塞项:

  • ⚠️ DLPFC切片151676存在稳定训练坍塌(NaN from epoch 1),需独立调参,当前无根本解决方案

关键任务

  • 修复scGPT use_fast_transformer权重加载Bug并重提取全量embedding (2026-02-28) — TransformerModel.__init__遗漏self.use_fast_transformer导致load_pretrained()中key重映射永远不执行,12层注意力Q/K/V权重(17.7%参数)全部随机初始化。修复一行代码后ARI平均提升44.4%,186/186参数全部匹配。
  • Pi0.5全量微调OOM根因确认与LoRA架构切换 (2026-02-23) — 确认JAX FSDP只分片参数存储不减少激活内存,Pi0.5完整训练状态需62GB/GPU超A800上限。切换gemma_2b_lora+gemma_300m_lora将显存降至22.5GB,Job 46553以2.0s/step稳定运行。
  • M14三路基线评估完成与关键结论确认 (2026-02-27) — BC-RNN SR=0.28%,Pi0/Pi0.5 SR=0%,Random的Recovery Progress(0.0199)反而高于所有学习策略。证明学习策略在错误注入场景下严重分布外泛化失败,直接支撑M15 LoRA微调的必要性。
  • MIHD仓库6阶段清理重构 (2026-03-01) — Phase1删除41个死文件(~250K代码+5.3MB图片);Phase2-4将run_benchmark.py共享函数迁移至6个模块并修复BasicContrastive drop_feature逻辑反转bug(>=改为<);dry_run验证440个实验通过。
  • Visium HD crop10large全链路支持(8文件修改) (2026-02-28) — 修改data_loader/clustering/run_benchmark/pipeline四模块,添加HD无标注自动聚类(Leiden估计k)、HD专用可视化逻辑及hd_global配置段,修复坐标空间对齐和双重预处理问题,端到端验证Silhouette=0.343。
  • M14场景兼容性问题发现与修复 (2026-02-23) — 三路评估均在scene 122崩溃,AI分析EnvironmentMismatchError发现649场景库含两类环境(~519兼容+~130 natural_*不兼容)。collector.py加入scene级try-except修复,实际有效评估场景约519个。
  • 🔄 Pi0.5 LoRA 9任务并行微调流水线搭建与启动 (2026-03-01) — 创建train_pi05_benchmark.py(5子命令),向openpi/config.py注册18个配置,修复4个启动bug(JAX_PLATFORMS、norm_stats路径、布尔参数、W&B代理),以6×A800、GPU利用率100%、77.7GB/卡成功启动。
  • 🔄 BC-RNN Phoenix基线脚本实现与9任务并行训练启动 (2026-02-28) — 基于MimicGen论文超参数实现train_bc_rnn_benchmark.py,修复3处库级bug(mujoco_py导入、MimicGen环境注册、get_bounding_box_half_size继承链),单GPU并行9任务(~2.2GB VRAM/任务),含每20 epoch的50次rollout评估。
  • Coffee BC-RNN object观测键缺失定位与修复 (2026-03-01) — 通过对比HDF5数据集实际obs键结构,发现Coffee缺失57维object状态(Pod/Machine/Holder位置+相对姿态+铰链角),为全部9个任务添加extra_low_dim=[‘object’],修复Coffee 0% SR根本原因。
  • Pi0.5评估0%成功率根因定位与修复 (2026-02-26) — 确认训练任务(MimicGen 5任务)与评估任务(PickPlace)完全不重叠,改为在训练任务上评估。人类用一句质疑直接命中要害,AI初次分析未能第一时间识别这一最显而易见的原因。
  • BC-RNN image模式配置重写(5任务,符合MimicGen论文) (2026-02-26) — 将bc_rnn_configs从low_dim全部重写为image模式:ResNet18+SpatialSoftmax encoder、CropRandomizer 76×76、RNN hidden_dim 1000、batch_size 16、epoch_every_n_steps 500,与MimicGen论文主结果一致。
  • MIHD融合训练CPU三项加速实现 (2026-02-23) — scipy cdist向量化替代O(n²)嵌套循环(~100-500x),随机数生成迁移至GPU消除每epoch传输开销,QFormerFusion添加批量forward接口(预计20-50x)。
  • BC-RNN Stack_D0错误场景生成流水线开发 (2026-03-01) — 修复robomimic BC-RNN图像观测接入4层连续bug(enable_camera检测/json.loads解析checkpoint config/84×84分辨率自动检测/HWC→CHW转置+归一化),生成11个tip_over错误场景和MP4可视化。
  • Section 151673 RM-IDEAL全量评估(27方法×7层) (2026-02-28) — 运行全量27种embedding方法的RM-IDEAL评估,生成189张三面板可视化,staig_fusion平均r=0.396排名第一(Layer_3峰值r=0.644),多模态融合优势量化验证。
  • 评估框架扩展至5个MimicGen任务 (2026-02-26) — 新建5个task YAML configs + task_registry.yaml,为1/3/4脚本添加–task参数,修复_D0 env suffix stripping导致的observation维度错误(65→37),重写run_full_eval.sh支持多任务循环。
  • STAIG fusion全切片基准测试(11个DLPFC切片) (2026-02-23) — 在11个DLPFC切片上运行pca+uni2+staig_fusion和none+uni2+staig_fusion,修复UNI2 patch_size兼容性bug(256×256→224×224),10/11切片成功,平均ARI=0.546,151676已知坍塌。
  • MIHD Vision Refine vs Baseline对比实验 (2026-02-23) — 在切片151673上运行8种fusion方法有/无scan_cluster refine全量对比,qformer+no-refine为最优(ARI=0.4832)。发现refine对弱fusion有益(attention +0.086),对强fusion有害(qformer -0.054)的规律。
  • evaluate_mimicgen.py与collector.py关键bug修复 (2026-02-23) — 修复_quat2axisangle的in-place数组修改bug(改用np.clip+copy)、collector.py scene级EnvironmentMismatchError捕获、env.seed()可复现性保证、状态维度8D assert验证。

问题与解决方案

1. Pi0.5全量微调训练状态需~62GB/GPU,JAX FSDP=4无法有效降低显存(只分片存储不减少激活内存),反复OOM [Error Recovery Benchmark] (2026-02-23)

解决方案: 切换为gemma_2b_lora+gemma_300m_lora架构,可训练参数减少90%,显存降至22.5GB/GPU,Job 46553以2.0s/step稳定运行

2. M14三路评估均在scene 122/649崩溃:~130个natural_*场景xml_hash与当前mimicgen环境不兼容,触发EnvironmentMismatchError且无捕获,整个评估进程崩溃 [Error Recovery Benchmark] (2026-02-23)

解决方案: collector.py的collect_on_scenes()中为每个scene加入EnvironmentMismatchError的try-except,跳过不兼容场景并记录警告,以–resume重启,确认实际有效评估场景约519个

3. 训练日志因stdout缓冲严重失真:Pi0.5训练显示只跑了~580步,实际已到step 3000,导致误判训练中止并触发不必要的重启 [Error Recovery Benchmark] (2026-02-23)

解决方案: 在训练脚本和sbatch提交脚本中标准化加入PYTHONUNBUFFERED=1+stdbuf -oL;长时间训练改用sbatch提交独立批处理作业与交互会话生命周期解耦

4. Pi0.5评估success rate为0%,被误判为模型质量问题 [Error Recovery Benchmark] (2026-02-26)

解决方案: 确认根因为训练任务(MimicGen 5任务)与评估任务(PickPlace)完全不重叠;改为在训练任务(Coffee/Stack/Threading/Assembly)上评估

5. BC-RNN评估时observation维度不匹配(Expected 65, got 37) [Error Recovery Benchmark] (2026-02-26)

解决方案: 在create_env()中添加import mimicgen注册_D0环境,不再strip _D0后缀,保留完整MimicGen observables(_D0环境提供额外物体状态observable)

6. scGPT TransformerModel.__init__遗漏self.use_fast_transformer,导致load_pretrained()中Wqkv→in_proj_的key重映射永远不执行,17.7%注意力权重随机初始化,strict=False静默跳过不报错 [MIHD] (2026-02-28)

解决方案: 在model.py添加self.use_fast_transformer = use_fast_transformer一行,修复后ARI平均提升44.4%,重新提取全部11个DLPFC切片embedding

7. WebSocket客户端始终ConnectionRefusedError,尝试不同地址格式(localhost/127.0.0.1/0.0.0.0)均失败 [Error Recovery Benchmark] (2026-02-28)

解决方案: 发现http_proxy环境变量被设为127.0.0.1:10087,websockets库通过代理连接导致失败;在run_eval.sh开头unset所有代理变量后连接成功

8. CoffeeMachineBodyObject缺失get_bounding_box_half_size()方法,MimicGen Coffee任务rollout初始化时报AttributeError(MimicGen与当前robosuite版本之间的接口断层) [Error Recovery Benchmark] (2026-02-28)

解决方案: 追溯完整调用链(coffee_machine.py→CoffeeMachineBodyObject→CompositeBodyObject→MujocoXMLObject),在三个不同层级基类中分别实现get_bounding_box_half_size()

9. HD数据uns[‘spatial’]图像为全图但坐标在裁剪后fullres像素空间,两者不匹配导致可视化错位;且X已log变换,pipeline会再次normalize_total+log1p导致双重变换 [MIHD] (2026-02-28)

解决方案: 在load_hd_data()中替换uns[‘spatial’]图像为cropped_fullres.tif并重新计算scalefactor;preprocess_data()添加skip_log参数,HD数据传入skip_log=True只做HVG过滤

10. Coffee BC-RNN loss正常收敛(-7.66→-15.4)但SR始终0%,Stack同等配置epoch 20即达64%,表现与模型能力不足高度相似 [Error Recovery Benchmark] (2026-03-01)

解决方案: 对比HDF5数据集实际obs键结构,发现Coffee需57维object状态(多阶段精确操作必需),配置模板缺失该字段;为全部9个任务添加extra_low_dim=[‘object’]并重新生成配置

11. robomimic BC-RNN图像观测接入4层连续失败:enable_camera检测逻辑/checkpoint config为JSON字符串格式/图像分辨率获取/HWC→CHW格式转换均存在问题 [Error Recovery Benchmark] (2026-03-01)

解决方案: ① 从checkpoint config JSON字符串(需json.loads)检测rgb modality;② 从shape_metadata读取实际84×84尺寸;③ 手动HWC→CHW转置+uint8→float32/255归一化(标准rollout中ObsUtils.process_obs自动完成)

12. Pi0.5 LoRA训练启动4个连续阻塞性bug:① JAX_PLATFORMS=cpu单独设置无效;② norm_stats路径错误;③ 布尔参数–overwrite=False无效;④ HPC节点W&B外网访问被阻 [Error Recovery Benchmark] (2026-03-01)

解决方案: ① 同时设CUDA_VISIBLE_DEVICES=""+JAX_PLATFORMS=cpu;② norm_stats实际路径为assets//benchmark//norm_stats.json;③ 改用–no-overwrite;④ 预设WANDB_MODE=disabled

13. VisiumHD HD数据pipeline路径适配:vision encoder图像路径查找、fusion阶段spatial coords加载均假设DLPFC目录结构而失败 [MIHD] (2026-03-01)

解决方案: find_spatial_image()增加cropped_fullres.tif模式识别;vision encoder调用传crop_dir.parent作为data_root;fusion阶段直接从adata.obsm[‘spatial’]加载坐标绕过路径查找

14. norm_stats计算时GPU util=0但显存满载,任务长时间无进展;根因为PaligemmaTokenizer在get_config().model调用时eager加载到所有可见GPU [Error Recovery Benchmark] (2026-03-01)

解决方案: 同时设CUDA_VISIBLE_DEVICES=""+JAX_PLATFORMS=cpu强制CPU模式(norm_stats完全不需要模型推理);加CPU并行+子采样(max-frames 10000),计算时间从10+分钟降至2.5分钟

学习收获

架构 (architecture)

  • JAX FSDP只分片参数存储,不影响初始化时的完整模型加载和前向激活内存;Pi0.5完整训练状态需62GB/GPU,单A800 80GB无法承载全量微调;LoRA(gemma_2b_lora)是A800集群唯一可行方案,将显存需求降至22.5GB。看到’Can’t reduce memory use below 62.46GiB’警告时应立即切换LoRA。
  • BC-RNN配置的观测键必须与任务复杂度匹配:Coffee等多阶段精确操作任务需57维object状态,单靠84×84图像无法提供足够空间精度;配置bug的表现(loss正常但SR=0)与模型能力不足高度相似,需通过数据集结构对比才能区分。
  • 向量化与批量化加速效果极显著:O(n²)嵌套循环→cdist矩阵运算约100-500x,Python逐spot循环→批量GPU forward预计20-50x。norm_stats计算完全不需要模型推理,强制CPU模式+子采样+并行可从10+分钟降至2.5分钟。
  • 大型仓库重构方法论:系统性grep验证所有导入依赖→按「建新模块→更新引用→删旧文件」顺序执行→dry_run验证;同名函数多变体合并前需仔细比对边界条件(>vs>=vs<可导致功能完全相反)。

调试 (debugging)

  • PyTorch model.load_state_dict(strict=False)会静默忽略不匹配的key,关键权重可能长期以随机值运行不报任何错误;生产代码应主动打印missing_keys/unexpected_keys并验证参数数值统计。上游开源官方仓库也可能存在同类Bug,权重加载路径需主动审计而非盲目信任。
  • robomimic BC-RNN推理关键细节:checkpoint config以JSON字符串存储(需json.loads,非直接dict访问);绕过标准rollout流程时需手动HWC→CHW转置和uint8→float32/255归一化(标准rollout中ObsUtils.process_obs自动完成)。

领域知识 (domain)

  • M14关键结论:BC-RNN SR=0.28%,Pi0/Pi0.5 SR=0%,Random的Recovery Progress(0.0199)反而高于所有学习策略——学习策略在错误注入场景下存在严重分布外泛化失败,直接证明M15 LoRA微调的必要性。
  • 649场景数据库由两类环境组成:519个impulse/augmented兼容场景(xml_hash匹配)和130个natural_*自然捕获场景(xml_hash不同)。M14实际有效评估场景约519个,所有文档和目标episode数需相应更新。
  • STAIG fusion在RM-IDEAL评估全面领先(151673平均r=0.396,Layer_3峰值r=0.644),多模态融合对空间niche结构捕获能力远超单模态基线(gene/vision avg r≈0.06-0.12)。Vision Refine效果呈两极分化:对弱fusion有益(attention +0.086 ARI),对强fusion有害(qformer -0.054),强fusion已具备处理高维输入能力,降维反而损失信息。
  • 跨任务评估是robot learning的常见陷阱:训练集任务与评估任务不重叠直接导致0% SR,应在实验设计阶段确保train/eval task一致性。MimicGen _D0环境提供额外物体observable,剥离_D0后缀使observation维度从65降至37,破坏推理时输入一致性。
  • VisiumHD坐标映射:2um bin的r_big//4得到8um grid row(col同理);scanpy spatial可视化size参数是spot_diameter_fullres的倍数,HD 8μm(diameter≈7.3)需size≈4.0,DLPFC(diameter≈144)用size=1.0;Leiden社区发现(resolution=1.0)是无标注HD数据默认聚类策略(crop10large k=17,Silhouette=0.302)。

工具 (tools)

  • Slurm集群训练工程最佳实践:长时间训练必须用sbatch(非srun,避免会话超时被SIGTERM);所有训练脚本标准化加入PYTHONUNBUFFERED=1+stdbuf -oL;启动前用fuser /dev/nvidiaX清理zombie GPU进程(nvitop等监控工具也持有CUDA上下文);MUJOCO_EGL_DEVICE_ID对应物理GPU编号而非CUDA_VISIBLE_DEVICES逻辑编号。
  • JAX/Pi0.5训练关键配置:① CPU模式需同时设CUDA_VISIBLE_DEVICES=""+JAX_PLATFORMS=cpu;② XLA_PYTHON_CLIENT_MEM_FRACTION=0.95对A800 80GB有效(61→77.7GB);③ HPC节点必须预设WANDB_MODE=disabled;④ argparse布尔flag用–no-overwrite不能用–flag=False;⑤ openpi norm_stats路径为assets//benchmark//norm_stats.json。
  • HTTP/HTTPS代理环境变量(http_proxy)会被Python websockets库透明代理WebSocket连接,HPC集群调试本地服务时需unset代理变量。MimicGen环境通过import mimicgen的副作用注册到robosuite,外部工具调用前必须显式执行该import。修复第三方库缺失方法必须追溯完整继承链在所有基类中实现,仅修补最近调用点会导致其他子类仍报错。
  • pam_slurm_adopt集群GPU节点不支持直接SSH;srun –overlap可在已有interactive job上附加新step复用节点资源;robomimic非TTY环境遇已存在checkpoint目录会EOFError退出,每次启动前需彻底清理目录。checkpoint目录是训练完成最可靠证据,SLURM job崩溃不等于训练失败。

AI 使用备注

有效模式:

  • ✓ 系统性代码审计定位根因:通过比对checkpoint与model state_dict的key精确定位scGPT权重加载Bug(一行遗漏);通过对比HDF5数据集实际obs键结构独立发现Coffee配置缺陷(全程无人类假设引导)
  • ✓ 完整调用链追溯:修复CoffeeMachineBodyObject缺失方法时追溯三层继承链(coffee_machine→CoffeeMachineBodyObject→CompositeBodyObject→MujocoXMLObject),在所有基类中实现而非仅修补最近调用点
  • ✓ 渐进式调试:通过逐步分析(依赖降级→源码修补→架构切换→sbatch提交)解决Pi0.5训练OOM,而非一次性替换整套方案
  • ✓ SubAgent并行监控:通过TaskOutput后台监控多个长耗时实验,跨DCC/天河双集群并行推进不同项目

局限性:

  • ✗ 对JAX FSDP显存原理判断错误(认为FSDP=4可降至~16GB),多次OOM后才切换LoRA,应在看到’Can’t reduce memory use below 62.46GiB’警告时立即行动
  • ✗ 诊断Pi0.5 0%成功率时未能第一时间识别任务分布不匹配这一最显而易见的原因,先列出OOM/action clipping等次要因素,被用户一句直接质疑命中要害
  • ✗ 缺乏主动的长时间任务健康检查:GPU空转(util=0但显存满载)、进程卡住等异常均依赖用户主动发现,而非AI主动审计
  • ✗ 外部工具集成前缺乏预防性验证:未预先检查mclust/rpy2可用性、图像格式约定(HWC vs CHW)、出站网络限制(W&B)、zombie GPU进程,导致多轮失败后才修复
  • ✗ 多次在写完plan后尝试自动调用ExitPlanMode推进执行(被用户拒绝共2-3次),AI未能理解plan是用户决策检查点而非自动推进信号
  • ✗ 依赖过时的对话缓存信息(如Pi0.5 step 5000崩溃记录)缺乏主动验证意识,应以实际checkpoint文件状态为准而非对话记录

下周展望

下周核心任务:① 等待并分析Pi0.5 LoRA 9任务微调结果(预计53小时完成),与4.2%基础模型基线对比,验证LoRA对MimicGen任务的泛化提升效果;② BC-RNN 9任务训练推进至600 epoch,重点关注Coffee/ThreePieceAssembly D1等复杂任务的收敛情况;③ 修复Coffee环境初始化simulator bug(物体穿模/卡死),完成Coffee BC-RNN评估闭环;④ M15实验设计启动:基于M14结论(学习策略错误场景SR≈0%),规划错误场景下的LoRA微调数据采集策略,确定错误类型采样比例和数据量;⑤ MIHD扩展:在更多VisiumHD切片上运行多模态基准测试验证STAIG fusion统计稳定性,并开展DLPFC 151676切片训练坍塌专项调查(调整tau/dropout rate/图构建参数)。

Token 用量统计

每日费用趋势

日期 Token (百万) 费用 ($)
2026-02-23 17.2 8.82
2026-02-26 15.1 6.34
2026-02-27 2.4 0.45
2026-02-28 53.2 34.91
2026-03-01 90.0 55.00

峰值日: 2026-03-01 — $55.00 / 90.0M tokens

Claude Code

指标 数值
总 Token 177,973,151
输入 Token 238,487
输出 Token 333,455
Cache 创建 9,184,774
Cache 读取 168,216,435
总费用 $105.52

模型使用分布

模型 费用 ($) 输入 Token 输出 Token
claude-opus-4-6 94.14 52,476 198,099
claude-haiku-4-5-20251001 11.38 186,011 135,356