# 当前进展 - Current Progress > 最后更新:2025-01-20 --- ## 已完成模块 ### 1. 数据处理流水线 ✅ | 模块 | 状态 | 说明 | |------|------|------| | DROID 数据加载 | ✅ 完成 | 支持从 TFDS 格式读取 | | 视频帧提取 | ✅ 完成 | 支持 mirror/flat_hash 模式 | | Metadata 解析 | ✅ 完成 | 自动提取任务描述 | | 批量处理 | ✅ 完成 | 支持 START_INDEX + MAX_VIDEOS 范围控制 | ### 2. GPT 标注系统 ✅ | 功能 | 状态 | 说明 | |------|------|------| | 基础标注 | ✅ 完成 | `api_batch.py` | | 改进版标注 | ✅ 完成 | `api_batch_improved.py` - 滑动窗口 + 上下文传递 | | HuggingFace 集成 | ✅ 完成 | `api_batch_hf_dataset.py` | | 奖励对齐 | ✅ 完成 | 与仿真数据 5 分量对齐 | ### 3. 本地模型推理 ✅ | 模块 | 状态 | 说明 | |------|------|------| | Qwen VL 推理 | ✅ 完成 | `caption/infer_caption.py` | | 批量 Caption | ✅ 完成 | `caption/infer_caption_batch.py` | | 结果解析 | ✅ 完成 | JSON 自动提取 | ### 4. 数据格式转换 ✅ | 格式 | 状态 | 输出位置 | |------|------|----------| | SFT JSON | ✅ 完成 | `data/sft_frames_dataset.json` | | SFT (from/value) | ✅ 完成 | `data/sft_frames_dataset_sft.json` | | Special Token 版 | ✅ 完成 | `data/sft_reward_dataset_special_tokens.json` | ### 5. 模型训练 ✅ | 版本 | 状态 | 检查点 | |------|------|--------| | v0 基础版 | ✅ 完成 | `weights_reward_sft/v0-*/checkpoint-28` | | v1 改进版 | ✅ 完成 | `weights_reward_sft/v1-*/checkpoint-7` | | Special Token v0 | ✅ 完成 | `weights_reward_sft_special_token/v0-*` | | Special Token v1 | ✅ 完成 | `weights_reward_sft_special_token/v1-*` | | Special Token v2 | ✅ 完成 | `weights_reward_sft_special_token/v2-*` (full merge) | ### 6. 数据集管理 ✅ | 功能 | 状态 | 说明 | |------|------|------| | 统计分析 | ✅ 完成 | `data_sta/failure_statistics.json` | | 采样策略 | ✅ 完成 | balanced/random/proportional | | HuggingFace 上传 | ✅ 完成 | `data_sta/upload_to_huggingface.py` | --- ## 数据集统计 ### DROID Failure 数据 ``` 总轨迹数: 15,157 数据源分布: - AUTOLab: 3,618 (23.9%) - ILIAD: 1,303 (8.6%) - IPRL: 1,298 (8.6%) - PennPAL: 2,494 (16.5%) - CLVR: 433 (2.9%) - GuptaLab: 187 (1.2%) - ... ``` ### 任务类型分布 (Top 10) | 任务 | 数量 | |------|------| | Move object into or out of container | 2,699 | | Move object to a new position | 2,494 | | Open or close hinged object | 1,103 | | Hang or unhang object | 891 | | Move lid on or off of container | 637 | | Open or close slidable objects | 543 | | Press button | 489 | | Use cup to pour | 437 | | Fold, spread out, or clump object | 398 | | Use cloth to clean | 312 | ### 仿真数据 ``` cokecan-50/ ├── fall/ (10 episodes) ├── collision/ (10 episodes) ├── grasp/ (10 episodes) ├── smooth/ (10 episodes) └── success/ (10 episodes) ``` --- ## 已生成标注 ### GPT 标注文件 | 文件 | 内容 | |------|------| | `output/labels_batch.jsonl` | 基础版标注 | | `output/labels_batch_improved.jsonl` | 改进版标注 | | `output/labels_hf_dataset.jsonl` | HuggingFace 数据集标注 | ### Caption 结果 | 文件 | 内容 | |------|------| | `caption/output/caption_results_batch.json` | Qwen VL 批量结果 | | `caption/output/caption_results_batc_100.json` | 100 条测试 | --- ## 当前问题 / 待解决 ### 1. 标注质量 - [ ] GPT 标注的一致性评估 - [ ] 人工抽样检查标注质量 - [ ] 失败案例分析(为什么某些标注不准确) ### 2. 数据规模 - [ ] 完整 DROID 数据集标注(目前只处理了部分) - [ ] 仿真数据扩充 - [ ] 更多失败模式覆盖 ### 3. 模型评估 - [ ] 奖励模型在 held-out 数据上的评估 - [ ] 与真实奖励的相关性分析 - [ ] 不同训练版本的对比 --- ## 关键文件索引 ### 核心脚本 ``` api_batch_improved.py # GPT 标注(推荐) api_batch_hf_dataset.py # HuggingFace 数据集处理 video_process.py # 视频提取 extract_frames_to_images.py # 帧提取 convert_to_sft.py # 格式转换 ``` ### 配置文件 ``` data/system_prompt.txt # 推理时的系统 prompt data/tokens.txt # 特殊 token 定义 ``` ### 输出数据 ``` output/labels_*.jsonl # 标注结果 data/sft_*.json # 训练数据 droid_processed/*.json # 处理后的 episode ``` ### 模型权重 ``` weights_reward_sft/*/checkpoint-* # 标准版 weights_reward_sft_special_token/*/ # 特殊 token 版 ``` --- ## 运行状态 ### 最近运行记录 | 日期 | 操作 | 结果 | |------|------|------| | 2025-11-11 | Special Token v2 训练 | checkpoint-70 | | 2025-11-10 | 改进版 SFT 训练 | checkpoint-7 | | 2025-11-05 | 基础版 SFT 训练 | checkpoint-28 | ### 环境要求 ``` Python 3.8+ PyTorch 2.0+ transformers swift (ms-swift) decord openai PIL tensorflow_datasets ```