英雄联盟AI 1v1:Ezreal强化学习智能体如何击败前代版本

非脚本RL智能体在英雄联盟Ezreal 1v1中通过联赛训练和剥削者机制展现策略进化。
文章记录了一场由强化学习训练的两个非脚本AI在英雄联盟客户端进行的Ezreal中路1v1对局。规则极度简化:无回血、无装备、无升级,首杀、100补刀或首塔获胜。蓝方主智能体训练45,600步,红方剥削者仅训练约2小时即对蓝方旧版本达到85%胜率。训练使用PPO+LSTM(约150万参数)、Numba编译模拟器、单台GH200,累计约2500亿样本。训练采用模仿AlphaStar的联赛结构,主智能体8组中6组对固定对手、2组对自身历史。主智能体对固定对手胜率81%-83%,对脚本DuelBot达98%-99%,而行为克隆智能体仅0%-6%。作者最终目标是击败T1/Faker,当前距目标仍有明显差距,但联赛加剥削者机制已让非脚本智能体在受限规则下展现出可解释的策略进化。
一位研究者用强化学习训练了两个非脚本AI,在英雄联盟客户端里打了一场Ezreal对Ezreal的中路1v1。蓝方是主智能体(训练更新45,600步),红方是专门针对蓝方旧版本训练的“剥削者”。这场对局的细节,透露了当前游戏AI训练的一条可行路径。

