PARL
PARL 是一款由百度开源的高性能分布式强化学习训练框架,旨在帮助开发者和研究人员高效地构建、复现及扩展复杂的强化学习算法。它主要解决了传统强化学习在训练大规模模型时面临的效率瓶颈与并行化难题,支持数千个 CPU 核心和多 GPU 的协同工作,确保实验结果的可复现性。
PARL 特别适合从事人工智能算法研究的研究员、需要部署大规模训练任务的工程师,以及希望快速验证新想法的开发者。其核心亮点在于简洁优雅的抽象设计,将模型、算法和智能体(Agent)清晰解耦,用户只需定义前向网络即可自动构建训练机制。更独特的是,PARL 提供了极简的分布式编程接口:开发者仅需通过一个简单的装饰器(@parl.remote_class),即可将本地代码无缝转换为分布式任务,轻松调用外部计算资源而无需关心底层通信细节。这种“两行代码实现并行”的特性,极大地降低了分布式强化学习的门槛,让大规模训练变得触手可及。
使用场景
某自动驾驶研发团队正利用强化学习训练车辆在复杂城市路况下的决策模型,需处理海量仿真数据并加速收敛。
没有 PARL 时
- 资源利用率低:单卡或单机训练无法承载千万级仿真步数,大量 CPU 集群闲置,只能串行跑实验,迭代周期长达数周。
- 代码耦合严重:每次切换算法(如从 DQN 换到 PPO)需重写底层数据交互逻辑,模型、算法与环境代码纠缠,维护成本极高。
- 复现困难:缺乏标准化的算法实现,不同成员编写的训练脚本差异大,导致论文结果难以在内部稳定复现。
- 扩展门槛高:想引入分布式训练需手动编写复杂的通信与同步代码,开发耗时且容易出错,阻碍了大规模并行验证。
使用 PARL 后
- 千核并行加速:仅需添加
@parl.remote_class装饰器,即可将 Agent 分发至数千个 CPU 节点并行采集数据,训练速度提升数十倍,实验周期缩短至天级。 - 模块化解耦:依托 Model、Algorithm、Agent 三层抽象,团队只需定义新网络结构,自动复用标准训练机制,算法切换如同搭积木般灵活。
- 结果稳定可复现:直接调用框架内置的经典算法实现,确保基准测试与前沿论文结果一致,消除了因代码差异导致的性能波动。
- 极简分布式开发:通过简单的 API 连接远程资源,无需关注底层通信细节,轻松实现多 GPU 与多机协同,大幅降低大规模训练的工程难度。
PARL 通过高度抽象的架构与一键式分布式能力,让团队从繁琐的工程泥潭中解脱,专注于核心策略的创新与验证。
运行环境要求
- 未说明
非必需(仅分布式训练或特定算法推荐多 GPU),具体型号和显存未说明
未说明

快速开始
英语 | 简体中文
PARL 是一个灵活且高效的强化学习框架。
关于 PARL
特性
可复现性。我们提供了能够稳定复现许多有影响力的强化学习算法结果的算法。
大规模。支持使用数千个 CPU 和多块 GPU 进行高性能并行训练。
可重用性。仓库中提供的算法可以通过定义前向网络直接适配到新任务上,训练机制将自动构建。
可扩展性。通过继承框架中的抽象类,可以快速构建新算法。
抽象概念
PARL 的目标是构建用于训练复杂任务的智能体。PARL 引入的主要递归式抽象概念如下:
模型
Model 被抽象为构建前向网络,该网络以状态作为输入,定义策略网络或价值网络。
算法
Algorithm 描述了更新 Model 中参数的机制,通常至少包含一个模型。
智能体
Agent 是环境与算法之间的数据桥梁,负责与外部环境进行数据输入输出,并在数据进入训练流程之前对其进行预处理。
并行化
PARL 提供了一个简洁的分布式训练 API,用户只需添加一个装饰器即可将代码转换为并行版本。有关并行训练 API 的更多信息,请参阅我们的文档。
以下是一个“Hello World”示例,展示了利用外部计算资源是多么简单。
#============Agent.py=================
@parl.remote_class
class Agent(object):
def say_hello(self):
print("Hello World!")
def sum(self, a, b):
return a+b
parl.connect('localhost:8037')
agent = Agent()
agent.say_hello()
ans = agent.sum(1,5) # 它在远程运行,不消耗任何本地计算资源
使用外部计算资源的两个步骤:
- 首先使用
parl.remote_class装饰一个类,之后它将被转换为可以在其他 CPU 或机器上运行的新类。 - 在创建对象之前调用
parl.connect初始化并行通信。调用这些对象的任何方法都不会消耗本地计算资源,因为它们是在其他地方执行的。
如图所示,真正的演员(橙色圆圈)正在 CPU 集群上运行,而学习者(蓝色圆圈)则在本地 GPU 上运行,同时有几个远程演员(带有虚线边框的黄色圆圈)。
对于用户来说,他们可以像编写多线程代码一样简单地编写代码,但这些演员会消耗远程资源。我们还提供了诸如 IMPALA、A2C 等并行化算法的示例。更多使用细节请参考这些示例。
安装:
依赖项
- Python 3.6+(Python 3.8+ 更适合分布式训练)。
- paddlepaddle>=2.3.1 (可选, 如果您只想单独使用与并行化相关的 API)
pip install parl
快速入门
以下是帮助您开始的几点:
- 教程:如何解决 Cartpole 问题。
- Xparl 使用方法:如何使用
xparl设置集群并进行并行计算。 - 进阶教程:创建自定义算法。
- API 文档
对于不太了解强化学习的初学者,我们还提供了一门入门课程:( 视频 | 代码 )
示例
- 快速入门
- DQN
- ES
- DDPG
- A2C
- TD3
- SAC
- QMIX
- MADDPG
- PPO
- CQL
- IMPALA
- NIPS2018假肢挑战赛冠军方案
- NIPS2019学会移动挑战赛冠军方案
- NIPS2020学习运行电网挑战赛冠军方案

Waymax-RL(2025年更新,GPU强化学习自动驾驶)
- 用于 Waymax 自动驾驶模拟的端到端 GPU 强化学习。
完整文档和说明:waymax_rl/README.md
xparl 安全性
xparl 提供跨多台机器集群的多进程并行计算,类似于 Python 内置的单机多进程模块。这意味着在客户端编写代码后,你可以在集群中的任何一台机器上执行任意代码,例如从其他机器获取数据、添加或删除文件等。
这种行为是设计使然,因为强化学习环境种类繁多,env_wrapper 需要具备执行任何可能操作的能力。xparl 通过 pickle 实现这一功能(与 ray 类似)。与大多数情况下可能被视为安全漏洞的 pickle 不同,在这里它却是不可或缺的核心特性。
安全性考量
由于可以执行任意代码,用户必须确保集群的安全性:
- 请勿允许不受信任的机器加入集群。
- 请勿将
xparl的端口暴露于公共互联网,也不应允许不受信任的用户访问集群。 - 请勿在集群上执行不受信任的代码。
版本历史
v2.22023/03/10v2.12022/11/24v2.0.02021/06/03v1.42020/12/20v1.32020/04/28v1.22019/10/22v1.1.12019/08/01v1.12019/04/19v1.02019/01/18常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备