CPU 与 NPU 精度对比实战:Timer-S1 在昇腾上 max_abs_error 仅 0.0125
2026/8/21 19:09:37 网站建设 项目流程

CPU 与 NPU 精度对比实战:Timer-S1 在昇腾上 max_abs_error 仅 0.0125

【免费下载链接】timer-s1-npu项目地址: https://ai.gitcode.com/atlasleong/timer-s1-npu

Timer-S1 是字节跳动开源的时间序列基础模型,采用 decoder-only 的 MoE Transformer 架构,总参数约 8.3B、每 token 仅激活 0.75B,可零样本输出 9 个分位的预测结果。在将 Timer-S1 迁移到昇腾 NPU 的实战中,我们通过 CPU 与 NPU 精度对比验证了推理数值的一致性:在固定输入下,max_abs_error 仅 0.0125,mean_abs_error 0.0031,离散分类输出完全一致。本文完整复盘这次 CPU 与 NPU 精度对比的评测方法、判定标准与复现步骤,帮你在昇腾 NPU 上快速建立大模型推理精度验证的完整流程。

认识 Timer-S1:用基础模型做时间序列预测 🚀

Timer-S1 是一个亿级参数的时间序列基础模型(Time Series Foundation Model),与 LLM 类似,它经过海量时序数据预训练,可以直接对未见过的数据集做零样本(zero-shot)预测,无需额外微调。它的核心特性包括:

  • 架构:decoder-only MoE Transformer,24 个基础层 + 16 个 MTP 层
  • 规模:总参数约 8.3B,激活参数约 0.75B,32 个专家、每 token 激活 2 个
  • 输入:原始浮点时间序列(batch, lookback),本项目固定为(1, 288)
  • 输出:分位数预测 logits,形状(1, 9, 16),即 9 个分位(0.1~0.9)× 16 个预测步

在 model/README.md 中可以看到官方的 Quickstart 用法:加载模型后直接model.generate(seqs, max_new_tokens=256, revin=True)即可得到分位数预测。模型的定制实现代码位于 model/modeling_TimerS1.py、model/configuration_TimerS1.py 与 model/ts_generation_mixin.py。

为什么要做 CPU 与 NPU 精度对比?🎯

大模型在 CPU 上通常以 float32 精度计算,而昇腾 NPU 为了提升吞吐和显存效率,常以 bfloat16 精度进行前向推理。两种精度的浮点表示范围与舍入方式不同,迁移后输出数值可能产生微小偏差。对于时间序列预测这类对数值敏感的任务,需要回答一个问题:

同样的权重、同样的输入,NPU 算出来的结果和 CPU 参考结果差多少?还能不能信任?

这正是 CPU 与 NPU 精度对比的价值所在——它不是"能不能跑通"的冒烟测试,而是量化级的数值一致性验证。

CPU 与 NPU 精度对比的评测方法 📐

本项目的精度对比遵循严格的可复现流程,保证结果真实可信:

  1. 固定输入:固定随机种子 42,生成确定性输入序列(1, 288),输入前 8 个值为1.9269, 1.4873, 0.9007, -2.1055, ...,确保每次运行完全一致
  2. 同一权重快照:CPU 与 NPU 使用同一份固定 revision 的模型权重(4 个 safetensors 分片,共约 16.6 GB)
  3. 对比对象:对position_logits逐元素计算绝对误差,并对比离散派生输出class_ids
  4. 判定指标
    • max_abs_error:最大绝对误差
    • mean_abs_error:平均绝对误差
    • discrete_outputs_equal:离散分类输出是否一致

核心结果:max_abs_error 仅 0.0125 ✨

这是整个 CPU 与 NPU 精度对比中最亮眼的数据,全部来自真实测量(README.md 第 6.1 节):

