2301_76761127/xecg_base_model_v1-npu
模型介绍
文件和版本
Pull Requests
讨论
分析

xECG_base_model_v1 · Ascend NPU 迁移验收

1. 模型与版本

  • 模型:riccardolunelli/xECG_base_model_v1,12 导联 ECG 基础模型(patch embedding、 双向 xLSTM 与平均池化表示)。
  • 官方镜像:https://ai.gitcode.com/hf_mirrors/riccardolunelli/xECG_base_model_v1
  • 固定 revision:b06053253a9bd21445d8189b21813484929a3ffa
  • 权重:model.safetensors;许可:MIT。

2. 当前验收口径

本仓只接受一次真实 Hosted Ascend NPU 推理,不运行 CPU Golden,不进行精度评估, 也不进行 CPU/NPU 或 NPU 双跑数值比较。inference.py 是唯一验收入口,并执行以下 fail-closed 门禁:

  1. --device 只接受 npu:N;CPU、CUDA 或 NPU 不可用均非零退出,无设备回退。
  2. 离线检查运行所需模型文件存在。
  3. 直接调用快照中的真实 xECG.forward(x);根模块 pre/post hook 必须各观测到一次调用。
  4. 全部参数、buffer、真实 forward 输入和输出必须在同一 NPU 设备。
  5. 在 NPU 上检查输出形状、335872 个输出值、有限值和输入未被修改;任何失败均非零退出。
  6. 仅在以上门禁和同 PID 取证等待结束后,输出才复制到主机用于 JSON 序列化。

checkpoint 的 sLSTM 参数按 CUDA backend 布局保存。本入口用 xlstm 自带的 ext2int 等价 reshape/permute 公式转换布局,再以纯 PyTorch vanilla backend 在 NPU 执行;这是权重装载转换,不是 CPU 推理桥接。模型 forward 的输入、参数、buffer 与输出 均由上述 hook 和设备门禁验证。

3. 环境与依赖

  • Hosted 平台栈:CANN / PyTorch / torch_npu 保持平台预装版本,不在本仓 requirements 中替换。
  • 模型级依赖:xlstm==2.0.4、safetensors。
  • 快照目录应包含 config.json、xECG.py、上游 requirements.txt 和 model.safetensors;运行全程离线。

在全新容器中按固定公开地址和 revision 获取模型到 ./model,再安装单份锁版 模型层依赖。本任务没有辅助模型或外部源码包。

git clone https://ai.gitcode.com/hf_mirrors/riccardolunelli/xECG_base_model_v1 ./model
git -C ./model checkout b06053253a9bd21445d8189b21813484929a3ffa
git -C ./model lfs pull

python -m venv .venv --system-site-packages
. .venv/bin/activate
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

requirements.txt 不含 wheel、本地路径,也不替换平台 CANN、torch 或 torch_npu。 入口不做身份、revision、SHA、manifest 或固定参数量核验,只保留 NPU-only、 shape/count/finite、真实 forward 与退出码门禁。

4. 唯一 Hosted 运行命令

模型快照放在 ./model 后,只运行以下命令;90 秒窗口用于同一 PID 的两个时间点 设备调用截图,最长允许值为 600 秒:

. .venv/bin/activate
EVIDENCE_HOLD_SECONDS=90 python inference.py --model_path ./model --device npu:0 --seed 20260816 --output_json ./result.json

终端打印 EVIDENCE_HOLD_START 后,保留该进程并在另一终端两次执行 npu-smi info。 两张设备图必须能对应 JSON 中同一个 pid,并展示该 PID 的 NPU 使用;禁止提前释放容器。

5. 固定输入与输出

  • 输入:8 条确定性合成 12 导联 ECG 样式信号,形状 [8,1000,12],导联顺序 i,ii,iii,avr,avl,avf,v1,v2,v3,v4,v5,v6。
  • 真实输出:cls_pooled [8,1024] 与 patch_embeddings [8,40,1024], 共 335872 个值,全部必须有限。
  • hosted_result.json 必须包含设备链、根 forward 调用次数、PID、输出计数和 exit_status=0;它是 Hosted 实跑结果,不得用前半段记录代填。

6. Hosted 真实运行记录(待执行)

字段Hosted 实际值
容器/运行时间Hosted,2026-08-17T20:06:35Z,RUN hosted-npu-20260817T200635Z-evidence2
NPU 名称Ascend910_9362
PID25505
请求/参数/buffer/forward 输入/forward 输出设备npu:0 / npu:0 / npu:0 / ['npu:0'] / ['npu:0']
根 forward 调用次数1
输出值数与有限性335872 / true
forward_ms(不含取证等待)388.6695420369506
npu_result.json SHA-256284e043bf08e89662b18ad5a27cea953d4232962951febd29231a81b0266ae78
exit_status0

上表任一字段尚未由真实跑次填充,或六张图片任一不是本次真实 Hosted 证据时,不得 push、 不得提交比赛。前半段曾在 Ascend910B3 完成 NPU 运行,仅是诊断基线,不能冒充本表结果。

7. 三张主截图

7.1 Agent 工作流规划

提示词必须让 Agent 针对本模型规划固定 revision 校验、依赖隔离、sLSTM backend 适配、 full-NPU fail-closed、真实运行取证和仓库收口工作流。截图只需同时看见模型专属提示词与 模型已经开始给出的迁移规划;不要要求它伪造运行结果。

Agent 工作流规划图 1

7.2 NPU 设备调用

两张图必须来自 EVIDENCE_HOLD_SECONDS 期间的两个时间点,能关联同一推理 PID,并显示 该 PID 正在使用 NPU。

NPU 设备调用图 1

7.3 模型运行结果

两张图必须展示唯一命令的真实终端输出和 hosted_result.json 关键字段;不得使用 前半段数据、占位数据或手工编造指标。

模型运行结果图 1

稍晚时刻的第二组三图归档在独立图片仓,不混入参赛仓。

8. 失败语义与历史文件

缺少模型文件、非 NPU 设备、NPU 不可用、设备链混用、根 forward 未真实 执行一次、输出形状/计数/有限性不符、或 JSON 写入失败,均必须以非零退出结束。

accuracy/accuracy.json 与 accuracy/compare_accuracy.py 是旧的前半段双跑审计材料, 保留用于来源追溯,但不属于当前 full-NPU-only Hosted 验收步骤,也不得在 README 中声明为 本次精度结果。

本仓为 2301_76761127 队伍交付件(与备份账号合并提交)。