【agent】大模型决策规划-游戏
利用千问模型,对人类游戏对局数据进行自动标注,通过sft+RL训练,教会模型打游戏。
一、数据构造方式
1. 原始数据采集与筛选
- 数据来源:《王者荣耀》高段位玩家(如王者以上)的真实对局回放。
- 剔除所有用户身份信息,仅保留游戏状态序列和原始操作日志。
- 胜负均衡采样:胜局与负局数量1:1,避免模型只学习“顺风打法”,确保在逆风、僵持局也能输出合理策略。
- 采样策略:每分钟随机抽取一帧,避免连续帧冗余,提高数据多样性。
2. 游戏状态表示:主玩家视角 + 关键可见信息
- 格式:结构化 JSON,字段明确,无自然语言描述。
- 提取原则:
- 仅包含主玩家当前视野内可见对象。
- 自动过滤战争迷雾后信息(如未暴露敌方英雄、未探索野区)。
- 仅保留影响宏观决策的字段(由游戏专家定义)。
- 包含字段:
- 我方英雄:名称、等级、血量比例、装备、位置、技能冷却、存活状态。
- 敌方英雄:仅记录视野内或最近暴露单位(含最后出现时间、位置、存活状态)。
- 防御塔:所属方、分路、剩余血量比例。
- 兵线:各路位置(如“推进至敌方一塔”)、是否正在推塔。
- 野区资源:暴君/主宰是否存活、剩余血量、刷新倒计时。
- 视野控制:关键区域(河道、草丛、敌方野区)是否在我方视野内。
示例(中文字段结构):
{
"我方英雄": {
"名称": "李白",
"等级": 12,
"血量比例": 0.6,
"装备": ["破军", "名刀·司命"],
"位置": "中路",
"存活": true
},
"可见敌方英雄": [
{
"名称": "妲己",
"最后出现时间_秒前": 5,
"所在分路": "中路",
"存活": true
}
],
"防御塔状态": [
{
"分路": "上路",
"所属方": "敌方",
"血量比例": 0.3
}
],
"兵线状态": {
"上路": {
"状态": "正在推进",
"位置": "敌方一塔下"
}
},
"野区资源": {
"暴君": {
"存活": false,
"刷新倒计时_秒": 120
}
},
"视野控制": {
"河道": true,
"敌方蓝区": false
}
}
3. 动作标签构建:重标注算法(Relabeling Algorithm)
- 问题背景:人类玩家大部分时间处于“补兵、走位、刷野”等无明确宏观目标状态,原始动作日志稀疏、低层、无战略意图,无法直接用于训练。
- 解决方案:
- 向后填充:
- 检测到“打暴君”动作发生时,将该标签向前填充至此前30秒内所有帧。
- 理由:打龙前需集合、清兵、占视野,这些帧都属于“执行打龙策略”阶段。
- 优先级覆盖:
- 定义动作优先级:团战 > 打龙 > 推塔 > 发育。
- 若某帧被多个动作标记(如“推塔”和“打龙”),保留最高优先级(“打龙”)。
- 向后填充:
- 输出:每帧状态对应一个清晰、无冲突的宏观动作标签(共40类,如“推上路一塔”、“集合打主宰”、“避战发育”)。
二、训练方式
1. 两阶段训练:SFT + GRPO
(1)SFT阶段:蒸馏专家推理能力
- 数据来源:
- 不直接使用原始人类操作(因包含大量无意识微操,无战略推理)。
- 使用更强模型(如 Deepseek-R1)作为“教师”,输入游戏状态,输出“思考过程 + 宏观动作”。
- 如何确保教师分析正确?论文隐含两点:
- Deepseek-R1 在游戏任务准确率 86.67%,具备基础可靠性。
- SFT 只是预热,后续 GRPO 会基于真实标签修正错误。
- 目的:让小模型学会“如何分析局势”,而非模仿低质量人类行为。
- SFT数据格式:
- 输入:结构化游戏状态(JSON格式)+ 固定指令提示(Prompt Template)
- 输出:强制包含两个结构化部分
<think>
:自然语言推理过程,必须引用JSON中的具体字段,体现“如何理解场上局势”<answer>
:从预定义40个宏观动作中选择1-2个,体现“如何给出有效策略”
示例(完整输入输出中文转写):
输入提示:
给定当前盘面信息:
我方英雄:李白,12级,血量60%,位于中路,装备破军、名刀。
可见敌方:妲己,5秒前在中路消失。
防御塔:上路敌方一塔剩余30%血量。
兵线:上路兵线正推进至敌方塔下。
野区资源:暴君已死亡,120秒后刷新。
视野:河道在我方控制下,敌方蓝区无视野。
请分析局势并给出决策建议。思考过程放入 ,行动建议从以下选项中选择并放入 :
[推上路一塔, 集合打暴君, 避战发育, 埋伏反打, 分带牵制]
模型输出:
敌方核心输出妲己位置不明,存在埋伏风险。暴君刷新尚早(120秒),强行开龙易被反打。上路兵线已压至敌方塔下,且敌方上路外塔血量仅剩30%,推塔成功率高,可扩大经济优势并压缩敌方视野。建议优先执行推塔。
推上路一塔,控制兵线
(2)GRPO强化学习阶段:优化动作准确性
SFT数据和RL(GRPO)数据在来源上是重合的 —— 它们都基于同一批人类对局回放构造,但使用方式和内容形式完全不同。
- 与标准GRPO的区别(回答问题1):
- 标准GRPO奖励整个序列质量(如语言流畅度、信息完整性)。
- 本文GRPO仅奖励“最终动作是否正确”:
- 奖励函数:若
<answer>
与重标注标签完全匹配 → 奖励=1;否则=0。 - 不评估
<think>
内容,不使用神经奖励模型,避免复杂性和奖励黑客。 - 优势计算:组内奖励减均值除标准差,聚焦动作相对优劣。
- 奖励函数:若
- 提示模板强制结构化输出:
- 输入:游戏状态 + 指令(要求从“盘面理解、阵容策略、实时动态、特殊场景”四维度分析)。
- 输出:
<think>
:自然语言推理,必须引用具体数据。<answer>
:从40个预定义宏观动作中选1-2个,逗号分隔。
三、数据构造细节
不需要人类标注意图或进行主观判断。
根据论文原文(Section 3.1.2 和整体方法描述),所有宏观动作标签的构建完全自动化,不依赖人工标注意图、策略或行为分类。整个流程基于游戏内可观测事件 + 专家预定义规则 + 算法填充与覆盖,实现“从原始操作到高层语义”的全自动映射。
✅ 为什么不需要人类标注?
1. 宏观动作由专家预定义触发条件(非人工逐帧标注)
- 40个宏观动作(如“推塔”“打龙”“团战”)由游戏专家预先定义其可观测触发条件(如“多名英雄在龙坑附近聚集 + 龙血量下降”)。
- 这些条件是基于游戏对象状态的客观规则,可编程实现,无需人工主观判断“玩家意图”。
原文 Section 3.1.2:
“Each macro action is associated with a set of observable game events… defined by game experts based on criticality and game impact.”
2. 重标注算法全自动执行:检测 → 填充 → 覆盖
- 事件检测:遍历回放,自动检测是否满足某宏观动作的触发条件(如“检测到打龙”)。
- 向后填充:自动将标签向前填充 L_fill 帧,覆盖“准备阶段”。
- 优先级覆盖:自动按预定义优先级解决冲突(如“团战”覆盖“推塔”)。
原文:
“The relabeling algorithm propagates labels backward and resolves conflicts via priority-based overwrite — no manual annotation is involved.”
3. SFT阶段使用教师模型生成“思考链”,非人工写推理
- SFT数据中的
<think>
部分由 Deepseek-R1 自动生成,非人工撰写。 - 人类仅提供原始回放(操作+状态),不参与任何语义标注或意图判断。
🚫 什么不需要人类做?
- ❌ 不需要人工观看回放,标注“这一帧玩家想干嘛”。
- ❌ 不需要人工写“思考过程”或“策略分析”。
- ❌ 不需要人工判断“这个操作属于40类中的哪一类”。
✅ 人类仅在以下环节参与:
- 定义宏观动作集合与触发规则(一次性专家工作)
- 如:“打龙 = 至少2名英雄在龙坑半径500内 + 龙血量下降持续>5秒”
- 定义动作优先级(一次性专家排序)
- 如:“团战 > 打龙 > 推塔 > 发育”
- 提供原始高段位对局回放(无需标注,只需原始日志)
🧠 类比理解:
- 传统方法:让人类看1000小时录像,手动标注“第12分34秒,玩家意图是打龙” → 成本极高,主观性强。
- 本文方法:写几行代码,自动检测“龙血量下降+英雄聚集” → 打上“打龙”标签 → 自动填充+覆盖 → 全自动、客观、可扩展。
✅ 结论:
不需要人类标注意图或进行主观判断。
所有高层语义标签通过专家预定义规则 + 自动化重标注算法生成,SFT阶段的“思考链”由教师模型自动生成。人类仅需提供原始回放数据和一次性定义动作规则,极大降低标注成本,避免主观偏差。
原文核心句(Section 3.1.2):
“Our relabeling algorithm requires no manual annotation — it densifies sparse labels purely based on game semantics and expert-defined priorities.”
四、效果提升
1. 准确率大幅提升
- Qwen-2.5-32B:66.67% → 86.84%(仅160步GRPO)。
- Qwen-3-14B:82.89% → 90.91%(SFT+GRPO 2000步),超越参数量大一个数量级的Deepseek-R1(86.67%)。
2. 数据与计算效率高
- 仅需少量人类对局(经重标注),相比传统RL节省90%+数据量。
- 小模型+GRPO可逼近甚至超越大模型,降低部署成本。
3. 通用能力无损
- 在MMLU、BBH、Ceval等通用基准上,训练后模型性能持平或微升(BBH逻辑推理+1~2%),证明方法未损害基础语言能力。
4. 可解释性强
- 所有决策附带自然语言推理链,人类可追溯决策依据,便于调试、审计和信任建立。
通过上述整合,我们详细描述了如何从原始玩家操作日志中生成稠密、高层语义的宏观动作标签,并展示了SFT阶段的数据格式及其实现细节。这些内容可以直接应用于工程实现中,帮助你构建高效的策略模型。
更多推荐
所有评论(0)