ZJU-REAL/SDAR

Official code for "Self-Distilled Agentic Reinforcement Learning"

📚 什么是 SDAR?

自蒸馏智能体强化学习(SDAR) 是一个开源研究框架,允许您使用 自蒸馏 范式训练 智能体 强化学习(RL)智能体——即在交互环境中运行的 LLM 驱动的机器人。核心思想是让“教师”模型生成轨迹,然后让“学生”模型从这些轨迹中学习,同时由门控机制决定何时保留教师的知识、何时让学生自主探索。该仓库包含原始 SDAR 算法以及一个名为 RetireOPD(自退型在线策略蒸馏)的新变体。


🚀 主要功能(如 README 中所列)

类别 代码支持的内容
方法 OP(S)D、GRPO、GRPO+OP(S)D、RLSD、Skill-SD、SDAR、RetireOPD
环境 ALFWorld(基于文本的家务任务)、WebShop(电子商务交互)、Search-QA
模型后端 Qwen-3 系列、Qwen-2.5 系列(LLM 检查点)

亮点

  • 门控机制:决定何时应用自蒸馏与直接 RL 更新。
  • RetireOPD 的两阶段训练:首先训练教师,然后在学生继续学习的同时让教师退役(逐步淘汰)。
  • 广泛的生态系统 – 该仓库已支持数十篇后续论文(例如 AlignOPSD、PR-OPD、UniOPSD 等)。
  • 结果:在三个基准测试中,ALFWorld 上的成功率超过 90%,在 WebShop 上表现出色。

🛠️ 开始使用

  1. 创建 Python 3.12 环境并安装核心依赖项(vllm、flash-attn、包本身)。
  2. 安装您要训练的目标环境:
    • ALFWorld – gymnasium、stable-baselines3、alfworld;然后运行 alfworld-download -f。
    • WebShop – 需要 Python 3.10;请遵循 agent_system/environments/.../webshop 中的 setup.sh 脚本。
    • Search-QA – 安装少量包,并使用 faiss-gpu、fastapi 等设置单独的 检索器 conda 环境。
  3. 训练脚本位于 examples/ 下。示例命令:
    bash examples/sdar_trainer/run_alfworld_3b.sh   # SDAR on ALFWorld with a 3-B Qwen model
    bash examples/retireopd_trainer/run_alfworld_3b.sh   # RetireOPD (two-stage)
    
  4. 检查点处理 – 使用 scripts/model_merger.py 将 FSDP/Megatron 分片合并为单个 Hugging Face 兼容检查点。

📊 报告的结果

算法 任务 模型 成功率
RetireOPD ALFWorld Qwen2.5-1.5B-Instruct 89.8 %
RetireOPD ALFWorld Qwen2.5-3B-Instruct 93.8 %
RetireOPD ALFWorld Qwen2.5-7B-Instruct 95.3 %
RetireOPD WebShop Qwen2.5-1.5B-Instruct 75.8 %
RetireOPD WebShop Qwen2.5-3B-Instruct 77.3 %
RetireOPD WebShop Qwen2.5-7B-Instruct 84.4 %

📚 如何引用

如果您使用 SDAR 或其任何衍生作品,README 提供了可直接复制的 BibTeX 条目:

@article{lu2026sdar,
  title={Self-distilled agentic reinforcement learning},
  author={Lu, Zhengxi and …},
  journal={arXiv preprint arXiv:2605.15155},
  year={2026}
}

(还列出了相关作品的额外引用,如 Skill0、AgentOPSD 等。)


🎯 谁可能对此感兴趣?

  • 研究人员:探索需要从自身经验中学习的 LLM 驱动的智能体。
  • 工程师:为基于文本或基于 Web 的任务构建 RL 管道,并希望获得现成的自蒸馏实现。
  • 学生:寻找一个将近期关于在线策略蒸馏的论文联系起来的具体代码库。

🔗 相关项目

README 中列出了长长的“SDAR 驱动的精彩工作”部分,表明许多近期论文(例如 AlignOPSD、PR-OPD、UniOPSD)都派生或扩展了该仓库。可以探索这些项目以获取专门的变体。


以上所有信息均直接取自仓库的 README,未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目