[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-LucasAlegre--morl-baselines":3,"tool-LucasAlegre--morl-baselines":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 真正成长为懂上",159636,2,"2026-04-17T23:33:34",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[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},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"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":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":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":87,"forks":86,"last_commit_at":88,"license":89,"difficulty_score":32,"env_os":90,"env_gpu":91,"env_ram":91,"env_deps":92,"category_tags":98,"github_topics":99,"view_count":32,"oss_zip_url":109,"oss_zip_packed_at":109,"status":17,"created_at":110,"updated_at":111,"faqs":112,"releases":141},8768,"LucasAlegre\u002Fmorl-baselines","morl-baselines","Multi-Objective Reinforcement Learning algorithms implementations.","morl-baselines 是一个专注于多目标强化学习（MORL）的开源算法库，基于 PyTorch 构建。在现实世界的决策任务中，智能体往往需要同时优化多个相互冲突的目标（例如机器人既要跑得快又要省电），而传统强化学习通常只处理单一奖励信号。morl-baselines 正是为了解决这一难题而生，它提供了一系列可靠且经过严格测试的算法实现，帮助开发者在复杂环境中寻找最佳的多目标平衡策略。\n\n该工具主要面向强化学习研究人员、AI 工程师及相关领域的学生。它严格遵循 MO-Gymnasium 接口标准，使得环境交互与标准 Gymnasium 几乎无异，仅将奖励输出扩展为向量形式，极大地降低了上手门槛。morl-baselines 的独特亮点在于其全面性：不仅涵盖了单策略和多策略算法，还支持期望效用返回（ESR）和随机期望返回（SER）两种评估准则。此外，项目集成了 Weights & Biases 自动记录实验性能，提供了帕累托剪枝等实用工具函数，并支持超参数优化，确保实验结果的高度可复现性。无论是想要验证新想法的研究者，还是寻求稳定基线模型的开发者，都能从中获得高效、规范的技术支持。","[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https:\u002F\u002Fwww.repostatus.org\u002Fbadges\u002Flatest\u002Factive.svg)](https:\u002F\u002Fwww.repostatus.org\u002F#active)\n![tests](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fworkflows\u002FPython%20tests\u002Fbadge.svg)\n[![License](http:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-brightgreen.svg?style=flat)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002FLICENSE)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F999693014618362036?label=discord)](https:\u002F\u002Fdiscord.gg\u002FygmkfnBvKA)\n[![pre-commit](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https:\u002F\u002Fpre-commit.com\u002F)\n[![Code style: black](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode%20style-black-000000.svg)](https:\u002F\u002Fgithub.com\u002Fpsf\u002Fblack)\n[![Imports: isort](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https:\u002F\u002Fpycqa.github.io\u002Fisort\u002F)\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLucasAlegre_morl-baselines_readme_0ab32d3603c0.gif\" alt=\"Multiple policies\" align=\"right\" width=\"50%\"\u002F>\n\n# MORL-Baselines\n\n\u003C!-- start elevator-pitch -->\n\nMORL-Baselines is a library of Multi-Objective Reinforcement Learning (MORL) algorithms.\nThis repository aims to contain reliable MORL algorithms implementations in PyTorch.\n\nIt strictly follows [MO-Gymnasium](https:\u002F\u002Fgithub.com\u002FFarama-Foundation\u002Fmo-gymnasium) API, which differs from the standard [Gymnasium](https:\u002F\u002Fgithub.com\u002FFarama-Foundation\u002FGymnasium) API only in that the environment returns a numpy array as the reward.\n\nFor details on multi-objective MDPs (MOMDPs) and other MORL definitions, we suggest reading [A practical guide to multi-objective reinforcement learning and planning](https:\u002F\u002Flink.springer.com\u002Farticle\u002F10.1007\u002Fs10458-022-09552-y). An overview of some techniques used in various MORL algorithms is also provided in [Multi-Objective Reinforcement Learning Based on Decomposition: A Taxonomy and Framework](https:\u002F\u002Fdoi.org\u002F10.1613\u002Fjair.1.15702).\n\nA tutorial on MO-Gymnasium and MORL-Baselines is also available: [![Open in Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1ByjuUp8-CJeh1giPOACqPGiglPxDnlSq?usp=sharing)\n\n\u003C!-- end elevator-pitch -->\n\n## Features\n\n\u003C!-- start features -->\n\n* Single and multi-policy algorithms under both SER and ESR criteria are implemented.\n* All algorithms follow the [MO-Gymnasium](https:\u002F\u002Fwww.github.com\u002FFarama-Foundation\u002Fmo-gymnasium) API.\n* Performances are automatically reported in [Weights and Biases](https:\u002F\u002Fwandb.ai\u002F) dashboards.\n* Linting and formatting are enforced by pre-commit hooks.\n* Code is well documented.\n* All algorithms are automatically tested.\n* Utility functions are provided e.g. pareto pruning, experience buffers, etc.\n* Performances have been tested and reported in a reproducible manner.\n* Hyperparameter optimization available.\n\n\u003C!-- end features -->\n\n\n## Implemented Algorithms\n\n\u003C!-- start algos-list -->\n\n| **Name**                                                                                                                                                                      | Single\u002FMulti-policy | ESR\u002FSER                     | Observation space     | Action space          | Paper                                                                                                                                                    |\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|-----------------------------|-----------------------|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [GPI-LS + GPI-PD](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fgpi_pd\u002Fgpi_pd.py)                                                       | Multi               | SER                         | Continuous            | Discrete \u002F Continuous | [Paper and Supplementary Materials](https:\u002F\u002Farxiv.org\u002Fabs\u002F2301.07784)                                                                                    |\n| [GPI-LS (Jax)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fgpi_pd\u002Fgpi_ls_jax.py)                                                      | Multi               | SER                         | Continuous            | Discrete \u002F Continuous | [Paper and Supplementary Materials](https:\u002F\u002Flink.springer.com\u002Farticle\u002F10.1007\u002Fs10458-026-09736-whttps:\u002F\u002Flink.springer.com\u002Farticle\u002F10.1007\u002Fs10458-026-09736-w)                                                                                    |\n| [MORL\u002FD](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fmorld\u002Fmorld.py)                                                                  | Multi               | SER \u002F ESR                   | Discrete \u002F Continuous | Discrete \u002F Continuous                     | [Paper](https:\u002F\u002Fdoi.org\u002F10.1613\u002Fjair.1.15702)                                                                                                            |\n| [Envelope Q-Learning](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fenvelope\u002Fenvelope.py)                                               | Multi               | SER                         | Continuous            | Discrete              | [Paper](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1908.08342.pdf)                                                                                                            |\n| [CAPQL](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fcapql\u002Fcapql.py)                                                                   | Multi               | SER                         | Continuous            | Continuous            | [Paper](https:\u002F\u002Fopenreview.net\u002Fpdf?id=TjEzIsyEsQ6)                                                                                                       |\n| [PGMORL](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fpgmorl\u002Fpgmorl.py)                                                                | Multi               | SER                         | Continuous            | Continuous            | [Paper](https:\u002F\u002Fpeople.csail.mit.edu\u002Fjiex\u002Fpapers\u002FPGMORL\u002Fpaper.pdf) \u002F [Supplementary Materials](https:\u002F\u002Fpeople.csail.mit.edu\u002Fjiex\u002Fpapers\u002FPGMORL\u002Fsupp.pdf) |\n| [Pareto Conditioned Networks (PCN)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fpcn\u002Fpcn.py)                                           | Multi               | SER\u002FESR \u003Csup>[1](#f1)\u003C\u002Fsup> | Continuous            | Discrete \u002F Continuous | [Paper](https:\u002F\u002Fwww.ifaamas.org\u002FProceedings\u002Faamas2022\u002Fpdfs\u002Fp1110.pdf)                                                                                    |\n| [Pareto Q-Learning](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fpareto_q_learning\u002Fpql.py)                                             | Multi               | SER                         | Discrete              | Discrete              | [Paper](https:\u002F\u002Fjmlr.org\u002Fpapers\u002Fvolume15\u002Fvanmoffaert14a\u002Fvanmoffaert14a.pdf)                                                                              |\n| [MO Q learning](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fsingle_policy\u002Fser\u002Fmo_q_learning.py)                                                    | Single              | SER                         | Discrete              | Discrete              | [Paper](https:\u002F\u002Fwww.researchgate.net\u002Fpublication\u002F235698665_Scalarized_Multi-Objective_Reinforcement_Learning_Novel_Design_Techniques)                    |\n| [MPMOQLearning](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fmulti_policy_moqlearning\u002Fmp_mo_q_learning.py)  (outer loop MOQL)          | Multi               | SER                         | Discrete              | Discrete              | [Paper](https:\u002F\u002Fwww.researchgate.net\u002Fpublication\u002F235698665_Scalarized_Multi-Objective_Reinforcement_Learning_Novel_Design_Techniques)                    |\n| [Optimistic Linear Support (OLS)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fols\u002Fols.py)                                             | Multi               | SER                         | \u002F                     | \u002F                     | Section 3.3 of the [thesis](http:\u002F\u002Froijers.info\u002Fpub\u002Fthesis.pdf)                                                                                          |\n| [Expected Utility Policy Gradient (EUPG)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fsingle_policy\u002Fesr\u002Feupg.py)                                   | Single              | ESR                         | Discrete              | Discrete              | [Paper](https:\u002F\u002Fwww.researchgate.net\u002Fpublication\u002F328718263_Multi-objective_Reinforcement_Learning_for_the_Expected_Utility_of_the_Return)                |\n| [Iterated Pareto Referent Optimisation (IPRO)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fipro\u002Fipro.py)                              | Multi               | SER                         | Continuous            | Discrete              | [Paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.07182)                                                                                                                |\n| [Iterated Pareto Referent Optimisation-2D (IPRO-2D)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fipro\u002Fipro_2d.py) \u003Csup>[2](#f2)\u003C\u002Fsup> | Multi               | SER                         | Continuous            | Discrete              | [Paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.07182)                                                                                                                |\n| [Non-Linear Multi-Objective PPO (NLMOPPO)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fsingle_policy\u002Fser\u002Fnl_mo_ppo.py)                             | Single              | SER                         | Continuous            | Discrete              | Derivation of the policy-gradient update in this [paper](https:\u002F\u002Fcris.vub.be\u002Fws\u002Fportalfiles\u002Fportal\u002F106449930\u002F96440748.pdf)                               |\n:warning: Some of the algorithms have limited features.\n\n\u003Cb id=\"f1\">1\u003C\u002Fb>: PCN assumes environments with deterministic transitions. \u003Cbr>\n\u003Cb id=\"f2\">2\u003C\u002Fb>: IPRO-2D is a two-objective specialisation of IPRO designed for efficiency gains, but it cannot be applied to settings with more than two objectives.\n\n\u003C!-- end algos-list -->\n\n## Benchmarking\n\n\u003C!-- start benchmark -->\nMORL-Baselines participates to [Open RL Benchmark](https:\u002F\u002Fgithub.com\u002Fopenrlbenchmark\u002Fopenrlbenchmark) which contains tracked experiments from popular RL libraries such as [cleanRL](https:\u002F\u002Fgithub.com\u002Fvwxyzjn\u002Fcleanrl) and [Stable Baselines 3](https:\u002F\u002Fgithub.com\u002FDLR-RM\u002Fstable-baselines3).\n\n\nWe have run experiments of our algorithms on various environments from [MO-Gymnasium](https:\u002F\u002Fwww.github.com\u002FFarama-Foundation\u002Fmo-gymnasium). The results can be found here: https:\u002F\u002Fwandb.ai\u002Fopenrlbenchmark\u002FMORL-Baselines. An issue tracking all the settings is available at [#43](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fissues\u002F43). Some design documentation for the experimentation protocol are also available on our [Documentation website](https:\u002F\u002Flucasalegre.github.io\u002Fmorl-baselines\u002Falgos\u002Fperformances\u002F).\n\u003C!-- end benchmark -->\n\nAn example visualization of our dashboards with Pareto support is shown below:\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLucasAlegre_morl-baselines_readme_e440e8e8fbf2.png\" alt=\"WandB dashboards\"\u002F>\n\n## Structure\n\n\u003C!-- start structure -->\nAs much as possible, this repo tries to follow the single-file implementation rule for all algorithms. The repo's structure is as follows:\n\n* `examples\u002F` contains a set of examples to use MORL Baselines with [MO-Gymnasium](https:\u002F\u002Fwww.github.com\u002FFarama-Foundation\u002Fmo-gymnasium) environments.\n* `common\u002F` contains the implementation recurring concepts: replay buffers, neural nets, etc. See the [documentation](https:\u002F\u002Flucasalegre.github.io\u002Fmorl-baselines\u002F) for more details.\n* `multi_policy\u002F` contains the implementations of multi-policy algorithms.\n* `single_policy\u002F` contains the implementations of single-policy algorithms (ESR and SER).\n\n\u003C!-- end structure -->\n\n\n## Citing the Project\n\n\u003C!-- start citing -->\nIf you use MORL-Baselines in your research, please cite our [NeurIPS 2023 paper](https:\u002F\u002Fopenreview.net\u002Fpdf?id=jfwRLudQyj):\n\n```bibtex\n@inproceedings{felten_toolkit_2023,\n\tauthor = {Felten, Florian and Alegre, Lucas N. and Now{\\'e}, Ann and Bazzan, Ana L. C. and Talbi, El Ghazali and Danoy, Gr{\\'e}goire and Silva, Bruno Castro da},\n\ttitle = {A Toolkit for Reliable Benchmarking and Research in Multi-Objective Reinforcement Learning},\n\tbooktitle = {Proceedings of the 37th Conference on Neural Information Processing Systems ({NeurIPS} 2023)},\n\tyear = {2023}\n}\n```\n\n\u003C!-- end citing -->\n\n## Maintainers\n\n\u003C!-- start maintainers -->\nMORL-Baselines is currently maintained by [Florian Felten](https:\u002F\u002Fffelten.github.io\u002F) (@ffelten) and [Lucas N. Alegre](https:\u002F\u002Fwww.inf.ufrgs.br\u002F~lnalegre\u002F) (@LucasAlegre).\n\u003C!-- end maintainers -->\n\n## Contributing\n\n\u003C!-- start contributing -->\nThis repository is open to contributions and we are always happy to receive new algorithms, bug fixes, or features. If you want to contribute, you can join our [Discord server](https:\u002F\u002Fdiscord.gg\u002FygmkfnBvKA) and discuss your ideas with us. You can also open an issue or a pull request directly.\n\n\u003C!-- end contributing -->\n\n## Acknowledgements\n\u003C!-- start acknowledgements -->\n* [Willem Röpke](https:\u002F\u002Fwilrop.github.io\u002F) (@wilrop), for his original implementation of IPRO(-2D) and\n  reimplementation of non-linear MO-PPO and Pareto Q-Learning.\n* Mathieu Reymond, for providing us with the original implementation of PCN.\n* Denis Steckelmacher and Conor F. Hayes, for providing us with the original implementation of EUPG.\n* Jayden Teoh, for providing several improvements in different algorithms and the implementation of MOSAC discrete.\n\u003C!-- end acknowledgements -->\n","[![项目状态：活跃 – 该项目已达到稳定、可用的状态，并正在积极开发中。](https:\u002F\u002Fwww.repostatus.org\u002Fbadges\u002Flatest\u002Factive.svg)](https:\u002F\u002Fwww.repostatus.org\u002F#active)\n![tests](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fworkflows\u002FPython%20tests\u002Fbadge.svg)\n[![许可证](http:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-brightgreen.svg?style=flat)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002FLICENSE)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F999693014618362036?label=discord)](https:\u002F\u002Fdiscord.gg\u002FygmkfnBvKA)\n[![pre-commit](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https:\u002F\u002Fpre-commit.com\u002F)\n[![代码风格：black](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode%20style-black-000000.svg)](https:\u002F\u002Fgithub.com\u002Fpsf\u002Fblack)\n[![导入排序：isort](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https:\u002F\u002Fpycqa.github.io\u002Fisort\u002F)\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLucasAlegre_morl-baselines_readme_0ab32d3603c0.gif\" alt=\"多策略\" align=\"right\" width=\"50%\"\u002F>\n\n# MORL-Baselines\n\n\u003C!-- start elevator-pitch -->\n\nMORL-Baselines 是一个用于多目标强化学习（MORL）的算法库。本仓库旨在提供可靠的 PyTorch 实现的 MORL 算法。\n\n它严格遵循 [MO-Gymnasium](https:\u002F\u002Fgithub.com\u002FFarama-Foundation\u002Fmo-gymnasium) 的 API，该 API 与标准的 [Gymnasium](https:\u002F\u002Fgithub.com\u002FFarama-Foundation\u002FGymnasium) API 的唯一区别在于，环境会返回一个 NumPy 数组作为奖励。\n\n有关多目标马尔可夫决策过程（MOMDP）及其他 MORL 定义的详细信息，建议阅读 [多目标强化学习与规划实用指南](https:\u002F\u002Flink.springer.com\u002Farticle\u002F10.1007\u002Fs10458-022-09552-y)。此外，关于各种 MORL 算法中使用的一些技术的概述也可在 [基于分解的多目标强化学习：分类与框架](https:\u002F\u002Fdoi.org\u002F10.1613\u002Fjair.1.15702) 中找到。\n\n同时，还提供了一个关于 MO-Gymnasium 和 MORL-Baselines 的教程：[![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1ByjuUp8-CJeh1giPOACqPGiglPxDnlSq?usp=sharing)\n\n\u003C!-- end elevator-pitch -->\n\n## 特性\n\n\u003C!-- start features -->\n\n* 实现了单策略和多策略算法，分别适用于 SER 和 ESR 准则。\n* 所有算法均遵循 [MO-Gymnasium](https:\u002F\u002Fwww.github.com\u002FFarama-Foundation\u002Fmo-gymnasium) 的 API。\n* 性能数据会自动记录到 [Weights and Biases](https:\u002F\u002Fwandb.ai\u002F) 的仪表板中。\n* 通过 pre-commit 钩子强制执行代码检查和格式化。\n* 代码文档齐全。\n* 所有算法都经过自动化测试。\n* 提供了一些实用工具函数，例如帕累托剪枝、经验回放缓冲区等。\n* 性能测试以可复现的方式进行并记录。\n* 支持超参数优化。\n\n\u003C!-- end features -->\n\n\n## 已实现的算法\n\n\u003C!-- start algos-list -->\n\n| **名称**                                                                                                                                                                      | 单策略\u002F多策略 | ESR\u002FSER                     | 观测空间     | 动作空间          | 论文                                                                                                                                                    |\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|-----------------------------|-----------------------|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [GPI-LS + GPI-PD](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fgpi_pd\u002Fgpi_pd.py)                                                       | 多策略               | SER                         | 连续                  | 离散 \u002F 连续         | [论文及补充材料](https:\u002F\u002Farxiv.org\u002Fabs\u002F2301.07784)                                                                                    |\n| [GPI-LS (Jax)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fgpi_pd\u002Fgpi_ls_jax.py)                                                      | 多策略               | SER                         | 连续                  | 离散 \u002F 连续         | [论文及补充材料](https:\u002F\u002Flink.springer.com\u002Farticle\u002F10.1007\u002Fs10458-026-09736-whttps:\u002F\u002Flink.springer.com\u002Farticle\u002F10.1007\u002Fs10458-026-09736-w)                                                                                    |\n| [MORL\u002FD](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fmorld\u002Fmorld.py)                                                                  | 多策略               | SER \u002F ESR                   | 离散 \u002F 连续           | 离散 \u002F 连续                     | [论文](https:\u002F\u002Fdoi.org\u002F10.1613\u002Fjair.1.15702)                                                                                                            |\n| [Envelope Q-Learning](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fenvelope\u002Fenvelope.py)                                               | 多策略               | SER                         | 连续                  | 离散                | [论文](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1908.08342.pdf)                                                                                                            |\n| [CAPQL](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fcapql\u002Fcapql.py)                                                                   | 多策略               | SER                         | 连续                  | 连续                | [论文](https:\u002F\u002Fopenreview.net\u002Fpdf?id=TjEzIsyEsQ6)                                                                                                       |\n| [PGMORL](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fpgmorl\u002Fpgmorl.py)                                                                | 多策略               | SER                         | 连续                  | 连续                | [论文](https:\u002F\u002Fpeople.csail.mit.edu\u002Fjiex\u002Fpapers\u002FPGMORL\u002Fpaper.pdf) \u002F [补充材料](https:\u002F\u002Fpeople.csail.mit.edu\u002Fjiex\u002Fpapers\u002FPGMORL\u002Fsupp.pdf) |\n| [Pareto 条件网络 (PCN)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fpcn\u002Fpcn.py)                                           | 多策略               | SER\u002FESR \u003Csup>[1](#f1)\u003C\u002Fsup> | 连续                  | 离散 \u002F 连续         | [论文](https:\u002F\u002Fwww.ifaamas.org\u002FProceedings\u002Faamas2022\u002Fpdfs\u002Fp1110.pdf)                                                                                    |\n| [Pareto Q-Learning](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fpareto_q_learning\u002Fpql.py)                                             | 多策略               | SER                         | 离散                  | 离散                | [论文](https:\u002F\u002Fjmlr.org\u002Fpapers\u002Fvolume15\u002Fvanmoffaert14a\u002Fvanmoffaert14a.pdf)                                                                              |\n| [MO Q 学习](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fsingle_policy\u002Fser\u002Fmo_q_learning.py)                                                    | 单策略              | SER                         | 离散                  | 离散                | [论文](https:\u002F\u002Fwww.researchgate.net\u002Fpublication\u002F235698665_Scalarized_Multi-Objective_Reinforcement_Learning_Novel_Design_Techniques)                    |\n| [MPMOQLearning](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fmulti_policy_moqlearning\u002Fmp_mo_q_learning.py)  (外层 MOQL)          | 多策略               | SER                         | 离散                  | 离散                | [论文](https:\u002F\u002Fwww.researchgate.net\u002Fpublication\u002F235698665_Scalarized_Multi-Objective_Reinforcement_Learning_Novel_Design_Techniques)                    |\n| [乐观线性支持 (OLS)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fols\u002Fols.py)                                             | 多策略               | SER                         | \u002F                     | \u002F                     | [论文](http:\u002F\u002Froijers.info\u002Fpub\u002Fthesis.pdf) 中的第 3.3 节                                                                                          |\n| [期望效用策略梯度 (EUPG)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fsingle_policy\u002Fesr\u002Feupg.py)                                   | 单策略              | ESR                         | 离散                  | 离散                | [论文](https:\u002F\u002Fwww.researchgate.net\u002Fpublication\u002F328718263_Multi-objective_Reinforcement_Learning_for_the_Expected_Utility_of_the_Return)                |\n| [迭代 Pareto 参照优化 (IPRO)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fipro\u002Fipro.py)                              | 多策略               | SER                         | 连续                  | 离散                | [论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.07182)                                                                                                                |\n| [迭代 Pareto 参照优化-2D (IPRO-2D)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fmulti_policy\u002Fipro\u002Fipro_2d.py) \u003Csup>[2](#f2)\u003C\u002Fsup> | 多策略               | SER                         | 连续                  | 离散                | [论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.07182)                                                                                                                |\n| [非线性多目标 PPO (NLMOPPO)](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fblob\u002Fmain\u002Fmorl_baselines\u002Fsingle_policy\u002Fser\u002Fnl_mo_ppo.py)                             | 单策略              | SER                         | 连续                  | 离散                | 该策略梯度更新的推导见此 [论文](https:\u002F\u002Fcris.vub.be\u002Fws\u002Fportalfiles\u002Fportal\u002F106449930\u002F96440748.pdf)                               |\n:warning: 部分算法功能有限。\n\n\u003Cb id=\"f1\">1\u003C\u002Fb>：PCN 假设环境具有确定性转移。 \u003Cbr>\n\u003Cb id=\"f2\">2\u003C\u002Fb>：IPRO-2D 是为提高效率而设计的 IPRO 的双目标特化版本，但它不能应用于超过两个目标的情形。\n\n\u003C!-- end algos-list -->\n\n\n\n## 基准测试\n\n\u003C!-- start benchmark -->\nMORL-Baselines 参与了 [Open RL Benchmark](https:\u002F\u002Fgithub.com\u002Fopenrlbenchmark\u002Fopenrlbenchmark)，该基准包含来自流行强化学习库（如 [cleanRL](https:\u002F\u002Fgithub.com\u002Fvwxyzjn\u002Fcleanrl) 和 [Stable Baselines 3](https:\u002F\u002Fgithub.com\u002FDLR-RM\u002Fstable-baselines3)）的跟踪实验。\n\n我们已在 [MO-Gymnasium](https:\u002F\u002Fwww.github.com\u002FFarama-Foundation\u002Fmo-gymnasium) 提供的多种环境中运行了我们的算法实验。结果可在此处查看：https:\u002F\u002Fwandb.ai\u002Fopenrlbenchmark\u002FMORL-Baselines。一个用于跟踪所有实验设置的问题位于 [#43](https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fissues\u002F43)。有关实验协议的一些设计文档也发布在我们的 [文档网站](https:\u002F\u002Flucasalegre.github.io\u002Fmorl-baselines\u002Falgos\u002Fperformances\u002F) 上。\n\u003C!-- end benchmark -->\n\n以下展示了我们带有帕累托前沿支持的仪表板示例可视化：\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLucasAlegre_morl-baselines_readme_e440e8e8fbf2.png\" alt=\"WandB dashboards\"\u002F>\n\n## 结构\n\n\u003C!-- start structure -->\n在尽可能的情况下，此仓库尝试遵循所有算法的单文件实现规则。仓库的结构如下：\n\n* `examples\u002F` 包含一组使用 MORL Baselines 与 [MO-Gymnasium](https:\u002F\u002Fwww.github.com\u002FFarama-Foundation\u002Fmo-gymnasium) 环境的示例。\n* `common\u002F` 包含重复出现的实现概念：回放缓冲区、神经网络等。更多详情请参阅 [文档](https:\u002F\u002Flucasalegre.github.io\u002Fmorl-baselines\u002F)。\n* `multi_policy\u002F` 包含多策略算法的实现。\n* `single_policy\u002F` 包含单策略算法的实现（ESR 和 SER）。\n\n\u003C!-- end structure -->\n\n\n## 引用本项目\n\n\u003C!-- start citing -->\n如果您在研究中使用 MORL-Baselines，请引用我们在 NeurIPS 2023 上发表的论文：\n\n```bibtex\n@inproceedings{felten_toolkit_2023,\n\tauthor = {Felten, Florian and Alegre, Lucas N. and Now{\\'e}, Ann and Bazzan, Ana L. C. and Talbi, El Ghazali and Danoy, Gr{\\'e}goire and Silva, Bruno Castro da},\n\ttitle = {A Toolkit for Reliable Benchmarking and Research in Multi-Objective Reinforcement Learning},\n\tbooktitle = {Proceedings of the 37th Conference on Neural Information Processing Systems ({NeurIPS} 2023)},\n\tyear = {2023}\n}\n```\n\n\u003C!-- end citing -->\n\n## 维护者\n\n\u003C!-- start maintainers -->\nMORL-Baselines 目前由 [Florian Felten](https:\u002F\u002Fffelten.github.io\u002F) (@ffelten) 和 [Lucas N. Alegre](https:\u002F\u002Fwww.inf.ufrgs.br\u002F~lnalegre\u002F) (@LucasAlegre) 维护。\n\u003C!-- end maintainers -->\n\n## 贡献\n\n\u003C!-- start contributing -->\n本仓库欢迎贡献，我们始终乐于接受新的算法、错误修复或功能改进。如果您希望贡献，可以加入我们的 [Discord 服务器](https:\u002F\u002Fdiscord.gg\u002FygmkfnBvKA)，与我们讨论您的想法。您也可以直接提交问题或拉取请求。\n\n\u003C!-- end contributing -->\n\n## 致谢\n\u003C!-- start acknowledgements -->\n* [Willem Röpke](https:\u002F\u002Fwilrop.github.io\u002F) (@wilrop)，感谢他最初实现了 IPRO(-2D)，并重新实现了非线性 MO-PPO 和帕累托 Q-Learning。\n* Mathieu Reymond，感谢他提供了 PCN 的原始实现。\n* Denis Steckelmacher 和 Conor F. Hayes，感谢他们提供了 EUPG 的原始实现。\n* Jayden Teoh，感谢他在不同算法中做出多项改进，并实现了 MOSAC 离散版。\n\u003C!-- end acknowledgements -->","# MORL-Baselines 快速上手指南\n\nMORL-Baselines 是一个基于 PyTorch 的多目标强化学习（MORL）算法库。它严格遵循 [MO-Gymnasium](https:\u002F\u002Fgithub.com\u002FFarama-Foundation\u002Fmo-gymnasium) API，提供了多种单策略和多策略算法的实现，并支持自动记录实验结果到 Weights & Biases。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux, macOS 或 Windows\n*   **Python 版本**: 3.8 或更高版本\n*   **依赖项**:\n    *   PyTorch\n    *   MO-Gymnasium (多目标强化学习环境)\n    *   Gymnasium\n    *   NumPy\n    *   Weights & Biases (可选，用于实验追踪)\n\n建议创建一个独立的虚拟环境以避免依赖冲突：\n\n```bash\npython -m venv morl-env\nsource morl-env\u002Fbin\u002Factivate  # Windows 用户使用: morl-env\\Scripts\\activate\n```\n\n## 安装步骤\n\n您可以通过 pip 直接从 GitHub 安装最新版本的 `morl-baselines` 及其依赖项。\n\n**标准安装：**\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines.git\n```\n\n**国内加速安装（推荐中国开发者使用）：**\n\n如果直接连接 GitHub 速度较慢，可以使用国内镜像源加速安装依赖，但源码仍需从 GitHub 拉取：\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines.git -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n安装完成后，您可以验证安装是否成功：\n\n```bash\npython -c \"import morl_baselines; print(morl_baselines.__version__)\"\n```\n\n## 基本使用\n\nMORL-Baselines 的设计初衷是易于使用和复现。以下是一个最简单的示例，展示如何加载一个多目标环境并运行一个基础的算法（以单策略标量化 Q-Learning 为例）。\n\n### 1. 导入必要的库\n\n```python\nimport gymnasium as gym\nimport mo_gymnasium as mo_gym\nfrom morl_baselines.single_policy.ser.mo_q_learning import MOQLearning\n```\n\n### 2. 初始化多目标环境\n\n注意：`mo_gymnasium` 环境与标准 `gymnasium` 的主要区别在于 `step()` 函数返回的奖励是一个 numpy 数组（向量），而不是标量。\n\n```python\n# 创建一个多目标环境，例如 Deep Sea Treasure\nenv = mo_gym.make(\"deep-sea-treasure-v0\")\n\n# 重置环境\nobs, info = env.reset()\nprint(f\"观察空间: {env.observation_space}\")\nprint(f\"动作空间: {env.action_space}\")\nprint(f\"奖励维度: {env.reward_space.shape[0]}\")\n```\n\n### 3. 初始化并训练算法\n\n这里演示使用标量化多目标 Q-Learning (MOQLearning)。您需要定义权重向量来将多目标奖励标量化。\n\n```python\n# 定义权重向量 (例如：更看重时间，其次看重宝藏价值)\nweights = [0.5, 0.5] \n\n# 初始化算法\nagent = MOQLearning(\n    env=env,\n    weights=weights,\n    learning_rate=0.1,\n    gamma=0.99,\n    initial_epsilon=1.0,\n    final_epsilon=0.1,\n    epsilon_decay_steps=10000,\n)\n\n# 训练循环\nnum_episodes = 100\nfor episode in range(num_episodes):\n    obs, _ = env.reset()\n    done = False\n    \n    while not done:\n        # 选择动作\n        action = agent.eval(obs, weights) # 或者使用 agent.select_action 进行探索\n        \n        # 执行动作\n        next_obs, reward, terminated, truncated, info = env.step(action)\n        done = terminated or truncated\n        \n        # 更新代理\n        agent.update(obs, action, reward, next_obs, done, weights)\n        \n        obs = next_obs\n\n    print(f\"Episode {episode + 1} finished.\")\n```\n\n### 4. 进阶使用与实验追踪\n\n该库原生支持 [Weights & Biases (WandB)](https:\u002F\u002Fwandb.ai\u002F) 来可视化训练过程和帕累托前沿。只需在运行脚本时设置相关环境变量或在代码中初始化 wandb，算法会自动上报指标。\n\n更多复杂的算法（如 GPI-PD, CAPQL, PGMORL 等）的使用示例，请参考仓库中的 `examples\u002F` 目录或官方 Colab 教程：\n\n[![Open in Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1ByjuUp8-CJeh1giPOACqPGiglPxDnlSq?usp=sharing)","某自动驾驶研发团队正在训练智能体，需要在“行驶速度”、“乘客舒适度”和“能源消耗”这三个相互冲突的目标中寻找最佳平衡策略。\n\n### 没有 morl-baselines 时\n- **算法从零造轮子**：工程师需手动复现复杂的多目标强化学习论文代码，难以保证 GPI-PD 等先进算法的数学逻辑正确性，调试周期长达数周。\n- **评估标准混乱**：缺乏统一的 MO-Gymnasium 接口支持，团队自行定义的奖励向量格式不一，导致不同策略在 SER（标量期望回报）和 ESR（期望标量回报）准则下无法公平对比。\n- **帕累托前沿难获取**：缺少内置的帕累托剪枝工具，难以从海量训练数据中筛选出真正的非支配策略集，往往只能得到单一且次优的妥协方案。\n- **实验复现成本高**：由于缺乏自动化的超参数优化和日志记录机制，每次调整权重都需要人工干预，实验结果难以复现且无法通过 WandB 直观监控。\n\n### 使用 morl-baselines 后\n- **开箱即用先进算法**：直接调用库中已验证的 GPI-LS 和 GPI-PD 等多策略算法，基于 PyTorch 实现且符合标准 API，将算法部署时间从数周缩短至几天。\n- **标准化多维评估**：依托严格的 MO-Gymnasium 接口，轻松处理数组形式的奖励反馈，自动在 SER 和 ESR 双准则下生成可信赖的性能报告。\n- **高效策略筛选**：利用内置的帕累托剪枝和经验缓冲区工具，快速从训练轨迹中提取出一组多样化的最优策略集，供决策者根据实时路况灵活切换。\n- **自动化实验管理**：结合预配置的超参数优化与 WandB 自动看板，团队能实时监控多目标收敛情况，确保每次实验都可复现且数据透明。\n\nmorl-baselines 将复杂的多目标博弈转化为标准化的工程流程，让研发团队能专注于策略调优而非底层算法实现。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLucasAlegre_morl-baselines_0ab32d36.gif","LucasAlegre","Lucas Alegre","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FLucasAlegre_194e78b4.jpg","Institute of Informatics - UFRGS. Project Manager @Farama-Foundation.","Institute of Informatics - UFRGS","Porto Alegre","lucasnale@gmail.com","lnalegre","inf.ufrgs.br\u002F~lnalegre","https:\u002F\u002Fgithub.com\u002FLucasAlegre",[83],{"name":84,"color":85,"percentage":86},"Python","#3572A5",100,511,"2026-04-14T14:45:49","MIT","","未说明",{"notes":93,"python":91,"dependencies":94},"该工具严格遵循 MO-Gymnasium API，奖励返回为 numpy 数组。支持单策略和多策略算法，涵盖 SER 和 ESR 标准。性能结果自动报告至 Weights and Biases (WandB)。代码包含 pre-commit 钩子以强制进行代码格式化和 linting。提供超参数优化功能。部分算法（如 PCN）假设环境具有确定性转移，IPRO-2D 仅适用于双目标设置。",[95,96,97],"torch","mo-gymnasium","wandb",[14],[100,101,102,103,104,105,106,107,96,108],"rl","gym","morl","multi-objective-rl","pytorch","rl-algorithms","gymnasium","reinforcement-learning","multi-objective",null,"2026-03-27T02:49:30.150509","2026-04-18T09:19:37.664356",[113,118,123,127,132,137],{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},39328,"为什么使用 Chebyshev 标量化函数时，MO Q-Learning 的评估结果总是负数且表现不佳？","这通常是因为目标之间的奖励尺度（scale）不一致导致的。Chebyshev 标量化对奖励的数值范围非常敏感。如果某些目标的奖励范围是 [0, 1] 而其他是 [0, 100]，数值较大的目标将主导标量化结果，导致训练不稳定或收敛到次优解。解决方案是在使用 GPI-PD 或其他基于标量化的算法前，将所有目标奖励归一化到相似的范围（例如 [-1, 1] 或 [0, 1]），以确保各个目标在标量化过程中权重均衡。","https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fissues\u002F114",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},39329,"当多目标强化学习中的不同目标具有不同的奖励尺度（例如一个在 [0,1]，另一个在 [0,100]）时，是否需要对其进行缩放？","是的，必须进行了缩放。一般来说，所有深度强化学习方法在奖励范围为 [-1, 1] 时表现最佳。训练神经网络预测高量级的值已知是不稳定的。如果目标之间存在巨大的尺度差异，会导致优化过程偏向大数值目标，破坏多目标平衡。建议在输入网络前将各目标奖励归一化到统一的小范围区间。","https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fissues\u002F139",{"id":124,"question_zh":125,"answer_zh":126,"source_url":122},39330,"GPI-LS 中关于凸覆盖集（CCS）有限的定理（定理 3.3）是否适用于像 MuJoCo 这样状态空间连续无限的环境？","该定理原始证明依赖于状态空间 S 和动作空间 A 是有限的这一假设。对于像 MuJoCo 这样的连续无限状态空间，理论上不能直接保证多面体 P 的数量是有限的。然而，在实际的深度强化学习应用中，我们通过函数近似（神经网络）来处理连续空间，虽然理论上的有限性证明不直接适用，但算法在实践中仍然可以有效工作并近似出帕累托前沿。用户应注意连续空间下的收敛性可能不如离散空间那样有严格的理论保证。",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},39331,"MORL\u002FD 算法中使用自适应乌托邦点（adaptive utopian point）是否能保证在有限步内收敛？","不能保证。原始的 MORL\u002FD 论文并没有提供考虑自适应乌托邦点变化时的收敛性证明。由于乌托邦点在训练过程中会动态移动，这会导致效用函数不是预定义或固定的，从而可能在训练信号中引入偏差。这与深度强化学习的普遍情况类似：一旦引入神经网络和动态变化的参考点，大多数理论证明往往不再成立，除非添加一些通常不切实际的假设。因此，使用时需意识到其缺乏严格的收敛性理论支撑。","https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fissues\u002F175",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},39332,"如何调试 GPILSContinuousAction 模型在多目标任务中无法收敛的问题？","首先，检查环境渲染或记录智能体轨迹，确认智能体是否真的在向目标移动（有时奖励停滞是因为策略完全失效）。其次，尝试简化任务：移除外部干扰、将智能体初始化在靠近目标的状态、并将奖励权重设置为单目标模式（如 [1.0, 0.0]）以排查是否是目标冲突导致。如果单目标模式下仍不收敛，可能是超参数问题，可以尝试增加探索噪声（policy_noise）。此外，确保奖励值范围合理（建议在 [-1, 1] 之间），过大的惩罚值会导致神经网络训练不稳定。","https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fissues\u002F71",{"id":138,"question_zh":139,"answer_zh":140,"source_url":136},39333,"为什么即使将权重设置为单目标模式（例如 [1, 0]），多目标强化学习模型仍然无法收敛？","这种情况通常由以下原因引起：1. 目标实际上存在隐含冲突，或者环境设计导致即使忽略第二个目标，第一个目标的优化也受干扰；2. 奖励尺度不合适，导致梯度爆炸或消失；3. 探索不足，智能体陷入局部最优。建议步骤：检查奖励函数定义，确保未观察到的隐式惩罚；大幅简化环境（如去除随机扰动）；验证状态空间和动作空间的预处理是否正确；并尝试调整学习率和探索率。如果简化后的单目标任务仍失败，问题可能出在环境本身或基础算法实现上，而非多目标机制。",[142,147,152,157,162],{"id":143,"version":144,"summary_zh":145,"released_at":146},315252,"v1.2.0","## 变更内容\n* 文档\u002F更新版本，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F127 中完成\n* 从指标日志中移除稀疏性，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F124 中完成\n* 修复使用包装器时观测空间和动作空间的获取问题，由 @LucasAlegre 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F129 中完成\n* MORecordEpisodeStatistics 日志修复，由 @1Kraks 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F142 中完成\n* 重构 PCN 的保存方法，由 @1Kraks 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F143 中完成\n* 杂项\u002F更新 precommit 配置，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F147 中完成\n* 添加 MOSAC Discrete、MORL-D 的权重保存与加载功能，以及 MOSAC 的网络架构指定，由 @JaydenTeoh 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F134 中完成\n* 添加 PGMORL 3D，并引入论文中的稀疏系数，由 @JaydenTeoh 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F135 中完成\n* 加快 pcn.py 中张量创建速度，由 @nkirschi 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F152 中完成\n* 为 pcn.py 补充缺失的加载函数，由 @nkirschi 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F150 中完成\n* 为 GPI-PD LunarLander 和 Humanoid 添加适当的终止条件函数，由 @JaydenTeoh 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F136 中完成\n* 修复设备不匹配的错误，由 @nkirschi 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F154 中完成\n* 修复 PCN 的文档，由 @nkirschi 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F155 中完成\n* 修复 PG-MORL 性能缓冲区中个体排序问题，由 @Henweiz 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F156 中完成\n* 修复 CAPQL 的文档，由 @nkirschi 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F157 中完成\n* 在 torch.load 中使用 weights_only=False 参数，由 @nkirschi 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F158 中完成\n* 当 pycddlib 未安装时提供友好的错误提示信息，由 @nkirschi 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F162 中完成\n* 更新 Gymnasium 的 FrameStackObservation 和 GrayscaleObservation 模块导入，由 @LucasAlegre 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F163 中完成\n* 允许更改 GPI-LS 的实验名称，由 @LucasAlegre 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F164 中完成\n* 更新 morld_lunar_lander_restore.py，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F165 中完成\n* 发布版本 1.2.0，由 @LucasAlegre 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F166 中完成\n\n## 新贡献者\n* @1Kraks 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F142 中完成了首次贡献\n* @JaydenTeoh 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F134 中完成了首次贡献\n* @nkirschi 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F152 中完成了首次贡献\n* @Henweiz 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F156 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fcompare\u002Fv1.1.0...v1.2.0","2025-08-06T13:20:01",{"id":148,"version":149,"summary_zh":150,"released_at":151},315253,"v1.1.0","## 变更内容\n* 将工具函数移至更合适的位置，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F62 中完成\n* 实现快速的帕累托前沿和凸包剪枝算法，由 @wilrop 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F60 中完成\n* 支持 Gymnasium 0.29，由 @LucasAlegre 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F64 中完成\n* 将 minecart-deterministic-v0 添加到已知 Pareto 前沿的环境列表中，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F65 中完成\n* 在 GPI-LS 和 Envelope 中支持基于图像的观测，由 @LucasAlegre 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F63 中完成\n* 实现对 #69 的修复，由 @wilrop 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F70 中完成\n* 功能\u002Fhpo，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F74 中完成\n* 在评估 PCN 时使用确定性策略，由 @vaidas-sl 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F75 中完成\n* 添加 NeurIPS 论文的 BibTeX 引用，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F77 中完成\n* 更新 README.md，由 @eltociear 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F80 中完成\n* 记录传递给算法的所有训练参数，由 @wilrop 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F83 中完成\n* 为 PCN 添加对连续动作空间的支持，由 @vaidas-sl 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F82 中完成\n* 修复在浮点数上调用 tolist 的 bug，由 @wilrop 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F86 中完成\n* 添加基数度量，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F87 中完成\n* 在 GPI-LS 的评估阶段移除 dropout，由 @LucasAlegre 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F90 中完成\n* MORL\u002FD，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F89 中完成\n* 杂项\u002F移除 TensorBoard 相关内容，使 Gym 日志记录变为可选，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F94 中完成\n* 使用于计算效用指标的采样权重数量可配置，由 @LucasAlegre 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F95 中完成\n* 开发 EUPG，由 @omidsbhn 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F99 中完成\n* 修复 PGMORL 示例中的问题，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F104 中完成\n* 将 actions\u002Fdownload-artifact 从 2 升级至 4.1.7，在 \u002F.github\u002Fworkflows 中，由 @dependabot 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F116 中完成\n* 修复 EUPG 观测展开不一致的问题，由 @timondesch 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F119 中完成\n* 迁移到 gymnasium 1.0，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F109 中完成\n* 为 CAPQL 的训练方法添加 save_freq 选项，由 @LucasAlegre 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F122 中完成\n* 在 GPI-LS 的连续动作版本中，默认仅使用 GPI 选择权重，由 @LucasAlegre 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F126 中完成\n* 添加对 Python 3.12 的支持，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F125 中完成\n\n## 新贡献者\n* @vaidas-sl 完成了…","2024-10-28T18:46:55",{"id":153,"version":154,"summary_zh":155,"released_at":156},315254,"1.0.0","本次发布标志着 MORL-Baselines 的首个稳定版本。在过去几周里，我们已在多种环境中对算法进行了全面测试并修复了各类 bug。如今，我们认为该库已足够稳定，值得正式发布。\n\n## 特性\n* 在 [MO-Gymnasium](https:\u002F\u002Fmo-gymnasium.farama.org\u002F) API 下支持超过 10 种多目标强化学习算法（包括多策略和单策略方法，适用于 SER 和 ESR 准则）；\n* 自动向 [Weights and Biases](https:\u002F\u002Fwandb.ai\u002Fhome) 仪表板报告各类指标（见下方截图）；\n* 代码整洁、文档完善且经过充分测试，这些要求通过 CI 钩子强制执行；\n* 提供实用工具函数，帮助研究人员构建新算法，例如 `ParetoArchive`、`NatureCNN`、`PrioritizedReplayBuffer` 等；\n* 算法性能已以可复现的方式进行测试和报告：请参阅 #43 以及 https:\u002F\u002Fwandb.ai\u002Fopenrlbenchmark\u002FMORL-Baselines。\n\n我们的仪表板示例：帕累托前沿和多目标指标可实时查看。\n\u003Cimg width=\"1904\" alt=\"wandb\" src=\"https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fassets\u002F11799929\u002F961f8418-578b-493a-ad28-2e9ec9df085c\">","2023-06-12T16:06:59",{"id":158,"version":159,"summary_zh":160,"released_at":161},315255,"1.0.0-rc2","## 变更内容\n* 将 PQL 改为线性衰减的探索策略，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F48 中实现\n* 重构随机种子设置，由 @LucasAlegre 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F49 中完成\n* 在 OLS 中增加对求解器错误的恢复处理，由 @ffelten 在 https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fpull\u002F51 中实现\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FLucasAlegre\u002Fmorl-baselines\u002Fcompare\u002F1.0.0-rc1...1.0.0-rc2","2023-04-04T09:51:56",{"id":163,"version":164,"summary_zh":165,"released_at":166},315256,"1.0.0-rc1","首个候选版本旨在稳定代码库中的算法，并报告其性能。在评估性能和逐步提升候选版本号的过程中，我们将及时修复发现的缺陷。待性能评估完成后，即可发布 1.0.0 版本。","2023-03-28T17:14:29"]