指标实测值
position_logits形状(1, 9, 16)
max_abs_error0.012511014938354492(约 0.0125)
mean_abs_error0.0031260023824870586
discrete_outputs_equaltrue(CPU / NPU 的class_ids均为[8]
NaN / Inf
重复前向max_abs_diffCPU / NPU 各自为0.0

也就是说,NPU 上 bf16 推理与 CPU 参考输出相比,最大单点误差只有 0.0125,平均误差仅 0.0031,且重复前向结果完全确定(0.0 差异),说明昇腾 NPU 上的推理结果稳定可靠。

为了让结论更扎实,项目还做了10 样本回归测试:10 个独立子进程、共 1440 个元素,max_abs_error为 0.0197,mean_abs_error为 0.0030,离散输出匹配 10/10。最终判定accepted=true(阈值:max_abs_error≤1.0mean_abs_error≤0.1discrete_agreement_min≥0.8),实测精度远超阈值要求。

NPU 推理结果实测证据 📸

下图是模型在昇腾 NPU 上最终适配验收的真实日志截图,可以看到完整的输出标记:输入序列特征、分位数预测FORECAST、离散分类PREDICTED_CLASS=8,以及INPUT_DEVICE=npu:0CPU_FALLBACK=falseEXIT_CODE=0等关键状态:

日志中INFERENCE_WALL_MS=391.713642是单次同步前向的墙钟耗时;分位数预测的中位行均值FORECAST_MEAN=0.075945、标准差0.022661,与精度对比阶段的证据完全吻合。

昇腾 NPU 设备与运行环境 ⚙️

本次 CPU 与 NPU 精度对比运行在昇腾 910B4 上。下图为npu-smi设备快照,展示了 NPU 芯片的功耗、温度、HBM 内存占用以及推理进程状态:

组件版本
硬件Ascend 910B4-1(逻辑npu:0
操作系统openEuler(aarch64)
CANN8.5.1
torch / torch_npu2.9.0
transformers4.57.6
Python3.11.14

注意:交付脚本通过torch.npu.is_available()强校验 NPU 可用,不降级到 CPUCPU_FALLBACK=false),保证了精度对比的双方确实是"NPU 真实计算"而非 CPU 回退。

端到端适配工作流 🔄

从模型下载、源码安全审计、CPU/NPU 精度对比,到性能评测与最终交付,整个过程被记录为可追溯的适配工作流。下图展示了各阶段的执行记录:

整个流程的关键结论:模型是纯 PyTorch 实现、无 CUDA 专属 API,通过torch_npu注册的 NPU 后端即可运行,无需打迁移补丁,这也是精度对比结果如此干净的前提之一。

如何复现 CPU 与 NPU 精度对比 🛠️

如果你想亲手复现这份精度对比结果,操作非常简单:

git clone https://gitcode.com/atlasleong/timer-s1-npu cd timer-s1-npu python inference.py

仓库内的核心文件:

  • inference.py:交付推理脚本,自包含、无外部依赖,执行权重完整性校验(CHECK_WEIGHTS_OK=4/4)→ warmup 前向 → 计时前向 → 证据落盘校验(ASSETS_VERIFIED=true
  • model/:完整模型快照,4 个 safetensors 分片 + 配置文件 + 定制建模代码
  • assets/:推理证据数组与摘要(inference_summary.json 记录了median_forecastforecast_meaninference_wall_ms等真实结果)
  • requirements.txt:交付运行依赖(torch / torch_npu 由昇腾 worker 镜像固定,不从 PyPI 安装)

复现完成后,你可以对比position_logits.npy与 CPU 参考输出,自行计算max_abs_error——预计你会得到与本文一致的结论:约 0.0125

总结 ✅

通过这次 CPU 与 NPU 精度对比实战,我们可以确认:Timer-S1 在昇腾 NPU 上以 bf16 精度推理,与 CPU float32 参考结果的最大绝对误差仅 0.0125,平均误差 0.0031,离散分类输出完全一致,完全满足大模型推理的数值一致性要求。

这套"固定种子 + 同一权重 + 双端对比 + 阈值判定"的精度验证方法论,同样适用于其他大模型在昇腾 NPU 上的迁移验证。如果你正在做 NPU 推理适配,建议把max_abs_error作为每次发布的必查指标——数据会告诉你迁移是否真正"无损"。

【免费下载链接】timer-s1-npu项目地址: https://ai.gitcode.com/atlasleong/timer-s1-npu

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询