© 2026FindAgent  · @simprr
返回列表
g

google-deepmind/lab

A customisable 3D platform for agent-based AI research

artificial-intelligencedeep-learningmachine-learningneural-networks
⭐

7.3k

Stars

🔱

1.4k

Forks

👁

452

Watchers

📋

65

Issues

CNOASSERTION创建于 2016/11/30更新于 今天
在 GitHub 上查看
README
由 Gemini 翻译整理

DeepMind Lab

DeepMind Lab 是一个基于 id Software 的 Quake III Arena(通过 ioquake3)及其他开源软件构建的 3D 学习环境。

DeepMind Lab 为学习型 Agent 提供了一套极具挑战性的 3D 导航和解谜任务。其主要目的是作为人工智能研究(特别是深度强化学习)的实验平台。

关于

免责声明:这不是 Google 的官方产品。

如果您在研究中使用了 DeepMind Lab 并希望引用该环境,建议引用 DeepMind Lab 论文。

您可以发送邮件至 lab@deepmind.com 联系我们。

Linux 环境入门

  • 请从 bazel.io 获取 Bazel。

  • 克隆 DeepMind Lab 仓库,例如运行:

$ git clone https://github.com/deepmind/lab
$ cd lab

若要运行一个随机 Agent 的实时示例,请执行:

lab$ bazel run :python_random_agent --define graphics=sdl -- \
               --length=10000 --width=640 --height=480

这里有更详细的构建文档,包含如何安装缺失的依赖项。

若要开启编译器优化,请为每个 bazel build、bazel test 和 bazel run 命令添加 --compilation_mode=opt 标志(简写为 -c opt)。为简洁起见,上述示例中省略了此标志,但在进行实际训练和评估(对性能有要求)时应使用它。

以人类玩家身份进行游戏

若要使用人类输入控制来测试游戏,请运行:

lab$ bazel run :game -- --level_script=tests/empty_room_test --level_setting=logToStdErr=true
# 或:
lab$ bazel run :game -- -l tests/empty_room_test -s logToStdErr=true

关闭 logToStdErr 设置可以禁用大部分日志输出。

通过为每个感兴趣的观察项添加 --observation OBSERVATION_NAME 标志,可以在每一步打印环境暴露的观察值:

lab$ bazel run :game -- --level_script=lt_chasm --observation VEL.TRANS --observation VEL.ROT

训练 Agent

DeepMind Lab 在 python/random_agent.py 中提供了一个随机 Agent 示例,这可以作为实现学习型 Agent 的起点。若要让此 Agent 与 DeepMind Lab 进行交互以进行训练,请运行:

lab$ bazel run :python_random_agent

Python API 用于 Agent 与环境的交互。我们还提供了针对 DeepMind "dm_env" 通用强化学习 API 的绑定,以及构建自包含 PIP 包的方法;详情请参阅相关文档。

DeepMind Lab 附带了不同的关卡以实现不同的任务。这些任务可以通过 Lua 脚本进行配置,具体说明请参阅 Lua API。


上游来源

DeepMind Lab 基于 ioquake3 游戏引擎构建,并使用 q3map2 和 bspc 工具进行地图创建。源自这些项目的 Bug 修复和清理工作最好先在上游修复,然后再合并到 DeepMind Lab 中。

  • bspc 取自 github.com/TTimo/bspc,修订版本为 d9a372db3fb6163bc49ead41c76c801a3d14cf80。几乎没有本地修改,尽管我们将此代码与主要的 ioq3 代码进行了集成,并且没有使用它们在 deps 目录中的副本。我们预计该代码是稳定的。

  • q3map2 取自 github.com/TTimo/GtkRadiant,修订版本为 d3d00345c542c8d7cc74e2e8a577bdf76f79c701。进行了一些小的本地修改以增加同步功能。我们同样预计该代码是稳定的。

  • ioquake3 取自 github.com/ioquake/ioq3,修订版本为 29db64070aa0bae49953bddbedbed5e317af48ba。代码包含大量的修改和补充。我们计划不定期合并上游的变更。

我们非常感谢这些仓库的维护者在维护高质量代码库方面所做出的巨大努力。

外部依赖、先决条件及移植说明

DeepMind Lab 目前仅以源代码形式发布。它依赖于一些外部软件库,我们通过几种不同的方式来提供:

  • zlib、glib、libxml2、jpeg 和 png 库被作为外部 Bazel 源引用,并提供了 Bazel BUILD 文件。依赖代码本身应该是相当可移植的,但我们随附的 BUILD 规则是专门针对 Linux x86 平台的。若要移植到其他平台,您很可能需要编辑这些 BUILD 文件。

  • 消息摘要算法包含在本包中(位于 //third_party/md),取自 th...

贡献者
tcdwPcS
项目信息
默认分支master
LicenseOther
创建时间2016/11/30
最近更新今天
GAI 中文摘要

DeepMind Lab 是一个基于 Quake III Arena 引擎构建的 3D 学习环境,旨在为基于代理的 AI 研究提供高度可定制的实验平台。该项目专注于 3D 导航与益智解谜任务,为深度强化学习算法的训练与评估提供了标准化测试环境。

提供复杂且具有挑战性的 3D 空间导航与解谜任务,模拟真实世界的视觉交互。 支持深度强化学习代理与环境的高效交互,便于评估算法在动态环境中的表现。 允许用户高度自定义环境设置与任务逻辑,满足多样化的科研实验需求。 内置完善的 Python API 和 dm_env 接口,极大降低了算法开发与部署的门槛。 支持可视化人类操作模式,方便研究人员通过手动测试直观了解环境特性。

该项目主要面向人工智能研究人员及数据科学家,适用于深度强化学习、神经网络以及自主智能代理的算法开发、仿真训练与性能测评场景。