OpenAI Dota 2 1v1 机器人结果

OpenAI 已经展示了自我对弈强化学习如何将机器学习系统从次人类表现提升到 Dota 2 1v1 中的超人类能力。在一个月内,系统从仅能匹配高排名玩家发展到击败顶级职业选手,说明自我对弈使得训练数据能够随着智能体技能的提升而自动改进。

超人类表现和训练时间线

OpenAI 的机器人通过扩展计算资源和实施算法改进,实现了超人类状态,导致 TrueSkill 评分随时间线性增加。机器人能力的进展通过以下里程碑标记:

  • 3月1日:在一个简单的环境中(Drow Ranger 牵制 Earthshaker),初始的经典强化学习取得了结果。
  • 5月8日:一名 1.5k MMR 测试者报告称其进步速度快于机器人。
  • 6月初:机器人开始击败 1.5k MMR 测试者。
  • 6月30日:机器人在与 3k MMR 测试者的对战中赢得了大多数比赛。
  • 7月8日:机器人首次战胜了 7.5k MMR 半职业测试者。
  • 8月7日:机器人以 3–0 击败 Blitz(6.2k),以 2–1 击败 Pajkatt(8.5k),并以 3–0 击败 CC&C(8.9k)。
  • 8月9日:机器人以 10–0 击败 Arteezy(10k 职业选手)。
  • 8月10日:机器人以 6–0 击败 Sumail(8.3k 职业选手)。Sumail 将机器人描述为“无敌”。
  • 8月11日:机器人以 2–0 击败 Dendi(7.3k 职业选手)。

技术实现和接口

机器人在没有 AI 特定简化的情况下,按照标准赛事规则进行 1v1 对战。它使用了以下接口:

  • 观察:机器人使用 Bot API 访问人类可见的特征,包括英雄、小兵、信使和附近地形的信息。环境是部分可观测的。
  • 动作:机器人通过 Bot API 以与人类相当的频率执行动作,如移动、攻击和使用物品。
  • 反馈:奖励基于赢得比赛和基本指标提供,包括生命值和最后一击。

为了方便训练,OpenAI 将几十种物品构建加入白名单,并使用传统强化学习技术单独训练了初始的兵线阻挡。

在国际邀请赛期间的迭代改进

OpenAI 在国际邀请赛期间结合“指导”和自我对弈,快速迭代智能体。主要改进包括:

  • 物品构建适配:在 Pajkatt 使用早期魔法棒赢得一场比赛后,OpenAI 将该特定物品构建添加到训练白名单。
  • 策略演变:机器人通过在第一波故意损失生命值来引诱对手进行激进进攻,这一策略后来通过进一步的自我对弈被应对。
  • 机制发现:机器人发现了一种游戏机制,即在敌人视野外施放技能可以防止敌人获得魔法棒充能。

已知漏洞和局限性

尽管表现出色,但机器人可能会被其在训练中未遇到的场景所困惑。在国际邀请赛的 LAN 活动中,玩家们发现了三种主要的利用手法:

  1. 兵线拉扯:在机器人的二级塔和三级塔之间吸引路线小兵,导致塔因消耗而被摧毁。
  2. Orb of Venom + Wind Lace:使用这些物品在等级 1 获得移动速度优势,以快速获得第一滴血。
  3. 等级 1 Raze:高水平玩家(6–7k MMR)能够通过在等级 1 快速连续命中 3–5 次 Raze 来击杀机器人。

基础设施和未来目标

为了在云端运行 Dota 2,OpenAI 开发了一个用于 stub OpenGL 调用的垫片,并配置了云 GPU 实例以模拟物理显示器连接,以绕过启动错误。

OpenAI 还开发了一个脚本机器人作为基线。虽然脚本机器人在空闲路线上十分钟内达到了 70 次最后一击,但强化学习机器人在相同时间内达到了大约 97 次最后一击(理论最大值为 101)。

该项目的最终目标是解决 5v5 Dota 2。为此,OpenAI 已积累了 580 万份专家级回放数据集(每份约 45 分钟,包含 10 名人类玩家),以利用行为克隆。

Sources