使用最少的代码更改和最高的性能来训练由 GRPO 驱动的 RL Agent!

Agent Reinforcement Trainer (ART)

ART 是一个开源的强化训练库,用于提高 LLM 在 Agent 工作流程中的性能。ART 利用强大的 GRPO 强化学习算法,通过模型自身的经验来训练模型。与大多数 RL 库不同,ART 允许您在现有的代码库中执行 Agent 运行,同时将 RL 训练循环的所有复杂性转移到 ART 后端。阅读关于 训练循环 的概述。然后试试下面的 Notebook 吧!

📒 Notebook

Agent 任务 | 示例 Notebook | 描述 | 比较性能 ---|---|---|--- 2048 | 🏋️ 训练 Agent | Qwen 2.5 3B 学习玩 2048 | Benchmarks Temporal Clue | 🏋️ 训练 Agent | Qwen 2.5 7B 学习解决 Temporal Clue | [链接即将推出] Tic Tac Toe | 🏋️ 训练 Agent | Qwen 2.5 3B 学习玩 Tic Tac Toe | Benchmarks

🔁 训练循环概览

ART 的功能分为 clientserver。与 OpenAI 兼容的 client 负责 ART 和您的代码库之间的交互。使用 client,您可以传递消息并从您的 LLM 获取补全,LLM 会不断改进。server 独立地运行在任何具有 GPU 的机器上。它抽象了 RL 循环的推理和训练部分的复杂性,同时允许进行一些自定义配置。训练循环的概述如下所示:

  1. 推理 1. 您的代码使用 ART client 来执行 Agent 工作流程(通常并行执行多个 rollout 以更快地收集数据)。 2. 补全请求被路由到 ART server,该 server 在 vLLM 中运行模型的最新 LoRA。 3. 随着 Agent 的执行,每个 systemuserassistant 消息都存储在 Trajectory 中。 4. 当 rollout 完成时,您的代码会为 Trajectory 分配一个 reward,表示 LLM 的性能。
  2. 训练 1. 当每个 rollout 完成后,Trajectories 会被分组并发送到 server。在训练执行期间,推理会被阻止。 2. server 使用 GRPO 训练您的模型,从最新的 checkpoint 初始化(或在第一次迭代时从一个空的 LoRA 初始化)。 3. server 将新训练的 LoRA 保存到本地目录,并将其加载到 vLLM 中。 4. 推理被解除阻止,循环在第 1 步恢复。

此训练循环会一直运行,直到指定数量的推理和训练迭代完成。

支持的模型

ART 应该适用于大多数与 vLLM/HuggingFace-transformers 兼容的因果语言模型,或者至少是 Unsloth 支持的模型。Gemma 3 似乎暂时不受支持。如果任何其他模型对您不起作用,请在 Discord 上告知我们,或者在 GitHub 上打开一个 issue!

⚠️ 免责声明

ART 目前处于 Alpha 阶段,并且只在少数几个实际项目中进行了测试!我们正在努力使其适用于所有人,但是如果您遇到任何问题,请在 Discord 上告知我们,或者在 GitHub 上打开一个 issue!

🤝 贡献

ART 正在积极开发中,非常欢迎大家贡献!请参阅 CONTRIBUTING.md 文件以获取更多信息。

🙏 感谢

ART 站在巨人的肩膀上。虽然我们将导致 ART 开发的许多想法和早期实验归功于整个开源 RL 社区,但我们特别感谢以下项目的作者:

最后,感谢帮助我们在实际项目中测试 ART 的合作伙伴!我们很高兴看到大家用它构建的东西。