【 ai-safety-gridworlds】介绍和使用(未完)
AI安全基准测试:多智能体、多目标强化学习环境
一、简介
1.1 基于DeepMind的AI Safety Gridworlds
- 核心思想: 构建强化学习环境,用于评估智能体在安全属性上的表现。
- 扩展性: 支持多智能体 (Multi-agent) 和多目标 (Multi-objective) 任务。
- 兼容性: 兼容 OpenAI Gym/Gymnasium 和 Farama PettingZoo。
- 目标: 提升AI系统在复杂环境中的安全性和鲁棒性。
1.2 环境概览:从单智能体到多智能体、多目标
- 多智能体会在同一个环境中相互作用,竞争甚至合作。
1.3 实验环境:丰富的场景与挑战
1.4 多目标奖励:向量表示与标量化
多目标奖励的表示与处理
-
向量形式: 多目标奖励以向量形式表示,每个维度对应一个目标。
比如,对于一个既要生存又要积累财富的智能体,它的奖励向量可能有两个维度:一个是生存值,另一个是财富值。
优点是直观,缺点是基于梯度的算法,可能不太方便处理向量奖励。 -
标量化选项: 提供自动标量化选项,将多目标奖励转换为标量值,方便与传统RL算法兼容
通常是通过线性加权求和的方式,应对基于梯度的算法
默认下,该功能关闭,保持原始的向量形式;权重参数可以设置
1.5 Gym/Gymnasium & PettingZoo 兼容性
- 通过两个包装器
GridworldGymEnv
和GridworldZooParallelEnv
,使的我们的环境能够被Gym
和PettingZoo
的API识别和使用。
1.6 可视化与用户界面:SafetyCursesUiEx & 人类交互
1.7 多智能体支持:独立奖励与观察
1.8 高级特性:碰撞解决与地图随机化
我们实现了一种自动策略来解决这些问题,比如当两个智能体同时试图移动到同一个位置时候,或者多个智能体同时争夺有限的资源的时候,系统会自动介入处理,而不是需要你在每个具体的环境代码里都去写冲突解决逻辑。
1.9 性能优化与代码改进
1.10 多模态动作与可观测属性
丰富智能体行为与交互
多模态动作:
移动 、 附加动作 、改变方向 、表情变化
可观测属性: 面部表情、标志、 数字气泡、 文本气泡
公共指标
部分智能体指标可公开,供其他智能体观察。
我们可以选择将某些智能体的内部指标,比如健康度、满意度等,设置为公开状态,让其他智能体能够观察到这些信息,这有助于建立更复杂的社交关系和协作策略。
二、环境准备
2.1 克隆仓库到本地
git clone https://github.com/levitation-opensource/ai-safety-gridworlds.git
克隆的网址
(https://github.com/levitation-opensource/ai-safety-gridworlds)根据实际情况来啊~ 但是命令git clone
是不变的. 打开git的方法是:桌面右键+“open git bash here”.如果不会克隆的话,见文章《【git】gitee的上传文件与报错》
解压文件在桌面上
- 在pycharm中选择“File > open” 打开克隆的目录,如下展示
2.2 安装依赖项
在pychram 的Terminal中执行:
pip install -r requirements.txt
pip install gymnasium pettingzoo pygame # 额外依赖
ps:terminal 又名 终端 。
2.3 验证安装
运行示例环境测试:
python -m ai_safety_gridworlds.environments.boat_race_ex
成功运行会显示ASCII艺术界面(需启用终端图形支持)
三、基础使用模式
3.1 运行预设环境
在PyCharm中创建Run Configuration: