Super-mario-bros-PPO-pytorch

GitHub
1.3k 236 中等 1 次阅读 今天MITAgent开发框架图像
AI 解读 由 AI 自动生成,仅供参考

Super-mario-bros-PPO-pytorch 是一个基于 PyTorch 框架的开源项目,旨在利用近端策略优化(PPO)算法训练智能体自动游玩经典游戏《超级马里奥兄弟》。该项目主要解决了传统强化学习算法(如作者此前使用的 A3C)在复杂关卡中表现受限的问题,成功将通关率从 19/32 大幅提升至 31/32,展现了卓越的决策能力。

PPO 算法由 OpenAI 提出,曾用于训练击败人类世界冠军的 Dota 2 AI,其核心优势在于训练过程更加稳定且易于调优。本项目的独特亮点在于提供了完整的训练与测试代码,并分享了关键的经验技巧:通过灵活调整学习率(如在困难关卡使用 7e-5),即可显著突破性能瓶颈,无需复杂的架构修改。此外,项目还附带 Docker 配置,方便用户快速部署环境。

这款工具非常适合对强化学习感兴趣的开发者、研究人员以及高校学生使用。它不仅是一个高性能的游戏 AI 示例,更是学习 PPO 算法原理、掌握深度强化学习实战技巧的优质教材。如果你希望探索如何让机器在复杂环境中通过试错不断进化,Super-mario-bros-PPO-pytorch 将是一个极佳的起点。

使用场景

某高校强化学习实验室的研究团队正致力于复现经典游戏 AI 算法,并试图突破现有模型在复杂关卡中的通过率瓶颈。

没有 Super-mario-bros-PPO-pytorch 时

  • 通关上限低:团队此前使用的 A3C 算法经过大量微调,智能体最多只能通关 19/32 个关卡,难以应对后期高难度地形。
  • 调优盲目低效:缺乏成熟的超参数参考,研究人员需反复试错,尤其在面对如 1-3 这类“卡关”层级时,往往失败数十次仍无进展。
  • 环境适配性差:尝试过的其他算法(如 Rainbow)更适用于随机性强的游戏,在超级马里奥这种需要精确操作的平台跳跃游戏中表现平平。
  • 部署门槛高:从零搭建训练环境耗时费力,缺乏标准化的 Docker 支持,导致不同成员间的实验结果难以复现和对比。

使用 Super-mario-bros-PPO-pytorch 后

  • 性能显著跃升:基于 PPO 算法训练的代理成功通关 31/32 个关卡,性能远超预期,接近人类顶尖玩家水平。
  • 调参策略清晰:项目明确了学习率(如 7e-5)对特定难关的关键作用,让团队能快速定位问题,避免无效迭代。
  • 算法匹配精准:直接复用 OpenAI 验证过的 PPO 架构,完美契合马里奥游戏的决策逻辑,无需再花费时间筛选不适用的算法。
  • 开箱即用便捷:利用提供的 Dockerfile 和标准化脚本(train.py/test.py),团队成员可一键启动训练与测试,大幅降低环境配置成本。

Super-mario-bros-PPO-pytorch 不仅将游戏 AI 的通关率提升至新高度,更为研究者提供了一套高效、可复现的强化学习基准方案。

运行环境要求

操作系统
  • Linux
GPU
  • 训练阶段需要 NVIDIA GPU (Docker 运行参数指定 --gpus device=0),具体型号和显存未说明
  • 测试/推理阶段未强制要求 GPU
内存

未说明

依赖
notes1. 提供 Dockerfile 以便在容器中运行训练和测试,但 Docker 环境下存在渲染 bug,需注释掉代码中的 env.render() 行,此时无法实时可视化窗口,但训练仍可进行,测试会生成 mp4 视频文件。 2. 模型性能对学习率非常敏感,若卡在特定关卡(如 1-3),需尝试调整学习率(推荐尝试 1e-3, 1e-4, 1e-5 或 7e-5)。 3. 目前算法无法通关第 8-4 关,因该关卡包含需要选择正确路径的谜题机制。
python未说明
pytorch
docker (可选,用于容器化运行)
gym-super-mario-bros (隐含依赖,用于游戏环境)
Super-mario-bros-PPO-pytorch hero image

快速开始

[PYTORCH] 基于近端策略优化(PPO)的超级马里奥兄弟游戏智能体

引言

以下是用于训练智能体玩超级马里奥兄弟游戏的 Python 源代码。该代码使用了论文 Proximal Policy Optimization Algorithms 中提出的近端策略优化(PPO)算法,论文链接

在性能方面,我用 PPO 训练的智能体能够通关 31 个关卡中的 32 个,这远远超出了我最初的预期。

值得一提的是,PPO 是由 OpenAI 提出的算法,并被用于训练 OpenAI Five,这是首个在电子竞技游戏中击败世界冠军的人工智能团队。具体来说,OpenAI Five 在 2018 年 8 月击败了一支由解说员和前职业选手组成的队伍,这些选手的 Dota 2 MMR 排名位于玩家群体的 99.95 百分位。









示例结果

动机

自从我发布了 A3C 实现代码(A3C 代码)来训练智能体玩超级马里奥兄弟以来,已经有一段时间了。尽管训练好的智能体能够相当快速且出色地通关各个关卡(至少比我玩得快、玩得好 :sweat_smile:),但它仍然未能完全让我满意。主要原因在于,无论我如何调整参数和测试,用 A3C 训练的智能体最多只能通关 19 个关卡中的 32 个。这促使我寻找新的方法。

在我决定选择 PPO 作为下一个完整实现之前,我还部分实现了其他几种算法,包括 A2C 和 Rainbow。然而,前者在性能上并没有显著提升,而后者更适合那些具有较高随机性的环境或游戏,比如乒乓球或太空侵略者。

如何使用我的代码

通过我的代码,你可以:

  • 训练你的模型:运行 python train.py。例如:python train.py --world 5 --stage 2 --lr 1e-4
  • 测试你训练好的模型:运行 python test.py。例如:python test.py --world 5 --stage 2

注意:如果你在某个关卡上卡住了,可以尝试使用不同的学习率重新训练。就像我一样,只需调整学习率,就能成功通关 31 个关卡中的 32 个。通常我会将学习率设置为 1e-31e-41e-5。不过,有些关卡确实非常困难,比如 1-3 关卡,我在失败了 70 次之后,最终才以 7e-5 的学习率成功通关。

Docker 使用说明

为了方便起见,我提供了一个 Dockerfile,可用于运行训练和测试阶段。

假设 Docker 镜像名为 ppo,你只想使用第一块 GPU,并且已经克隆了这个仓库并进入其中。

构建镜像:

sudo docker build --network=host -t ppo .

运行容器:

docker run --runtime=nvidia -it --rm --volume="$PWD"/../Super-mario-bros-PPO-pytorch:/Super-mario-bros-PPO-pytorch --gpus device=0 ppo

然后在容器内,你可以按照上述方式运行 train.pytest.py 脚本。

注意:使用 Docker 时存在渲染方面的 bug。因此,在使用 Docker 进行训练或测试时,请注释掉训练脚本 src/process.py 或测试脚本 test.py 中的 env.render() 行。这样虽然无法再看到可视化窗口弹出,但这并不影响训练过程的进行,测试结束后也会生成一个用于可视化的 MP4 文件。

为什么 8-4 关卡仍未通关?

在世界 4-4、7-4 和 8-4 关卡中,地图设计了许多谜题,玩家必须选择正确的路径才能继续前进。如果选错了路径,就必须重新走一遍已经经过的路线。由于环境设置较为严苛,前两个关卡已经被成功解决,但最后一个关卡目前仍未通关。

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

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 真正成长为懂上

140.4k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|昨天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2天前
Agent图像开发框架