| # 当前进展 - 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 |
| ``` |
|
|