K-ON111111/ppo-Huggy
模型介绍
文件和版本
Pull Requests
讨论
分析

ppo-Huggy — 昇腾 NPU 适配模型

赛事: 昇腾 Model Agent 模型适配大赛(第二季) 引擎: torch_npu + 自建 PyTorch MLP(ML-Agents 权重转换) 硬件: Ascend 910B 系列(实测 Ascend910B4) 标签: npu ascend pytorch transformers

📖 模型简介

属性值
原始模型PaulVialard/ppo-Huggy
架构Unity ML-Agents PPO 连续策略 MLP(59→512×3→21)
任务类型强化学习策略推理(RL Policy,Huggy 小狗抓棍)
输入格式59 维观测向量
输出格式21 维连续动作

🔧 环境依赖与代码获取

⚠️ 本仓库不包含模型权重(交付件仅 inference.py / readme.md / requirements.txt / assets/), 推理前必须先从原始模型仓单独下载权重(Huggy/checkpoint.pt)。

依赖清单(requirements.txt):torch / torch_npu、numpy

代码获取:inference.py 内置 ML-Agents checkpoint → PyTorch MLP 转换逻辑 (读取 Policy state_dict,重建 59→512×3→21 连续策略网络)。

🚀 推理步骤

# 1. 安装依赖
pip install -r requirements.txt -i https://repo.huaweicloud.com/repository/pypi/simple/

# 2. 下载模型权重(仓库不含权重,必须单独下载)
git clone https://gitcode.com/hf_mirrors/PaulVialard/ppo-Huggy.git .
git lfs pull

# 3. 运行 NPU 推理
python3 inference.py --model_path . --device npu:0

🧪 测试用例

用例 1: 策略推理(59 维观测 → 21 维动作)

python3 inference.py --model_path . --device npu:0

预期输出:

[Model Agent] ✅ NPU 设备就绪: Ascend910B4
[Model Agent] ✅ 模型加载完成 → npu:0 (PPO Actor, obs→action)
[Model Agent] 📊 输入观测: 59 维
[Model Agent] ✅ 推理完成 → 动作 21 维, 耗时 141 ms
[Model Agent] 📈 动作前5: [0.262, -0.19, 0.296, 0.207, -0.169]
[Model Agent] ✅ 结果已保存 → inference_result.json

📁 目录结构

.
├── inference.py          # NPU 推理脚本
├── readme.md             # 本文件
├── requirements.txt      # 依赖清单
└── assets/               # 截图素材

📝 适配说明

本模型由 昇腾 Model Agent 自动完成 NPU 适配。 Unity ML-Agents PPO 策略(Huggy)迁移至昇腾 NPU:

  • inference.py 读取 ML-Agents checkpoint.pt 的 Policy state_dict,重建 PyTorch MLP (观测归一化 + 3 层 ReLU + 连续动作均值头),权重直接映射加载;
  • 调用 torch_npu 完成设备初始化,观测经归一化后前向输出 21 维动作。