NanoRL
~1800 行代码的 RL 训练框架,单机可跑也能分布式
NanoRL 是一个轻量级的强化学习训练框架,全部代码约 1800 行、分布在 7 个文件中,无外部重型依赖(不依赖 Ray、TRL 或 DeepSpeed),小到可以花一个下午读完,定位是供人 Fork 而不是作为库导入。整个训练循环只有一行核心:loss = -(advantage * logprob).mean(),REINFORCE、PPO、GRPO 和 RLOO 等算法的区别仅在于 advantage() 函数如何计算,而同步与异步的区别仅在于批次从哪里来。算法集合在 algos.py 中,支持原始返回值、常量基线、GAE 和 GRPO/RLOO 等多种方式。异步训练将同一循环拆分到多台机器上运行:用 --role trainer 在一台机器启动训练器,用 --role rollout 在其他机器启动 rollout worker,它们通过标准库 HTTP 通信,某个 worker 崩溃只会损失其正在飞行中的批次,不会影响整体训练。项目使用 vLLM 作为推理后端,支持生成和评分使用不同 batch size 以优化显存占用,适配器权重同步仅需约 170 MB。安装方式为 uv pip install torch gymnasium numpy transformers,安装后运行 python tests/test_nanorl.py 验证。
团队信息
AI产品库
官方
由 AI 猎手自动发现
评论与建议
登录 后参与评论或提建议