errm / docs /CURRENT_PROGRESS.md
yuffish's picture
Add files using upload-large-folder tool
a741a7c verified
# 当前进展 - 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
```