开发者指南#
Trinity-RFT 将 RL 训练过程拆分为了三个模块:Explorer、Trainer 和 Buffer。
其中 Explorer 提供了能够自定义智能体与环境交互的 Workflow 接口,Trainer 提供了能够自定义 RL 算法的 Algorithm 接口,Buffer 提供了能够自定义数据处理算子的 Operator 接口。
下表列出了各扩展接口的主要目标用户、功能以及对应的开发教程。开发者可以参考对应的模块开发教程,并根据自身需求对 Trinity-RFT 进行扩展。
扩展接口 |
目标用户 |
主要功能 |
教程链接 |
|---|---|---|---|
|
智能体应用开发者 |
提升 Agent 在指定环境中完成任务的能力 |
|
|
RL 算法研究者 |
设计新的 RL 算法 |
|
|
数据工程师 |
设计新的数据清洗、增强策略 |
|
|
数据工程师 |
设计新的数据选择策略 |
小技巧
Trinity-RFT 提供了插件化的开发方式,可以在不修改框架代码的前提下,灵活地添加自定义模块。
开发者可以将自己编写的模块代码放在 trinity/plugins 目录下。Trinity-RFT 会在运行时自动加载该目录下的所有 Python 文件,并注册其中的自定义模块。
Trinity-RFT 也支持在运行时通过设置 --plugin-dir 选项来指定其他目录,例如:trinity run --config <config_file> --plugin-dir <your_plugin_dir>。
对于准备向 Trinity-RFT 提交的模块,请遵循以下步骤:
在适当目录中实现你的代码,例如
trinity/common/workflows用于Workflow,trinity/algorithm用于Algorithm,trinity/buffer/operators用于Operator。在目录对应的
__init__.py文件中注册你的模块。在
tests目录中为你的模块添加测试,遵循现有测试的命名约定和结构。提交代码前,确保通过
pre-commit run --all-files完成代码风格检查。向 Trinity-RFT 仓库提交 Pull Request,在描述中详细说明你的模块功能和用途。