尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

一张图看懂 ppo-Huggy-NPU:inference.py 的 11 种推理模式终极详解

一张图看懂 ppo-Huggy-NPU:inference.py 的 11 种推理模式终极详解 一张图看懂 ppo-Huggy-NPUinference.py 的 11 种推理模式终极详解【免费下载链接】ppo-Huggy-NPU项目地址: https://ai.gitcode.com/z_studio/ppo-Huggy-NPUppo-Huggy-NPU 是一个把 Hugging Face Deep RL 课程经典模型 **Huggy the Dog 拥抱机器人**完整跑在昇腾 910B NPU 上的开源项目核心入口就是 inference.py 这个推理脚本。它一口气内置了11 种推理模式从最基础的确定性动作推理、随机采样推理到批量推理、延迟基准、精度对照、ONNX 交叉验证……新手第一次接触往往被命令行参数劝退。本文用「一张图 速查表」带你彻底搞懂每种模式怎么用、什么时候用、输出怎么看轻松上手昇腾 NPU 强化学习推理。一张图看懂 11 种推理模式全景inference.py 的 11 种推理模式 ├── 环境与模型 │ ├── info 环境 / 模型信息速查 │ └── checkpoints 检查点列表与默认选择 ├── 日常推理 │ ├── action 确定性动作推理最常用 │ ├── sample 随机采样动作推理带探索噪声 │ └── batch 批量推理吞吐场景 ├── 验证与评测 │ ├── precision NPU vs CPU 精度对照 │ ├── onnx-compare ONNX 交叉验证 │ ├── fingerprint 动作序列指纹验证确定性 │ └── stats 闭环滚动统计 └── ⚡ 性能与导出 ├── benchmark 延迟基准性能测试 └── export-onnx 导出重建 ONNX 模型所有模式都在同一入口管理参数注册与分发逻辑见 inference.py实测数据见 README.md 的 50 组用例章节。Huggy 是什么为什么要上 NPUHuggy 是 Unity ML-Agents 用PPO 强化学习算法训练的小狗任务是扑向并拥抱投出的棍子。它不是大语言模型而是一个轻量 MLP 策略网络观测 59 维 → 隐藏层 3×512SiLU 激活→ 动作 21 维参数量仅566,805fp32 权重约 2.3 MB引擎选择torch_npu直接 forwardvLLM-Ascend / SGLang 面向 token 生成加载不了这类策略网络正因为模型极小单步推理延迟只有0.37 ms 左右特别适合用来学习强化学习策略网络如何在 NPU 上推理这一整套方法论。快速上手3 步跑通第一个推理模式第 1 步克隆并准备环境git clone https://gitcode.com/z_studio/ppo-Huggy-NPU cd ppo-Huggy-NPU /usr/local/python3.11.14/bin/python3 -m venv --system-site-packages venv ./venv/bin/pip install -r requirements.txt依赖清单见 requirements.txttorch / torch-npu为昇腾系统预置组件普通 pip 不要覆盖。第 2 步确认 NPU 可用./venv/bin/python inference.py --mode info第 3 步跑一个确定性动作推理./venv/bin/python inference.py --mode action --obs random --seed 0终端会打印action[:8]、动作范围应在 [-1,1]和 L2 范数最后输出SUCCESS即成功 。11 种推理模式逐一详解模式一info — 环境与模型信息速查一条命令查清 NPU 状态、torch/torch_npu 版本、检查点路径、参数量、网络结构。新手建议第一步就跑它确认环境无误再继续。./venv/bin/python inference.py --mode info模式二checkpoints — 检查点管理列出模型目录下全部 201 个.pt训练检查点并提示默认加载的是最终 2M 步的Huggy-2000049.pt。当你需要换权重时用--ckpt指定路径即可。模式三action — 确定性动作推理最常用给定 59 维观测输出 21 维确定性动作clip(mu,±3)/3落在 [-1,1]。观测支持多种便捷写法./venv/bin/python inference.py --mode action --obs random --seed 0 # 随机观测 ./venv/bin/python inference.py --mode action --obs zeros # 全零观测 ./venv/bin/python inference.py --mode action --obs 0.1,0.2,... # 自定义 59 维生产部署默认用float32实测与 CPU 参考最大误差仅 1.1e-6。模式四sample — 随机采样动作推理在 mu 基础上叠加高斯探索噪声sigma exp(log_sigma)适合训练评估和 RL 探索场景。NPU 没有随机数生成器脚本在 CPU 按 seed 生成噪声再搬运同 seed 两次采样逐位一致可精确复现。./venv/bin/python inference.py --mode sample --obs random --seed 1模式五batch — 批量推理把多个观测一次性送入网络batch 16~512 均可适合吞吐受限场景。相同 seed 下批量输出与单样本一致验证了批量维度无关性。./venv/bin/python inference.py --mode batch --batch 32注意首次前向包含算子编译开销约 140 ms稳态单步延迟请用 benchmark 模式测量。模式六benchmark — 延迟基准测试内置预热warmup runs/10输出 avg / p50 / p95 / p99 / max 分位延迟。实测单步avg 0.37 ms、p99 0.40 msfp32, npu:0这是衡量 NPU 推理性能的标准姿势。./venv/bin/python inference.py --mode benchmark --runs 200模式七precision — NPU vs CPU 精度对照用 100 个正态采样观测对比 NPU 与 CPU fp32 参考输出计算余弦相似度 最大绝对误差。实测 fp32 余弦相似度 1.0、最大误差 1.1e-6 ✅fp16 误差 ~1e-3 可接受bf16 误差超阈值不建议生产使用。模式八onnx-compare — ONNX 交叉验证把 torch 重建网络与官方Huggy.onnxonnxruntime CPU逐样本对比最大偏差 8e-7证明重建的网络结构与数值完全正确。这是整个适配流程的金标准验证。./venv/bin/python inference.py --mode onnx-compare --batch 64 --seed 7模式九fingerprint — 动作序列指纹生成一段动作序列的 sha256 指纹同 seed 跑两次结果逐位一致用哈希值固化验证 NPU 推理的确定性CI 里非常好用。./venv/bin/python inference.py --mode fingerprint --seed 7 --steps 64模式十stats — 闭环滚动统计没有 Unity 环境也能演示策略闭环脚本用合成动力学滚动多局 rollout统计动作幅度、是否全部落在 [-1,1]、平均单步耗时。适合快速评估策略稳定性。./venv/bin/python inference.py --mode stats --rollouts 5 --steps 50模式十一export-onnx — 导出重建 ONNX把 torch_npu 加载的权重回导为assets/huggy_rebuilt.onnx与官方导出逐位一致max|diff| 0.0验证权重可移植性。完整工作流见 AGENT_WORKFLOW.md。./venv/bin/python inference.py --mode export-onnx11 种模式 关键参数速查表模式一句话用途推荐命令示例info环境信息速查--mode infocheckpoints检查点管理--mode checkpointsaction确定性动作推理--mode action --obs random --seed 0sample随机采样推理--mode sample --obs random --seed 1batch批量推理--mode batch --batch 32benchmark延迟基准--mode benchmark --runs 200precision精度对照--mode precision --dtype float32onnx-compareONNX 交叉验证--mode onnx-compare --batch 64fingerprint推理确定性验证--mode fingerprint --seed 7 --steps 64stats闭环滚动统计--mode stats --rollouts 5 --steps 50export-onnxONNX 导出--mode export-onnx通用参数--device npu:0 / npu:1 / cpu、--dtype float32 / float16 / bfloat16、--seed、--obs。新手避坑指南 精度选 float32fp16 可接受、bf16 误差超阈值生产请用--dtype float32。归一化统计量必须保持 float32running_variance是累计和可达 1e5强转 fp16 会溢出为 inf 导致 NaN脚本已在 inference.py 中强制处理。首次前向慢是正常的含算子编译开销测性能记得用benchmark带预热。NPU 随机数可复现sample模式同 seed 逐位一致这是刻意设计而非 bug。vLLM 用不了Huggy 是 RL 策略网络不是 LLM必须走 torch_npu 直接 forward。一键重跑 50 组完整测试项目自带 run_tests.sh覆盖 50 组用例15 组确定性动作 8 组随机采样 6 组批量 4 组精度 3 组 ONNX 对比 3 组指纹 3 组闭环统计 4 组基准 导出/双卡实测 49 组 SUCCESS唯一未达标的是非推荐的 bf16 精度bash run_tests.sh # 输出写入 logs/test_cases.log至此ppo-Huggy-NPU 的 11 种推理模式你已经全部掌握。从info确认环境、action跑通单步到benchmark测性能、onnx-compare做交叉验证——一条完整的学习路径就这样打通了快动手试试吧【免费下载链接】ppo-Huggy-NPU项目地址: https://ai.gitcode.com/z_studio/ppo-Huggy-NPU创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表