对局设定:没有回血,第一次换血定胜负
双方都是6级Ezreal,技能固定为Q3/W1/E1/R1,带闪现和屏障。规则里没有被动、没有装备、没有升级,也没有药水、回城和吸血——掉血就再也回不来。这意味着第一次换血几乎直接决定比赛走向,而视频中的对局正是如此。
胜负条件有三个:一血、先到100补刀、或先推掉外塔,15分钟封顶。场上存在兵线和外塔,但据作者观察,在这些规则下,抢到100补刀远比磨掉一座9000血的外塔划算。
两个智能体:主训练与“剥削者”
蓝方是主智能体,训练到第45,600次更新,是作者真正想变强的策略。红方则是“剥削者”,只训练了大约2小时(一个4小时周期的一半),唯一任务是击败主智能体在43,800步时的冻结副本。它从更早的检查点“exploit 2600”出发,只和那个43,800快照以及自己的历史版本对打。
训练中它对这个快照的胜率约85%。早期靠快速all-in取胜,后来转向压制补刀——在它的胜局里,补刀数是67比9。视频里红方正是用这种方式压垮了蓝方。
训练环境:从回放到Numba模拟器
游戏规则来自真实对局回放,但训练时被移植到编译过的Numba模拟器里,吞吐量高出几个数量级。智能体每4个服务器tick做一次决策,约133毫秒;双方各自从自己的视角观察游戏,奖励是零和的。
算法上用的是PPO加LSTM策略,输入覆盖英雄、小兵和防御塔等单位,参数量约150万到165万。动作空间包括移动/停止、普攻、QWER、闪现和屏障,并有一个指针头用于选择目标,非法动作会被掩码掉。每次更新跑一个PPO epoch,Adam学习率3e-4,折扣因子γ=0.9997(约7分钟视野,与OpenAI Five一致),胜利奖励±10。
算力是一台Lambda GH200(64个ARM核心加H100 96GB),并行运行15,360局游戏,吞吐量1.2到190万样本/秒,取决于是否有剥削者共享GPU。每次更新约550万样本,到第45,600次更新累计约2500亿样本;作者提到智能体自己在第36,300步时给出的数字约为2000亿。
PPO与LSTM策略
PPO(近端策略优化)是目前游戏AI中最常用的强化学习算法之一,属于策略梯度方法。它的核心思想是:在每次更新时,限制新策略与旧策略的偏离幅度(通过裁剪重要性采样比率),从而避免训练崩溃。文章中提到“每次更新跑一个PPO epoch”,意味着每批数据只做一轮梯度更新,这是PPO在分布式大规模训练中的常见做法。
LSTM(长短期记忆网络)则用于处理序列决策问题。在英雄联盟中,智能体需要记住几秒前的兵线状态、对手的技能释放习惯等信息,LSTM的隐状态让策略网络具备了短期记忆能力。PPO负责“怎么更新”,LSTM负责“怎么记住”,两者结合构成了文章所述智能体的算法骨架。OpenAI Five同样采用了PPO+LSTM的组合,这也是该方案在复杂多智能体环境中被反复验证的原因。
训练谱系:从镜像自对弈到AlphaStar式联赛
训练路径分几个阶段。最早是镜像自对弈和带兵线的对线训练,在10月10日左右产出第一批检查点。10月19日加入“竞速”规则——100补刀胜利条件、胜利奖励和长视野,智能体从此能看到双方的补刀数。
同一天,防御塔训练从“exploit 2600”检查点启动。新加的防御塔输入用零初始化权重接入(OpenAI Five的“手术”技巧),保证旧检查点在开始时行为完全不变。训练中部分防御塔会以随机血量开局。10月19日至23日,这部分训练分4到12小时的片段进行,对手是固定对手加上主智能体自己的过去版本。
10月23日起,训练转向一个 loosely 模仿AlphaStar的联赛结构:每个4小时周期里,主智能体8个组中有6组对固定对手(较老的剥削者加早期主检查点),另外2组对自己的过去;同时一个新的剥削者针对最新主智能体训练,周期结束时它成为固定对手之一。
AlphaStar联赛与“剥削者”机制
AlphaStar是DeepMind为《星际争霸II》开发的AI,其最大创新之一是“联赛”(league)训练框架。简单说,联赛维护一个由不同版本智能体组成的对手池,主智能体不仅与当前版本自对弈,还要与历史版本、专门针对它训练的“剥削者”(exploiter)对打。剥削者的唯一目标就是找到主智能体的弱点并加以利用,从而逼迫主智能体进化出更鲁棒策略。
文章中的“剥削者”正是这一思想的简化实现:红方只训练约2小时,专门针对蓝方第43,800步的冻结副本,胜率即达85%。这种非对称对抗让训练效率远高于纯自对弈——主智能体被迫面对专门克制的对手,而不是在镜像对局中反复磨蹭。联赛结构还包含“固定对手”和“历史版本”两种角色,前者提供稳定基准,后者防止智能体遗忘旧策略。
零初始化权重接入与“手术”技巧
当训练进入新阶段(如加入防御塔输入)时,如果直接修改网络结构,旧检查点的行为会被破坏,导致训练崩溃。OpenAI Five提出的“手术”(surgery)技巧解决了这个问题:新增输入对应的权重初始化为零,这样在训练开始时,新输入对网络输出没有任何影响,旧策略的行为完全保留。随着训练进行,梯度会逐渐让这些权重 nonzero,智能体学会利用新信息。
文章中提到“新加的防御塔输入用零初始化权重接入”,正是这一技巧的应用。它使得作者可以从“exploit 2600”检查点平滑地启动防御塔训练,而不需要从头重训。这种增量式扩展能力是大规模强化学习工程化的重要一环,也让训练谱系中的各个阶段能够无缝衔接。
当前水平与最终目标
录制时主智能体对固定对手的胜率约81%到83%,从第39,000步左右开始持平;补刀上以48比17大幅领先;它几乎从不攻击满血防御塔。作为参照,它对脚本DuelBot的胜率是98%到99%,而一个用排位回放做行为克隆的智能体对这些检查点只赢0%到6%。
作者的最终目标很明确:做出足够强的AI,能在BO5里击败T1/Faker(或当时的世界冠军)。从这场Ezreal 1v1看,距离那个目标还有明显的路要走,但联赛式训练加剥削者机制,已经让一个非脚本智能体在受限规则下展现出了可解释的策略进化。
相关推荐

MiniMax H3开源工作流:低显存也能打造呼吸感皮肤
本文介绍B站UP主分享的MiniMax H3双采样工作流,通过融合模型、破线LoRA和低显存节点,解决AI人物面部油腻问题,并让12G显存设备也能运行。包含模型搭配、双采样逻辑与参数设置详解。

手机本地大模型+ESP32:自制热量提醒器
B站UP主开源了一个热量摄入提醒器项目:手机APP用miniCPM开源模型本地拍照识别食物并估算热量,ESP32小屏幕同步数据,用绿黄红圆环展示摄入状态,可磁吸在冰箱门上随时提醒。

12GB显卡跑125B MoE?Strata三级协同引擎解析
开源C++引擎Strata让12GB-16GB家用显卡本地跑125B MoE模型,生成速度达40-95 Token/s。本文拆解其显存、内存、固态三级协同原理,说明模型选型前提、硬件配置门槛与启动方式。