WaitXian's picture
Upload liqi files
0ab2566 verified
|
Raw History Blame Contribute Delete
2.29 kB
# CoT Data Generation for Embedding Model
使用本地 Qwen3.5-397B-A17B (vLLM) 为电商图搜 embedding 模型生成 Chain-of-Thought 数据。
## 文件说明
| 文件 | 功能 |
|------|------|
| `config.py` | 配置(模型路径、OSS、prompt模板等) |
| `generate_cot.py` | 主生成脚本(vLLM batch推理 + 断点续传) |
| `retry_failed.py` | 重试失败记录 |
| `merge_shards.py` | 合并分片输出 |
| `validate_cot.py` | 质量验证与统计 |
| `run.sh` | 启动脚本 |
## 快速开始
### 1. 安装依赖
```bash
pip install vllm oss2 pillow tqdm numpy
```
### 2. 小批量测试
```bash
cd /home/lyq494390/multi_vlm2vec_train/cot_gen
bash run.sh --test
```
### 3. 全量生成
```bash
# 全量(支持断点续传,中断后重新运行自动跳过已处理的)
bash run.sh
# 指定范围
bash run.sh --start 0 --end 100000
# 指定TP size
bash run.sh --tp 4
```
### 4. 验证质量
```bash
python validate_cot.py --cot_path /data/oss_bucket_0/liqi/dataset/embedding_pf/cot_output/zhaoxiangsi_train_cot.jsonl --num_samples 10
```
### 5. 重试失败记录
```bash
python retry_failed.py --failed_path /data/oss_bucket_0/liqi/dataset/embedding_pf/cot_output/failed_records.jsonl
```
## 输出格式
每行一条 JSONL:
```json
{
"rn": "037a6b4e192533b2e0dc9ab3fb692806",
"query_tfsid": "O1CN01velvra1klBlaW3SfK_!!4611686018427387507-0-imgsearch.jpg",
"query_bbox": "22 114 414 790",
"instruction": "更多类似碎花半身裙",
"cot": "图片中展示了一条碎花印花的A字半身裙,面料轻薄透气,裙身布满小碎花图案...",
"prompt_index": 0
}
```
## 资源说明
- 模型:`/data/oss_bucket_0/wuxiangyang/model/Qwen3.5-397B-A17B`
- 4x A800 80GB,tensor_parallel=4
- 图片通过 OSS bucket `pailitao-ai` 读取
- 原始数据约 80 万条记录,每条约 10 个 instruction,展开后约 800 万条 CoT 样本
## 注意事项
- 首次运行建议用 `bash run.sh --test` 验证图片加载和模型推理是否正常
- 支持断点续传:中断后重新运行会自动跳过已生成的记录
- 如果 OSS 图片路径与实际不符,修改 `generate_cot.py` 中 `get_image_from_oss` 的 `oss_path`
- `BATCH_SIZE` 默认64,如果显存不足可在 `config.py` 中调小