[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-PaddlePaddle--PARL":3,"tool-PaddlePaddle--PARL":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",142651,2,"2026-04-06T23:34:12",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":75,"owner_website":76,"owner_url":77,"languages":78,"stars":106,"forks":107,"last_commit_at":108,"license":109,"difficulty_score":10,"env_os":110,"env_gpu":111,"env_ram":110,"env_deps":112,"category_tags":117,"github_topics":118,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":122,"updated_at":123,"faqs":124,"releases":164},4816,"PaddlePaddle\u002FPARL","PARL","A high-performance distributed training framework for Reinforcement Learning ","PARL 是一款由百度开源的高性能分布式强化学习训练框架，旨在帮助开发者和研究人员高效地构建、复现及扩展复杂的强化学习算法。它主要解决了传统强化学习在训练大规模模型时面临的效率瓶颈与并行化难题，支持数千个 CPU 核心和多 GPU 的协同工作，确保实验结果的可复现性。\n\nPARL 特别适合从事人工智能算法研究的研究员、需要部署大规模训练任务的工程师，以及希望快速验证新想法的开发者。其核心亮点在于简洁优雅的抽象设计，将模型、算法和智能体（Agent）清晰解耦，用户只需定义前向网络即可自动构建训练机制。更独特的是，PARL 提供了极简的分布式编程接口：开发者仅需通过一个简单的装饰器（@parl.remote_class），即可将本地代码无缝转换为分布式任务，轻松调用外部计算资源而无需关心底层通信细节。这种“两行代码实现并行”的特性，极大地降低了分布式强化学习的门槛，让大规模训练变得触手可及。","\u003Cp align=\"center\">\n\u003Cimg src=\".github\u002FPARL-logo.png\" alt=\"PARL\" width=\"500\"\u002F>\n\u003C\u002Fp>\n\nEnglish | [简体中文](.\u002FREADME.cn.md)\n\n[![Documentation Status](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-brightgreen.svg?style=flat)](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Findex.html) [![Documentation Status](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F中文文档-最新-brightgreen.svg)](https:\u002F\u002Fparl.readthedocs.io\u002Fzh_CN\u002Flatest\u002F) [![Documentation Status](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F手册-中文-brightgreen.svg)](.\u002Fdocs\u002Fzh_CN\u002FOverview.md) [![Release](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Frelease-v2.2.1-blue.svg)](https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPARL\u002Freleases)\n\n> PARL is a flexible and high-efficient reinforcement learning framework.\n\n\u003C!-- toc -->\n\n- [About PARL](#about-parl)\n  - [Features](#features)\n  - [Abstractions](#abstractions)\n    - [Model](#model)\n    - [Algorithm](#algorithm)\n    - [Agent](#agent)\n  - [Parallelization](#parallelization)\n- [Install:](#install)\n    - [Dependencies](#dependencies)\n- [Getting Started](#getting-started)\n- [Examples](#examples)\n- [Waymax-RL(2025 Update, GPU-RL Autonomous Driving)](#waymax-rl2025-update-gpu-rl-autonomous-driving)\n- [xparl Security](#xparl-security)\n  - [Security Considerations](#security-considerations)\n\n# About PARL\n## Features\n**Reproducible**. We provide algorithms that stably reproduce the result of many influential reinforcement learning algorithms.\n\n**Large Scale**. Ability to support high-performance parallelization of training with thousands of CPUs and multi-GPUs.\n\n**Reusable**.  Algorithms provided in the repository could be directly adapted to a new task by defining a forward network and training mechanism will be built automatically.\n\n**Extensible**. Build new algorithms quickly by inheriting the abstract class in the framework.\n\n\n## Abstractions\n\u003Cimg src=\".github\u002Fabstractions.png\" alt=\"abstractions\" width=\"400\"\u002F>\nPARL aims to build an agent for training algorithms to perform complex tasks.   \nThe main abstractions introduced by PARL that are used to build an agent recursively are the following:\n\n### Model\n`Model` is abstracted to construct the forward network which defines a policy network or critic network given state as input.\n\n### Algorithm\n`Algorithm` describes the mechanism to update parameters in `Model` and often contains at least one model.\n\n### Agent\n`Agent`, a data bridge between the environment and the algorithm, is responsible for data I\u002FO with the outside environment and describes data preprocessing before feeding data into the training process.  \n\nNote: For more information about base classes, please visit our [tutorial](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Ftutorial\u002Fgetting_started.html) and [API documentation](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Fapis\u002Fmodel.html).\n\n## Parallelization\nPARL provides a compact API for distributed training, allowing users to transfer the code into a parallelized version by simply adding a decorator. For more information about our APIs for parallel training, please visit our [documentation](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Fparallel_training\u002Fsetup.html).  \nHere is a `Hello World` example to demonstrate how easy it is to leverage outer computation resources.\n```python\n#============Agent.py=================\n@parl.remote_class\nclass Agent(object):\n\n    def say_hello(self):\n        print(\"Hello World!\")\n\n    def sum(self, a, b):\n        return a+b\n\nparl.connect('localhost:8037')\nagent = Agent()\nagent.say_hello()\nans = agent.sum(1,5) # it runs remotely, without consuming any local computation resources\n```\nTwo steps to use outer computation resources:\n1. use the `parl.remote_class` to decorate a class at first, after which it is transferred to be a new class that can run in other CPUs or machines.\n2. call `parl.connect` to initialize parallel communication before creating an object. Calling any function of the objects **does not** consume local computation resources since they are executed elsewhere.\n\n\u003Cimg src=\".github\u002Fdecorator.png\" alt=\"PARL\" width=\"450\"\u002F>\nAs shown in the above figure, real actors (orange circle) are running at the cpu cluster, while the learner (blue circle) is running at the local gpu with several remote actors (yellow circle with dotted edge).  \n\nFor users, they can write code in a simple way, just like writing multi-thread code, but with actors consuming remote resources. We have also provided examples of parallized algorithms like [IMPALA](benchmark\u002Ffluid\u002FIMPALA\u002F), [A2C](examples\u002FA2C\u002F). For more details in usage please refer to these examples.  \n\n\n# Install:\n### Dependencies\n- Python 3.6+(Python 3.8+ is preferable for distributed training). \n- [paddlepaddle>=2.3.1](https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPaddle) (**Optional**, if you only want to use APIs related to parallelization alone)  \n\n\n```\npip install parl\n```\n\n[Detailed Installation Guide (Continuously Updated)](docs\u002Finstallation_guide.md)\n\n# Getting Started\nSeveral-points to get you started:\n- [Tutorial](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Ftutorial\u002Fgetting_started.html) : How to solve cartpole problem.\n- [Xparl Usage](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Fparallel_training\u002Fsetup.html) : How to set up a cluster with `xparl` and compute in parallel.\n- [Advanced Tutorial](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Fimplementations\u002Fnew_alg.html) : Create customized algorithms.\n- [API documentation](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Fapis\u002Fmodel.html)\n\nFor beginners who know little about reinforcement learning, we also provide an introductory course: ( [Video](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1yv411i7xd) | [Code](examples\u002Ftutorials\u002F) )\n\n# Examples\n- [QuickStart](examples\u002FQuickStart\u002F)\n- [DQN](examples\u002FDQN\u002F)\n- [ES](examples\u002FES\u002F)\n- [DDPG](examples\u002FDDPG\u002F)\n- [A2C](examples\u002FA2C\u002F)\n- [TD3](examples\u002FTD3\u002F)\n- [SAC](examples\u002FSAC\u002F)\n- [QMIX](examples\u002FQMIX\u002F)\n- [MADDPG](examples\u002FMADDPG\u002F)\n- [PPO](examples\u002FPPO\u002F)\n- [CQL](examples\u002FCQL\u002F)\n- [IMPALA](examples\u002FIMPALA)\n- [Winning Solution for NIPS2018: AI for Prosthetics Challenge](examples\u002FNeurIPS2018-AI-for-Prosthetics-Challenge\u002F)\n- [Winning Solution for NIPS2019: Learn to Move Challenge](examples\u002FNeurIPS2019-Learn-to-Move-Challenge\u002F)\n- [Winning Solution for NIPS2020: Learning to Run a Power Network Challenge](examples\u002FNeurIPS2020-Learning-to-Run-a-Power-Network-Challenge\u002F)\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPaddlePaddle_PARL_readme_1750d3d95727.gif\" width = \"280\" height =\"200\" alt=\"NeurlIPS2018\"\u002F> \u003Cimg src=\".github\u002FHalf-Cheetah.gif\" width = \"280\" height =\"200\" alt=\"Half-Cheetah\"\u002F> \u003Cimg src=\".github\u002FBreakout.gif\" width = \"195\" height =\"200\" alt=\"Breakout\"\u002F>\n\u003Cbr>\n\u003Cimg src=\".github\u002FAircraft.gif\"  width = \"762\" height =\"300\"  alt=\"NeurlIPS2018\"\u002F>\n\n# Waymax-RL(2025 Update, GPU-RL Autonomous Driving)\n- End-to-End GPU Reinforcement Learning for Waymax Autonomous Driving Simulation.  \n  Full documentation and instructions: [waymax_rl\u002FREADME.md](.\u002Fwaymax_rl\u002FREADME.md)\n\n# xparl Security\n\n`xparl` provides multi-process parallelism across a multi-machine cluster, similar to Python's built-in single-machine multiprocessing. This means that after writing code on a client, you can execute arbitrary code on any machine within the cluster, such as retrieving data from other machines, adding or deleting files, etc. \n\nThis behavior is by design, as reinforcement learning environments are diverse, and `env_wrapper` needs the ability to perform any possible operation. `xparl` achieves this functionality using `pickle` (similar to `ray`). Unlike in most cases where `pickle` may be considered a vulnerability, here it is an essential feature.\n\n## Security Considerations\n\nSince arbitrary code execution is possible, users must ensure the cluster is secure:\n\n- **Do not allow untrusted machines to join the cluster.**  \n- **Do not expose the `xparl` ports to the public internet or allow untrusted users to access the cluster.**  \n- **Do not execute untrusted code on the cluster.**\n","\u003Cp align=\"center\">\n\u003Cimg src=\".github\u002FPARL-logo.png\" alt=\"PARL\" width=\"500\"\u002F>\n\u003C\u002Fp>\n\n英语 | [简体中文](.\u002FREADME.cn.md)\n\n[![文档状态](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-brightgreen.svg?style=flat)](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Findex.html) [![文档状态](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F中文文档-最新-brightgreen.svg)](https:\u002F\u002Fparl.readthedocs.io\u002Fzh_CN\u002Flatest\u002F) [![文档状态](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F手册-中文-brightgreen.svg)](.\u002Fdocs\u002Fzh_CN\u002FOverview.md) [![发布版本](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Frelease-v2.2.1-blue.svg)](https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPARL\u002Freleases)\n\n> PARL 是一个灵活且高效的强化学习框架。\n\n\u003C!-- toc -->\n\n- [关于 PARL](#about-parl)\n  - [特性](#features)\n  - [抽象概念](#abstractions)\n    - [模型](#model)\n    - [算法](#algorithm)\n    - [智能体](#agent)\n  - [并行化](#parallelization)\n- [安装：](#install)\n    - [依赖项](#dependencies)\n- [快速入门](#getting-started)\n- [示例](#examples)\n- [Waymax-RL（2025年更新，GPU强化学习自动驾驶）](#waymax-rl2025-update-gpu-rl-autonomous-driving)\n- [xparl 安全性](#xparl-security)\n  - [安全注意事项](#security-considerations)\n\n# 关于 PARL\n## 特性\n**可复现性**。我们提供了能够稳定复现许多有影响力的强化学习算法结果的算法。\n\n**大规模**。支持使用数千个 CPU 和多块 GPU 进行高性能并行训练。\n\n**可重用性**。仓库中提供的算法可以通过定义前向网络直接适配到新任务上，训练机制将自动构建。\n\n**可扩展性**。通过继承框架中的抽象类，可以快速构建新算法。\n\n\n## 抽象概念\n\u003Cimg src=\".github\u002Fabstractions.png\" alt=\"abstractions\" width=\"400\"\u002F>\nPARL 的目标是构建用于训练复杂任务的智能体。PARL 引入的主要递归式抽象概念如下：\n\n### 模型\n`Model` 被抽象为构建前向网络，该网络以状态作为输入，定义策略网络或价值网络。\n\n### 算法\n`Algorithm` 描述了更新 `Model` 中参数的机制，通常至少包含一个模型。\n\n### 智能体\n`Agent` 是环境与算法之间的数据桥梁，负责与外部环境进行数据输入输出，并在数据进入训练流程之前对其进行预处理。  \n\n注：有关基类的更多信息，请参阅我们的[教程](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Ftutorial\u002Fgetting_started.html)和[API 文档](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Fapis\u002Fmodel.html)。\n\n## 并行化\nPARL 提供了一个简洁的分布式训练 API，用户只需添加一个装饰器即可将代码转换为并行版本。有关并行训练 API 的更多信息，请参阅我们的[文档](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Fparallel_training\u002Fsetup.html)。  \n以下是一个“Hello World”示例，展示了利用外部计算资源是多么简单。\n```python\n#============Agent.py=================\n@parl.remote_class\nclass Agent(object):\n\n    def say_hello(self):\n        print(\"Hello World!\")\n\n    def sum(self, a, b):\n        return a+b\n\nparl.connect('localhost:8037')\nagent = Agent()\nagent.say_hello()\nans = agent.sum(1,5) # 它在远程运行，不消耗任何本地计算资源\n```\n使用外部计算资源的两个步骤：\n1. 首先使用 `parl.remote_class` 装饰一个类，之后它将被转换为可以在其他 CPU 或机器上运行的新类。\n2. 在创建对象之前调用 `parl.connect` 初始化并行通信。调用这些对象的任何方法都不会消耗本地计算资源，因为它们是在其他地方执行的。\n\n\u003Cimg src=\".github\u002Fdecorator.png\" alt=\"PARL\" width=\"450\"\u002F>\n如图所示，真正的演员（橙色圆圈）正在 CPU 集群上运行，而学习者（蓝色圆圈）则在本地 GPU 上运行，同时有几个远程演员（带有虚线边框的黄色圆圈）。  \n\n对于用户来说，他们可以像编写多线程代码一样简单地编写代码，但这些演员会消耗远程资源。我们还提供了诸如 [IMPALA](benchmark\u002Ffluid\u002FIMPALA\u002F)、[A2C](examples\u002FA2C\u002F) 等并行化算法的示例。更多使用细节请参考这些示例。  \n\n\n# 安装：\n### 依赖项\n- Python 3.6+（Python 3.8+ 更适合分布式训练）。 \n- [paddlepaddle>=2.3.1](https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPaddle) (**可选**, 如果您只想单独使用与并行化相关的 API）  \n\n\n```\npip install parl\n```\n\n[详细安装指南（持续更新）](docs\u002Finstallation_guide.md)\n\n# 快速入门\n以下是帮助您开始的几点：\n- [教程](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Ftutorial\u002Fgetting_started.html)：如何解决 Cartpole 问题。\n- [Xparl 使用方法](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Fparallel_training\u002Fsetup.html)：如何使用 `xparl` 设置集群并进行并行计算。\n- [进阶教程](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Fimplementations\u002Fnew_alg.html)：创建自定义算法。\n- [API 文档](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Fapis\u002Fmodel.html)\n\n对于不太了解强化学习的初学者，我们还提供了一门入门课程：（ [视频](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1yv411i7xd) | [代码](examples\u002Ftutorials\u002F) )\n\n# 示例\n- [快速入门](examples\u002FQuickStart\u002F)\n- [DQN](examples\u002FDQN\u002F)\n- [ES](examples\u002FES\u002F)\n- [DDPG](examples\u002FDDPG\u002F)\n- [A2C](examples\u002FA2C\u002F)\n- [TD3](examples\u002FTD3\u002F)\n- [SAC](examples\u002FSAC\u002F)\n- [QMIX](examples\u002FQMIX\u002F)\n- [MADDPG](examples\u002FMADDPG\u002F)\n- [PPO](examples\u002FPPO\u002F)\n- [CQL](examples\u002FCQL\u002F)\n- [IMPALA](examples\u002FIMPALA)\n- [NIPS2018假肢挑战赛冠军方案](examples\u002FNeurIPS2018-AI-for-Prosthetics-Challenge\u002F)\n- [NIPS2019学会移动挑战赛冠军方案](examples\u002FNeurIPS2019-Learn-to-Move-Challenge\u002F)\n- [NIPS2020学习运行电网挑战赛冠军方案](examples\u002FNeurIPS2020-Learning-to-Run-a-Power-Network-Challenge\u002F)\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPaddlePaddle_PARL_readme_1750d3d95727.gif\" width = \"280\" height =\"200\" alt=\"NeurlIPS2018\"\u002F> \u003Cimg src=\".github\u002FHalf-Cheetah.gif\" width = \"280\" height =\"200\" alt=\"Half-Cheetah\"\u002F> \u003Cimg src=\".github\u002FBreakout.gif\" width = \"195\" height =\"200\" alt=\"Breakout\"\u002F>\n\u003Cbr>\n\u003Cimg src=\".github\u002FAircraft.gif\"  width = \"762\" height =\"300\"  alt=\"NeurlIPS2018\"\u002F>\n\n# Waymax-RL（2025年更新，GPU强化学习自动驾驶）\n- 用于 Waymax 自动驾驶模拟的端到端 GPU 强化学习。  \n  完整文档和说明：[waymax_rl\u002FREADME.md](.\u002Fwaymax_rl\u002FREADME.md)\n\n# xparl 安全性\n\n`xparl` 提供跨多台机器集群的多进程并行计算，类似于 Python 内置的单机多进程模块。这意味着在客户端编写代码后，你可以在集群中的任何一台机器上执行任意代码，例如从其他机器获取数据、添加或删除文件等。\n\n这种行为是设计使然，因为强化学习环境种类繁多，`env_wrapper` 需要具备执行任何可能操作的能力。`xparl` 通过 `pickle` 实现这一功能（与 `ray` 类似）。与大多数情况下可能被视为安全漏洞的 `pickle` 不同，在这里它却是不可或缺的核心特性。\n\n## 安全性考量\n\n由于可以执行任意代码，用户必须确保集群的安全性：\n\n- **请勿允许不受信任的机器加入集群。**  \n- **请勿将 `xparl` 的端口暴露于公共互联网，也不应允许不受信任的用户访问集群。**  \n- **请勿在集群上执行不受信任的代码。**","# PARL 快速上手指南\n\nPARL 是一个灵活且高效的强化学习框架，支持大规模并行训练和多种经典算法的快速复现。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**：Linux \u002F macOS \u002F Windows\n*   **Python 版本**：Python 3.6+（分布式训练推荐使用 Python 3.8+）\n*   **核心依赖**：\n    *   **PaddlePaddle**：版本需 >= 2.3.1。\n        *   *注：如果您仅需使用并行化 API (`xparl`) 而不涉及具体算法模型，此项可选。*\n    *   **国内加速**：建议通过国内镜像源安装 PaddlePaddle 以获得更快的下载速度。\n        ```bash\n        python -m pip install paddlepaddle==2.3.1 -i https:\u002F\u002Fmirror.baidu.com\u002Fpypi\u002Fsimple\n        ```\n        *(具体版本请根据您的 CUDA\u002FcuDNN 环境参考 PaddlePaddle 官网安装指引)*\n\n## 安装步骤\n\n使用 pip 直接安装 PARL：\n\n```bash\npip install parl\n```\n\n如需查看详细安装指南或处理特定依赖问题，可参考官方文档中的 [详细安装指南](docs\u002Finstallation_guide.md)。\n\n## 基本使用\n\n### 1. 快速运行示例 (CartPole)\n\nPARL 提供了丰富的算法示例。以下是解决经典 CartPole 问题的最小化流程概念（具体代码请参考 `examples\u002FQuickStart\u002F` 或官方教程）：\n\n通常包含三个核心抽象类的实现：\n1.  **Model**：定义前向网络（策略网络或价值网络）。\n2.  **Algorithm**：定义参数更新机制。\n3.  **Agent**：作为环境与算法之间的数据桥梁，负责数据预处理。\n\n您可以直接访问 [入门教程](https:\u002F\u002Fparl.readthedocs.io\u002Fzh_CN\u002Flatest\u002Ftutorial\u002Fgetting_started.html) 获取完整的 CartPole 求解代码。\n\n### 2. 分布式并行训练 (Hello World)\n\nPARL 的最大特色之一是极简的分布式编程接口。只需添加装饰器即可将本地代码转换为跨机器并行执行的任务。\n\n以下示例展示了如何利用外部计算资源：\n\n```python\n#============Agent.py=================\nimport parl\n\n@parl.remote_class\nclass Agent(object):\n\n    def say_hello(self):\n        print(\"Hello World!\")\n\n    def sum(self, a, b):\n        return a+b\n\n# 连接集群服务\nparl.connect('localhost:8037')\n\n# 实例化远程类\nagent = Agent()\n\n# 调用方法（将在远程 CPU\u002F机器上执行，不消耗本地资源）\nagent.say_hello()\nans = agent.sum(1,5) \n```\n\n**使用步骤说明：**\n1.  使用 `@parl.remote_class` 装饰类，使其具备远程执行能力。\n2.  调用 `parl.connect()` 初始化并行通信。\n3.  创建对象并调用方法，实际计算将在集群节点上运行。\n\n更多并行算法示例（如 IMPALA, A2C）请查看 `examples\u002F` 目录。\n\n---\n*更多高级用法、自定义算法开发及 API 详情，请访问 [PARL 中文文档](https:\u002F\u002Fparl.readthedocs.io\u002Fzh_CN\u002Flatest\u002F)。*","某自动驾驶研发团队正利用强化学习训练车辆在复杂城市路况下的决策模型，需处理海量仿真数据并加速收敛。\n\n### 没有 PARL 时\n- **资源利用率低**：单卡或单机训练无法承载千万级仿真步数，大量 CPU 集群闲置，只能串行跑实验，迭代周期长达数周。\n- **代码耦合严重**：每次切换算法（如从 DQN 换到 PPO）需重写底层数据交互逻辑，模型、算法与环境代码纠缠，维护成本极高。\n- **复现困难**：缺乏标准化的算法实现，不同成员编写的训练脚本差异大，导致论文结果难以在内部稳定复现。\n- **扩展门槛高**：想引入分布式训练需手动编写复杂的通信与同步代码，开发耗时且容易出错，阻碍了大规模并行验证。\n\n### 使用 PARL 后\n- **千核并行加速**：仅需添加 `@parl.remote_class` 装饰器，即可将 Agent 分发至数千个 CPU 节点并行采集数据，训练速度提升数十倍，实验周期缩短至天级。\n- **模块化解耦**：依托 Model、Algorithm、Agent 三层抽象，团队只需定义新网络结构，自动复用标准训练机制，算法切换如同搭积木般灵活。\n- **结果稳定可复现**：直接调用框架内置的经典算法实现，确保基准测试与前沿论文结果一致，消除了因代码差异导致的性能波动。\n- **极简分布式开发**：通过简单的 API 连接远程资源，无需关注底层通信细节，轻松实现多 GPU 与多机协同，大幅降低大规模训练的工程难度。\n\nPARL 通过高度抽象的架构与一键式分布式能力，让团队从繁琐的工程泥潭中解脱，专注于核心策略的创新与验证。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPaddlePaddle_PARL_670a89cd.png","PaddlePaddle","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FPaddlePaddle_0457ef24.jpg","",null,"http:\u002F\u002Fpaddlepaddle.org","https:\u002F\u002Fgithub.com\u002FPaddlePaddle",[79,83,87,91,95,99,102],{"name":80,"color":81,"percentage":82},"Python","#3572A5",91.4,{"name":84,"color":85,"percentage":86},"C++","#f34b7d",4.5,{"name":88,"color":89,"percentage":90},"JavaScript","#f1e05a",1.7,{"name":92,"color":93,"percentage":94},"Shell","#89e051",1.1,{"name":96,"color":97,"percentage":98},"HTML","#e34c26",0.6,{"name":100,"color":101,"percentage":98},"CMake","#DA3434",{"name":103,"color":104,"percentage":105},"Dockerfile","#384d54",0.1,3458,817,"2026-04-03T12:40:56","Apache-2.0","未说明","非必需（仅分布式训练或特定算法推荐多 GPU），具体型号和显存未说明",{"notes":113,"python":114,"dependencies":115},"PaddlePaddle 为可选依赖，若仅需使用并行化相关 API 可不安装。框架支持通过装饰器轻松实现大规模 CPU 集群和多 GPU 并行训练。出于安全考虑，xparl 分布式功能禁止不可信机器加入集群或暴露端口至公网。","3.6+ (分布式训练推荐 3.8+)",[116],"paddlepaddle>=2.3.1",[14],[119,120,121],"reinforcement-learning","large-scale","parallelization","2026-03-27T02:49:30.150509","2026-04-07T11:48:28.147562",[125,130,135,140,145,150,155,160],{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},21881,"导入 PARL 时出现 'ImportError: cannot import name layers' 错误怎么办？","这通常是因为使用的示例代码过旧，而新版 PARL 已移除或更改了相关 API（如 `parl.layers`）。解决方案是下载最新的 PARL 源码，通过 `pip install .` 进行本地安装以适配最新接口。此外，如果涉及 Gym 环境，请检查 Gym 版本，新版本 Gym 的 `reset\u002Fstep` 返回值格式可能发生变化，需同步更新代码逻辑。","https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPARL\u002Fissues\u002F990",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},21882,"运行 PARL 示例代码时没有看到可视化界面或动图，如何开启渲染？","默认情况下 PARL 运行时不显示可视化界面。若需查看训练过程的动画或图形界面，必须在代码中显式调用环境的渲染函数，即执行 `env.render()`。","https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPARL\u002Fissues\u002F756",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},21883,"在 PyCharm 中运行 PARL 并行计算例程报错或无法启动怎么办？","这可能是由于 PyCharm 特定的分隔符或运行配置导致的兼容性问题。建议直接在系统终端（Terminal）中执行并行启动命令（如 `xparl start`），而不是在 Python 代码中使用 `os.system` 调用或在 IDE 内部直接运行，以避免进程管理冲突。","https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPARL\u002Fissues\u002F350",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},21884,"如何在代码中正确执行 PARL 的集群启动和停止操作？","PARL 的集群启动（`xparl start`）应在终端中独立执行，不应在 Python 脚本中通过 `os.system` 调用。特别是在脚本末尾执行 `xparl stop` 会直接杀掉所有并行进程，导致不可预期的错误（如 Fork support 报错）。正确的做法是：在终端手动启动集群，运行训练脚本，训练结束后在终端手动停止集群。","https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPARL\u002Fissues\u002F842",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},21885,"离散动作空间（Discrete）的 predict() 输出是小数而非整数索引，如何处理？","这是正常现象。模型输出的是动作空间中每个动作的概率分布（小数）。对于离散动作空间，你需要选取概率最大的那个动作对应的索引作为最终动作。例如，如果输出是三个小数，可以使用 `np.argmax()` 获取最大值的索引（0, 1, 或 2）作为实际执行的动作。","https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPARL\u002Fissues\u002F843",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},21886,"安装 PARL 时遇到 psutil 包编译失败（Building wheel for psutil error）如何解决？","该错误通常发生在缺少系统编译依赖的环境中。请确保已安装构建工具：在 Linux 上安装 `python3-dev` 和 `gcc`；在 Windows 上安装 Visual C++ Build Tools。另外，尝试升级 pip 和 setuptools (`pip install --upgrade pip setuptools`) 有时也能解决兼容性问题。","https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPARL\u002Fissues\u002F194",{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},21887,"将 Atari 模型中的 CNN 替换为 LSTM 时遇到底层接口错误怎么办？","这通常涉及 PaddlePaddle 底层对 LOD Tensor 的处理。在较旧的 Paddle 版本（如 1.5+）中，LSTM 相关 API 可能位于 `contrib` 目录下且使用复杂。建议参考 PaddleNLP 官方模型库中的 LSTM 实现方式，或者等待\u002F升级到支持动态图的 PaddlePaddle 版本，以简化序列数据处理流程。","https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPARL\u002Fissues\u002F91",{"id":161,"question_zh":162,"answer_zh":163,"source_url":134},21888,"运行旧版教程代码时出现 AssertionError 或数据类型警告怎么办？","这通常是由于依赖库（如 Gym 或 Numpy）版本更新导致的数据类型或返回值格式不匹配。维护者通常会在后续版本中增加版本限制修复此问题。临时解决方案是检查并降级相关依赖库到教程推荐的版本，或者拉取最新的 PARL 代码，因为新版本通常已包含对这些兼容性问题的修复。",[165,170,175,180,185,190,195,200,205],{"id":166,"version":167,"summary_zh":168,"released_at":169},127867,"v2.2","## 新特性\n- 支持使用 GPU 集群进行 XPARL 并行训练。更多详情，请参阅最新的[文档](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Fparallel_training\u002Fgpu_cluster.html)。","2023-03-10T09:21:02",{"id":171,"version":172,"summary_zh":173,"released_at":174},127868,"v2.1","## 框架\n* 添加 agent.train()\u002Feval()\n* 修复 DDQN 的一些 bug\n* 添加 ComptWrapper（兼容不同版本的 gym 和最新版本的 mujoco）\n并行训练\n* 在 notebook 中支持 xparl\n* 添加 XPARL_PYTHON 环境变量\n\n## 示例\n* 添加 Paddle 示例\n  * PPO\n  * MADDPG\n  * ES\n  * CQL\n  * IMPALA\n  * 基线\n    * 格网调度竞赛\n    * Halite 竞赛\n* 在 benchmark 中添加 PPO、MADDPG、ES、CQL、IQL、决策 Transformer、MAPPO、MAML++ 示例\n\n## 教程\n* 为 bilibili 课程添加使用 dygraph + parl2.0 + paddle2.0 版本的教程代码\n* 在教程中添加依赖库版本约束","2022-11-24T10:11:41",{"id":176,"version":177,"summary_zh":178,"released_at":179},127869,"v2.0.0","## 框架\n  - 默认支持 PaddlePaddle 2.0（动态图模式）\n  - 增加 Windows 平台的集成测试\n\n## 并行训练\n  - 重构 xparl 模块的心跳机制\n  - 对部分分布式算法使用同步的 xparl API\n\n## 文档\n  - 在 Read the Docs 上添加中文文档\n\n## 示例\n   - Paddle\n     - 策略梯度\n     - DDPG\n     - DQN\u002F双DQN\u002F Dueling DQN\n     - SAC\n     - TD3\n     - OAC\n     - QMIX\n     - A2C\n     - AlphaZero\n  - Fluid\n    - QMIX\n## 应用\n  - CARLA 模拟器中的自动驾驶系统\n","2021-06-03T09:31:59",{"id":181,"version":182,"summary_zh":183,"released_at":184},127870,"v1.4","## 框架\n- 支持飞桨最新动态图模式的 API\n- 支持 VisuaIDL 可视化工具\n- 优化跨不同操作系统的兼容性\n\n## 并行训练\n- 增加任务输出日志的监控页面\n- 支持直接访问和修改远程对象的属性\n- 支持远程对象中的异步函数调用\n\n## 示例\n- 新增优先级 DQN 算法\n- 新增用于 Kaggle Connect X 竞赛的 AlphaZero 解决方案\n- 新增 NeurIPS 2020 学习运行电力网络挑战赛两个赛道的冠军模型\n- 新增公开课“世界冠军带你从零入门强化学习”的演示代码","2020-12-20T00:50:44",{"id":186,"version":187,"summary_zh":188,"released_at":189},127871,"v1.3","## 新特性\n- 新增首个开源的工业级进化策略框架 EvoKit\n- 支持多智能体强化学习算法，包括 MADDPG\n- 支持多 GPU 训练，并提供 DQN 的多 GPU 示例\n- 新增连续控制问题中的 SOTA 算法 TD3 和 SAC\n- 新增 NeurIPS 2019 强化学习竞赛的冠军模型及训练方法\n- 兼容 Windows 操作系统","2020-04-28T07:20:03",{"id":191,"version":192,"summary_zh":193,"released_at":194},127872,"v1.2","# 并行训练\n1. 使用集群来维护并行训练所需的计算资源。\n2. 提供用于监控集群的Web界面。\n3. 支持限制每个远程进程的内存使用量。\n4. 提供集群使用教程。\n\n# 示例\n1. 添加进化策略（ES）算法，使用PARL的并行模块。\n2. 补充A2C在一系列Atari游戏上的性能表现。\n3. 补充IMPALA在一系列Atari游戏上的性能表现。\n\n# 教程\n1. 在Read the Docs上部署官方[文档](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002F)。\n2. 添加一个[教程](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Fnew_alg.html)，介绍如何构建自定义算法。\n3. 添加一个[教程](https:\u002F\u002Fparl.readthedocs.io\u002Fen\u002Flatest\u002Fparallel_training\u002Fsetup.html)，介绍如何使用集群进行并行计算。","2019-10-22T05:12:56",{"id":196,"version":197,"summary_zh":198,"released_at":199},127873,"v1.1.1","## 框架\n- 支持 TensorBoard 工具。\n- 在 `parl.Agent` 中添加 `save` 和 `restore` API。\n- 在远程模块中添加异常回溯信息。\n- 将基础类（例如 `parl.Model`）与计算框架解耦。\n\n## 示例\n- 优化 A2C 示例的基准性能。\n- 简化快速入门示例。\n\n## 论文\n- 收集一些与基于模型的强化学习主题相关的论文。","2019-08-01T11:17:57",{"id":201,"version":202,"summary_zh":203,"released_at":204},127874,"v1.1","## 文档\r\n- 在首页添加中文版 README 文件。\r\n\r\n## 框架\r\n- 支持分布式训练。新增并行化模块 `parl.remote`。\r\n- 提供将参数以 NumPy 数组格式保存和加载的函数式 API。新增 `get_params` 和 `set_params` 方法，支持从 `parl.Model`、`parl.Algorithm` 和 `parl.Agent` 中获取参数。\r\n\r\n- 在 `parl.algorithms` 中新增 IMPALA 和 A3C 算法。\r\n\r\n## 示例\r\n- IMPALA\r\n- A2C\r\n- GA3C","2019-04-19T05:22:50",{"id":206,"version":207,"summary_zh":208,"released_at":209},127875,"v1.0","## 框架\n- 支持 `Model`、`Algorithm` 和 `Agent` 抽象。\n- 支持对 fluid.layers 的封装，可方便地在各层之间共享参数。\n- 在 `Model` 中支持 `sync_params_to` 接口，用于直接同步当前模型与目标模型之间的参数。\n\n## 示例\n- 快速入门\n- DQN\n- DDPG\n- PPO\n- NeurIPS 2018 人工智能辅助假肢挑战赛冠军方案","2019-01-18T06:33:57"]