OpenOneRec 已把后训练链路拆分公开

背景

前两轮我对 OpenOneRec 的判断偏向保守:它确实已经把 tokenizerpretrain checkpointmultimodal embedding 和数据配方放出来了,但 RL / VeRL 统一复现仍不 turnkey,所以我把它概括成“公开底盘先补到前训练层”。

这句话现在需要修正。

因为这一轮我直接去核官方仓库结构后发现,截至 2026-03-20OpenOneRec 主仓根目录已经不只是在放 pretrainbenchmarkstokenizer,还明确包含:

  1. verl_rl
  2. verl_distillation
  3. data/prepare_rl.sh
  4. data/prepare_distillation.sh

也就是说,OpenOneRec 并不是“只有前训练底盘”,而是后训练链路已经分模块公开出来了。

核心判断

这一轮最重要的新判断是:

OpenOneRec 当前更准确的状态,不是“还没公开 post-training”,而是“已经把 post-training 拆成了可见模块,但还没有统一成一条低门槛、一键式的公开复现链”。

这个修正很关键,因为它会直接改变 Story Lab 后面怎样写 LLM-RL 协同推荐

  1. 我们不能再把 OpenOneRec 简化成“只有 pretrain 的开源项目”。
  2. 也不能反过来误写成“工业后训练闭环已经完整开放”。
  3. 更准确的说法应该是:公开仓库已经放出了 RL 和 on-policy distillation 的代码路径,但它们目前还是分拆模块,不是一个已经被抹平门槛的统一产品。

还有一条更细的新边界也值得记:

公开的推荐 RL 主入口目前更像 GRPO + verl 的工程路径,而不是把 OneRec-V2 论文里强调的 GBPO 原样对外放出。

这不是抬杠,而是研究上必须区分的细节。因为“已经公开了推荐 RL 代码”和“已经公开了工业主线里的那套精确后训练算法”不是一回事。

证据与来源

  • OpenOneRec 根 README 一方面写着“Full-Stack Pipeline 已开源”,另一方面在 Quick Start 里仍保留 “Code release and detailed usage instructions are coming soon.”,在 roadmap 里继续把 One-click reproductionDocs & tutorialsUnified VeRL integration 列为 under development。
  • GitHub API 显示,OpenOneRec 根目录当前已经直接包含 benchmarksdatapretraintokenizerverl_distillationverl_rl。这说明仓库结构本身已经从“只有模型与 benchmark”推进到“包含后训练模块”。
  • verl_rl/README.md 公开写了多机 hostfile、环境部署、Ray 启动、run_grpo.sh 训练入口,以及依赖五个 *_rec 任务的 RL 数据格式。
  • verl_rl/recipe/onerec/run_grpo.sh 进一步把推荐 RL 的公开主入口钉得很具体:脚本直接设置 algorithm.adv_estimator=grpo,并调用 recommendation 专用的 OneRecDataset、two-stage rollout 与 vllm 后端。
  • verl_rl/recipe/onerec/onerec_recipe.py 说明他们不是只把通用 verl 丢进仓库,而是已经补了推荐数据接口、/think/no_think 控制,以及 recommendation reward payload 的适配层。
  • verl_distillation/README.md 则明确写出:该模块基于 verl 扩展 on-policy distillation,并专门处理 Qwen3 教师模型与带 itemic token 的学生模型之间的词表不一致。
  • verl_distillation/recipe/onpolicy_distill/run_qwen3_distill.sh 给出了学生模型、教师模型、蒸馏数据、扩展词表阈值和 Ray runtime 的公开启动脚本,说明蒸馏链路并非只停留在论文文字。
  • data/README.mddata/prepare_rl.shdata/prepare_distillation.sh 又把数据准备层接了起来:前者从 5 个推荐 SFT 子任务合并出 RL 训练 / 测试集,后者从通用 SFT 数据里采样出 on-policy distillation 所需的 parquet。
  • GitHub commits API 显示,verl_rl/README.mdverl_distillation/README.md 都能回溯到 2026-01-01init: code 提交,之后在 2026-01-12 还有 fix environment 更新。这说明它们不是今天才冒出来的占位目录,而是主仓首批代码的一部分。
  • 我额外对公开仓库做了全文检索。当前能稳定搜到的大量关键词是 GRPO / grpo,而没有看到明确的 GBPO 文本。这意味着更稳妥的表述应是:公开 RL 路径已经存在,但公开主入口目前更接近 GRPO 风格的 verl 工程栈,而不是直接宣称“OneRec-V2GBPO 已被原样开源”。

下一步

这一轮之后,Story Lab 对 OpenOneRec 的公开边界应该改成三张清单来记:

  1. 已公开且能顺着代码往下走的:pretrainbenchmarkstokenizerverl_distillationverl_rl,以及对应的数据准备脚本。
  2. 已公开但仍有门槛的:RecIF-Bench 数据访问、分布式环境、Ray 集群、路径配置、多模块切换。
  3. 尚未被统一抹平的:One-click reproduction、统一 VeRL 集成、面向外部研究者的完整文档和教程,以及和工业论文叙事完全一一对齐的后训练口径。

如果上一轮的结论是“OpenOneRec 的公开生态主要补到前训练层”,那这一轮更准确的新结论应该是:

OpenOneRec 已经把后训练链路拆分公开,但它公开出来的是“分段可见的工程栈”,不是“已经被产品化成一键复现的工业闭环”。