Video-ORA-4B / code /docs /training_zh.md
lyhisme's picture
Add 4B model card, benchmark assets, and release code
0185029 verified
|
Raw
History Blame Contribute Delete
4.65 kB

English

使用 OraRL 训练

本流程将已获许可的源数据整理为可审计的 GRPO 或 OraRL 训练任务。请先 安装固定版本软件栈

orarl-train 是公开的训练入口:它会检查路径与覆盖项、解析发布配置,再启动 本仓库自带的训练器,无需准备第二份运行时源码。

1. 构建训练清单

整理后的训练数据将稍后单独上传,目前尚未包含在本 Git 仓库中。在发布完成前, 请按上游许可证自行获取标注和媒体文件,然后复制示例清单:

cp configs/data_sources.example.yaml ./data_sources.local.yaml

将所有 ../local_data 占位符替换为已获许可的本地路径。相对路径以清单文件所在 目录为基准。每个数据源需要声明标注文件、任务、任务族、配额和媒体根目录,并可 记录许可证与来源页面。

公开示例对应论文使用的 100,032 条训练混合:

任务族 条数
时序定位 20,096
跟踪 13,952
分割 12,032
空间定位 7,040
时空定位 9,536
视频问答 20,288
空间智能 17,088

构建确定性的训练集和 canary 集:

orarl-prepare \
  --config ./data_sources.local.yaml \
  --output ./prepared/train.jsonl \
  --require-media

输出结构为:

prepared/
├── train.jsonl
├── train.canary.jsonl
└── train.manifest.json

构建器会检查本地媒体、规范化任务记录、执行数据源配额和单媒体上限、去除重复 prompt、排除给定评测集中的样本,并保证训练集与 canary 集媒体互斥。审计清单会 记录计数、缺额、来源信息和 SHA-256 校验值。

2. 选择 GRPO 或 OraRL

配置 模型规模 方法
grpo_4b.yaml 4B GRPO baseline
grpo_9b.yaml 9B GRPO baseline
orarl_4b.yaml 4B OraRL
orarl_9b.yaml 9B OraRL

论文默认每个 rollout/update batch 使用 64 个 prompt,每个 prompt 采样 8 个策略 回复,因此 100,032 条混合数据在一个 epoch 中对应 1,563 步。

3. 预览并启动

设置兼容的本地基础模型和已准备的数据路径:

MODEL_DIR=/path/to/local/base-model
OUTPUT_DIR="$PWD/runs/orarl-4b"

orarl-train \
  --config orarl_4b.yaml \
  --model "$MODEL_DIR" \
  --train-data "$PWD/prepared/train.jsonl" \
  --val-data "$PWD/prepared/train.canary.jsonl" \
  --output "$OUTPUT_DIR" \
  --nodes 1 \
  --gpus-per-node 8

命令默认只执行 dry run。检查解析后的调用后,增加 --run 开始训练。可通过 --set KEY=VALUE 显式覆盖配置,并应随运行产物保留全部覆盖项。

单步 smoke test:

orarl-train \
  --config orarl_4b.yaml \
  --model "$MODEL_DIR" \
  --train-data "$PWD/prepared/train.jsonl" \
  --val-data "$PWD/prepared/train.canary.jsonl" \
  --output "$OUTPUT_DIR" \
  --nodes 1 \
  --gpus-per-node 8 \
  --set trainer.max_steps=1 \
  --run

再使用 grpo_4b.yaml 和独立输出目录验证 baseline。9B 任务需使用匹配的模型与 配置。

4. 扩展到多节点

所有节点必须看到相同的源码、模型、数据和输出路径:

HOSTS=node-a,node-b \
  bash scripts/launch_multinode.sh \
  --gpus-per-node 8 \
  -- \
  --config "$PWD/configs/orarl_4b.yaml" \
  --model "$MODEL_DIR" \
  --train-data "$PWD/prepared/train.jsonl" \
  --val-data "$PWD/prepared/train.canary.jsonl" \
  --output "$OUTPUT_DIR"

启动器同样默认为 dry run;需要在 -- 分隔符前加入其自身的 --run。SSH 主机密钥检查默认使用严格模式。

5. 验收一次运行

scripts/smoke_training.sh 会以较小的 batch 分别跑一步 GRPO 和一步 OraRL, 并各保存一个 checkpoint:

bash scripts/smoke_training.sh \
  --model "$MODEL_DIR" \
  --train-data "$PWD/prepared/train.jsonl" \
  --val-data "$PWD/prepared/train.canary.jsonl" \
  --size 4b \
  --gpus-per-node 8

加上 --dry-run 可在不占用 GPU 的情况下检查解析后的命令。

正式实验前确认:

  • GRPO 和 OraRL 均可完成一步更新,reward、loss、梯度范数和选择指标均为有限值。
  • checkpoint 可保存、重新加载并继续完成一步更新。
  • 多节点任务能组成预期的 Ray 集群并完成一步更新。
  • 保存源码版本、配置、命令、数据清单校验值、环境版本、加速卡类型和所有覆盖项。

使用评测文档评估导出的 checkpoint。