ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

NanoJev 专家轨迹采集实战:双环境同步 ViZDoom 如何让 AI 学会瞄准移动目标射击

NanoJev 专家轨迹采集实战:双环境同步 ViZDoom 如何让 AI 学会瞄准移动目标射击 NanoJev 专家轨迹采集实战双环境同步 ViZDoom 如何让 AI 学会瞄准移动目标射击【免费下载链接】NanoJevA nano replica of Jev: parallel decisions, dynamic candidates, and an end-to-end training pipeline.项目地址: https://gitcode.com/gh_mirrors/na/NanoJev在NanoJev 专家轨迹采集实践中如何用 ViZDoom 双环境同步机制采集高质量射击演示数据NanoJev 是一个 0.6B 参数的并行决策模型通过让一个纯视觉专家在一套冻结的 ViZDoom 环境中逐 tick 扮演射击高手再把它的动作蒸馏给学生模型最终让小模型学会在 Predict Position 场景中瞄准并击落移动目标。这篇文章带你看懂这条端到端管线的设计与验证细节。什么是专家轨迹采集简单说先请一位会打靶的老师在固定关卡里打几百局游戏把每一步的观察 → 动作概率完整记录下来再让学生模型模仿学习。NanoJev 的专家来自 Sonic Doom 发布的纯视觉 Predict Position 策略一个 CNN GRU 网络只吃 RGB 画面没有声音输入、没有自动瞄准、没有 Sonic Aim 辅助——它和任何普通玩家看到的画面一样靠真本事打靶。学生的任务则苛刻得多每局只有一发火箭目标会左右移动必须在正确的时间选择shoot才能命中。候选动作只有 4 个noop等待、left、right、shoot每 4 个物理 tick 决策一次。双环境同步一台专家机 一台学生机采集脚本 sonic_predict_data.py 的核心是MirroredPredictEnvironment类它同时启动两个同步的 ViZDoom 1.3.0 实例像一对孪生游戏一样逐 tick 联动。角色画面看到的素材用途专家环境160×120旧版 Freedoom 1.2.4 素材喂给视觉专家做推理学生环境320×240标准结构化可见状态记录学生模型的真实输入两个实例共享同一份场景配置、同一个随机种子、同样的按钮、奖励与终止规则。为什么要分两台机器因为专家权重是按旧版 160×120 画面训练的推理时会精确缩放为 128×72 CHW直接换素材会破坏它的输入分布而学生必须使用 NanoJev 标准的结构化观察。两边各取所需又不互相污染。关键约束写在协议文件 sonic_predict_supervision_v1.json 里每一步都必须通过tick 镜像检查两台游戏的物理状态逐 tick 哈希比对任何一个 tick 不一致就整局作废专家的每个画面输入都记录 6 项哈希原始像素、缩放后 CHW、归一化输入、GRU 状态前后形成完整的可审计链条学生观察中绝不插入专家的画面、隐藏状态或动作——学生只能靠自己的可见标签做决策每局结束后还要在只有标准环境的干净实例里独立重放整条轨迹验证奖励、转场与最终结果完全一致。专家侧的加载同样严格sonic_predict_policy.py 只允许以weights_only方式加载权重并逐项校验检查点的 SHA256、配置字段禁用声音与瞄准辅助、GRU 尺寸 512、frameskip4 等任何偏差都会直接报错拒绝加载。从 896 局游戏到 11,173 个决策问题采集产物是一个冻结的专家队列划分局数决策节奏作用Train512每 4 tick 决策一次蒸馏训练Dev / Calibration64 64每 4 tick模型选择Test128每 4 tick分布内评估OOD128每 8 tick决策节奏泛化评估共17,498 条决策记录。随后 prepare_sonic_supervision.py 把它们整理成监督数据生成11,173 个 Predict Position 问题其中 6,788 个训练问题每行问题提供两种目标Hard专家概率最高的动作与Soft专家完整的四动作概率分布原有 7,587 行 Maze、Snake、Basic 数据逐字节保留最终每个数据集共18,760 行监督只保留开火前仍有弹药的观察让学习聚焦在真正影响唯一一发火箭轨迹的决策上。混合监督训练与最终战绩训练由 run_sonic_supervision.py 编排配置见 sonic_unified_sft_v1.json四个对照组Hard/Soft × 主干学习率 1e-5/2e-5各自 600 次更新、固定种子 17、相同采样序列按 dev 加权成功率选出hard_lr1e5的 step-400 检查点随后才进入 548 局的闭式测试。训练带来的提升非常直观128 局测试集全部策略共用 epsilon-greedy 控制器与种子 17模型Predict Position移动目标射击Basic静态射击NanoJev混合专家 SFT 后27/128128/128训练前的 NanoJev11/128128/128Jev11/12856/128未调优 Qwen3-0.6B11/12856/128成功率从 8.6% 提升到21.1%配对比较中赢了 Jev 25 局、只输 9 局McNemar p≈0.009。更重要的是零回归Basic 仍保持 128/128Snake 还从 6/8 涨到 8/8——同一个检查点通吃四个游戏。本地复现要点环境依赖很轻只需要 requirements-vizdoom.txt 里的vizdoom1.3.0与gymnasium1.3.0建议在虚拟环境中安装。标准流程是两步采集python scripts/sonic_predict_data.py --cases configs/sonic_predict_supervision_v1_cases.jsonl --config configs/sonic_predict_supervision_v1.json ...8 个 CPU 并行 worker每局独立重放校验制数与训练prepare_sonic_supervision.py产出 Hard/Soft 数据集run_sonic_supervision.py跑四臂对照并生成完整报告。完整协议、验证逻辑与复现命令详见 docs/SONIC_PREDICT_POSITION.md完整评估结果与配对统计见 docs/SONIC_PREDICT_POSITION_RESULTS.md。小结这套管线的精髓在于**严格二字**专家身份哈希冻结、双环境逐 tick 镜像、独立重放、目标有效性过滤、固定种子的对照训练——每一环都让最终数据不可篡改、可复现。对新手而言它给出了一个可借鉴的完整范式如何用双环境同步采集干净的专家轨迹再用混合监督让小模型真正学会看时机、瞄移动目标的射击能力。【免费下载链接】NanoJevA nano replica of Jev: parallel decisions, dynamic candidates, and an end-to-end training pipeline.项目地址: https://gitcode.com/gh_mirrors/na/NanoJev创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表