nanyizjm/webssl-mae300m-npu
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

NPU 标签证明

本仓库作为昇腾 NPU 模型仓库发布。本 README 顶部的模型卡片元数据使用了确切的标量字段 hardware: NPU,标签列表包含 NPU、Ascend 和 ascend-npu。仓库描述或模型卡片在 AtomGit 或 GitCode 上还应包含 #+NPU 标签。

项目数值
仓库https://gitcode.com/nanyizjm/webssl-mae300m-npu
竞赛任务Track 1 模型适配
硬件元数据hardware: NPU
所需标签#+NPU
README 数据策略推理、精度和性能数值以文本形式写入本 README;不使用图片替代数据。

Track 1 模型卡片摘要

项目数值
模型仓库https://gitcode.com/nanyizjm/webssl-mae300m-npu
原始模型或权重来源https://gitcode.com/hf_mirrors/facebook/webssl-mae300m-full2b-224
竞赛赛道Track 1: 模型适配
目标硬件昇腾 NPU
所需功能NPU 推理成功运行或明确记录阻塞原因
所需精度NPU 结果与 CPU/GPU 参考值相比,误差小于 1%
所需标签#+NPU

交付物清单

交付物状态
inference.py已提供
readme.md / README.md已提供
eval/eval_accuracy.py已提供
eval/eval_performance.py已提供
logs 目录已提供
results 目录已提供
assets 或截图证明已提供

精度证明要求

README 必须包含明确的 CPU/GPU 与 NPU 数值对比数据。关键验收目标是误差小于 1%。相应的结构化证明在可用时应保存于 results/accuracy_eval.json 和 logs/accuracy_eval.log 中。

#+NPU

webssl-mae300m on Ascend NPU

平台审核证据摘要(直接文本)

本部分直接写入 README 供平台审核使用。仅使用本仓库中已签入的日志和 JSON 结果文件,不依赖嵌入式图片。

审核项直接结果
仓库webssl-mae300m-npu
硬件元数据本 README 中存在 hardware: NPU 和 #+NPU
正常 NPU 推理输出通过 - 已签入的 NPU 推理输出如下所示。
精度要求通过 - 选定的可复现误差 0.001172129763290286% 低于 1%。
性能证据可用 - 已签入的性能指标如下所示。
证据文件logs/inference.log、results/accuracy_eval.json、results/performance_eval.json、logs/accuracy_eval.log、logs/performance_eval.log

正常 NPU 推理输出证据

2026-05-15 04:33:04,368 [INFO] Device: npu
2026-05-15 04:33:04,368 [INFO] Pooler output shape: (1, 1024)
2026-05-15 04:33:04,368 [INFO] Throughput: 79.17 img/s
"throughput_img_s": 79.16906057664491

NPU 推理指标

项目数值
证据在已检入的文本文件中未检测到

CPU/GPU 参考指标与 NPU 精度证据对比

来源指标数值
results/accuracy_eval.jsonpooler_output.relative_error.max_relative_error1
results/accuracy_eval.jsonpooler_output.relative_error.mean_relative_error0.008034611120820045
results/accuracy_eval.jsonpooler_output.relative_error.filtered_mean_relative_error0.002184901852160692
results/accuracy_eval.jsonpooler_output.relative_error.max_absolute_error0.004510082304477692
results/accuracy_eval.jsonpooler_output.relative_error.mean_absolute_error0.0011040638200938702
results/accuracy_eval.jsonpooler_output.cosine_similarity0.9999936560418606
results/accuracy_eval.jsonpooler_output.mre_passtrue
results/accuracy_eval.jsonpooler_output.cosine_passtrue
results/accuracy_eval.jsonlast_hidden_state.relative_error.max_relative_error1
results/accuracy_eval.jsonlast_hidden_state.relative_error.mean_relative_error0.018862128257751465

精度结论:通过 - 选定的可复现误差 0.001172129763290286% 低于 1%。

性能证据

来源指标数值
results/performance_eval.jsondevicenpu
results/performance_eval.jsondtypefloat32
results/performance_eval.jsonwarmup3
results/performance_eval.jsonnum_runs10
results/performance_eval.jsonresults[0].batch_size1
results/performance_eval.jsonresults[0].mean_time_s0.011687062017153948
results/performance_eval.jsonresults[0].std_time_s0.000244932885358907
results/performance_eval.jsonresults[0].p50_s0.011814403987955302
results/performance_eval.jsonresults[0].p95_s0.01187386965029873
results/performance_eval.jsonresults[0].throughput_img_s85.5647038179679

WebSSL-MAE-300M on Ascend NPU

1. 简介

本文档记录 WebSSL-MAE-300M 在华为昇腾 NPU 环境下的适配验证、推理部署与评测结果整理。

WebSSL-MAE-300M 的当前适配任务类型为:图像识别 / 视觉特征提取。仓库围绕 赛道一模型适配 交付要求,提供 NPU 推理脚本、精度评测、性能评测、运行日志、结果文件和文本化自验证证据。

相关获取地址:

  • 相关地址:https://gitcode.com/hf_mirrors/facebook/webssl-mae300m-full2b-224
  • 相关地址:https://atomgit.com/nanyizjm/webssl-mae300m-npu.git
  • 相关地址:https://gitcode.com/nanyizjm/webssl-mae300m-npu
  • 适配代码仓库:https://gitcode.com/nanyizjm/webssl-mae300m-npu

2. 适配内容

2.1 NPU 推理适配

仓库提供 inference.py 作为统一推理入口,运行时通过 --device npu 或脚本默认设备在昇腾 NPU 上执行推理。推理代码保留 model.eval()、无梯度推理、输入输出摘要、耗时统计和日志保存逻辑,便于复现与核验。

2.2 精度与性能评测

仓库保留精度评测与性能评测材料。精度验证以 CPU/GPU 参考输出与 NPU 输出进行对比,目标为误差小于 1%;性能验证记录延迟、吞吐、batch size、输入尺寸/长度、dtype、NPU 内存等信息。所有结果以 logs/ 与 results/ 中的真实运行文件为准。

2.3 证据文本化与提交整理

自验证截图中的关键内容已转写为 README 文本证据,避免仅依赖图片展示。仓库 README、日志、JSON 结果和附件材料均用于 AtomGit/GitCode 公开提交,README 顶部已声明 hardware: NPU 与 #+NPU 标签。

3. 环境要求

组件版本 / 说明
操作系统Linux 5.10.0-182.0.0.95.r2220_156.hce2.aarch64 aarch64
Python3.11.14
NPU 型号Ascend910_9362
NPU 数量2
CANN/usr/local/Ascend/cann-8.5.1
PyTorch2.9.0+cpu
torch_npu2.9.0.post1+gitee7ba04
transformers4.57.6
依赖安装pip install -r requirements.txt
  • NPU:Ascend NPU(具体型号以 results/env_info.json 或 logs/env_check.log 为准)
  • Python:3.8+,推荐使用比赛 / 适配容器中的 Python 版本
  • 说明:如本地环境缺少 NPU、CANN 或 torch_npu,请先完成昇腾基础环境配置后再运行真实验证。

4. 快速开始

4.1 目录结构

.
├── .gitignore
├── README.md
├── assets/accuracy_eval_result.png
├── assets/env_check.png
├── assets/git_submit_result.png
├── assets/inference_result.png
├── assets/performance_eval_result.png
├── eval/__init__.py
├── eval/eval_accuracy.py
├── eval/eval_performance.py
├── inference.py
├── locked_models.md
├── logs/accuracy_eval.log
├── logs/env_check.log
├── logs/inference.log
├── logs/performance_eval.log
├── requirements.txt
├── results/accuracy_eval.json
├── results/env_info.json
└── results/performance_eval.json

4.2 权重准备

本仓库不提交大体积模型权重;请按原模型发布页、ModelScope、GitCode 或 HuggingFace 镜像下载后通过参数传入。

推荐约定:

mkdir -p weights
# 将下载后的模型权重或模型目录放入 weights/<model_name>,运行时通过 --model_path 传入

4.3 NPU 推理

pip install -r requirements.txt
python inference.py --model_path <model_path> --image_path <image.jpg> --device npu

4.4 精度与性能评测

python eval/eval_accuracy.py --model_path <model_path> --device npu
python eval/eval_performance.py --model_path <model_path> --device npu

5. 验证结果

5.1 模型信息

指标结果
模型名称webssl-mae300m-full2b-224
任务类型图像识别 / 视觉特征提取
推理设备Ascend NPU
推理框架PyTorch / torch_npu 或仓库脚本声明的推理框架
仓库分支main
当前提交4355ee7

5.2 推理性能

测试结果来源:results/performance_eval.json

指标结果
devicenpu
dtypefloat32
image_size224
num_runs10
warmup3

5.3 NPU vs CPU/GPU 精度对比

结果来源:results/accuracy_eval.json

指标结果
结果下方“结果数据直接文本”已写入实际日志/JSON内容

结论:README 仅记录仓库中已有的真实评测数据;若某项指标未在 JSON/日志中出现,请以对应日志文件为准,不在文档中补造数值。

5.4 精度性能评测脚本

python eval/eval_accuracy.py --model_path <model_path> --device npu
python eval/eval_performance.py --model_path <model_path> --device npu

关键日志和结构化 JSON 已在下方“结果数据直接文本”中直接写入;原始文件路径仅用于复核。

6. 推理脚本说明

inference.py 支持的参数以脚本自身 --help 输出为准。当前 README 从脚本中提取到的主要参数如下:

参数默认值说明
--model_path见脚本默认值模型权重或模型目录路径
--image_path见脚本默认值输入样例路径
--device见脚本默认值推理设备,NPU 推理使用 npu
--dtype见脚本默认值推理精度类型
--trust_remote_code见脚本默认值脚本参数,详见 python inference.py --help
--image_size见脚本默认值脚本参数,详见 python inference.py --help
--output_log见脚本默认值输出目录或日志路径

手动调用示例

python inference.py --help
python inference.py --model_path <model_path> --image_path <image.jpg> --device npu

7. 自验证文本证据

以下内容来自仓库已有 README 证据段、运行日志或结果文件。图片文件如保留在 assets/ 中,仅作为附件材料;README 中直接写入可检索的文本证据。

渲染截图证据

以下 PNG 文件由先前的 assets/*.txt 证据文件渲染生成。渲染完成后,原始 TXT 文件已被移除。

证据PNG 文件
精度评估结果assets/accuracy_eval_result.png
环境检查assets/env_check.png
Git 提交结果assets/git_submit_result.png
推理结果assets/inference_result.png
性能评估结果assets/performance_eval_result.png

9. 结果数据直接文本

本节将仓库中已提交的评测 JSON、推理日志、环境日志和性能日志直接写入 README。原始文件路径仅用于标识数据来源,主要数值和输出内容已在下面以文本形式完整展开。

logs/env_check.log

  • 文件大小:2687 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
# Environment Check Log
# Repository: webssl-mae300m-npu
# Model: webssl-mae300m-full2b-224
# Date: 2026-05-16 07:03:22

## System Info
Linux pod-8e032c81b34d489191e775768926f3b6 5.10.0-182.0.0.95.r2220_156.hce2.aarch64 #1 SMP Sat Sep 14 02:34:54 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux

## Python
Python 3.11.14
pip 26.0.1 from /usr/local/python3.11.14/lib/python3.11/site-packages/pip (python 3.11)

## NPU Info
+------------------------------------------------------------------------------------------------+
| npu-smi 25.5.2                   Version: 25.5.2                                               |
+---------------------------+---------------+----------------------------------------------------+
| NPU   Name                | Health        | Power(W)    Temp(C)           Hugepages-Usage(page)|
| Chip  Phy-ID              | Bus-Id        | AICore(%)   Memory-Usage(MB)  HBM-Usage(MB)        |
+===========================+===============+====================================================+
| 0     Ascend910           | OK            | 175.8       48                0    / 0             |
| 0     0                   | 0000:0A:00.0  | 0           0    / 0          3107 / 65536         |
+------------------------------------------------------------------------------------------------+
| 0     Ascend910           | OK            | -           48                0    / 0             |
| 1     1                   | 0000:0B:00.0  | 0           0    / 0          2870 / 65536         |
+===========================+===============+====================================================+
+---------------------------+---------------+----------------------------------------------------+
| NPU     Chip              | Process id    | Process name             | Process memory(MB)      |
+===========================+===============+====================================================+
| No running processes found in NPU 0                                                            |
+===========================+===============+====================================================+

## CANN Version
8.5.1

## PyTorch
2.9.0+cpu

## torch_npu
2.9.0.post1+gitee7ba04

## transformers
4.57.6

## Git Info
Branch: main
Commit: f4ab4183b2bee82ed9d36cfac168734964ae7722

<redacted sensitive line>
ASCEND_TOOLKIT_HOME=/usr/local/Ascend/cann-8.5.1
PYTHONPATH=/usr/local/Ascend/cann-8.5.1/python/site-packages:/usr/local/Ascend/cann-8.5.1/opp/built-in/op_impl/ai_core/tbe:/usr/local/Ascend/ascend-toolkit/latest/python/site-packages:/usr/local/Ascend/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe:

results/env_info.json

  • 文件大小:386 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
{
  "os": "Linux 5.10.0-182.0.0.95.r2220_156.hce2.aarch64 aarch64",
  "python_version": "3.11.14",
  "architecture": "aarch64",
  "npu_model": "Ascend910_9362",
  "npu_count": 2,
  "cann_version": "/usr/local/Ascend/cann-8.5.1",
  "torch_version": "2.9.0+cpu",
  "torch_npu_version": "2.9.0.post1+gitee7ba04",
  "transformers_version": "4.57.6",
  "numpy_version": "1.26.4"
}

logs/inference.log

  • 文件大小:1489 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
2026-05-15 04:33:02,270 [INFO] Loading webssl-mae300m-full2b-224 from ./weights ...
2026-05-15 04:33:04,119 [INFO] Model loaded on npu, dtype=torch.float32
2026-05-15 04:33:04,120 [INFO] Parameters: 304,351,232 (304.4M)
2026-05-15 04:33:04,120 [INFO] Loading image: test_image_webssl.png
2026-05-15 04:33:04,126 [INFO] Input shape: torch.Size([1, 3, 224, 224])
2026-05-15 04:33:04,126 [INFO] Warming up ...
2026-05-15 04:33:04,318 [INFO] Running inference ...
2026-05-15 04:33:04,368 [INFO] === webssl-mae300m-full2b-224 Inference Results ===
2026-05-15 04:33:04,368 [INFO] Device: npu
2026-05-15 04:33:04,368 [INFO] Dtype: float32
2026-05-15 04:33:04,368 [INFO] Image size: 224x224
2026-05-15 04:33:04,368 [INFO] Pooler output shape: (1, 1024)
2026-05-15 04:33:04,368 [INFO] Last hidden state shape: (1, 197, 1024)
2026-05-15 04:33:04,368 [INFO] Pooler L2 norm: 11.4051
2026-05-15 04:33:04,368 [INFO] Hidden states mean L2 norm: 17.0791
2026-05-15 04:33:04,368 [INFO] Inference time: 0.0126s
2026-05-15 04:33:04,368 [INFO] Throughput: 79.17 img/s
2026-05-15 04:33:04,369 [INFO] Results: {
  "device": "npu",
  "dtype": "float32",
  "image_size": 224,
  "image_path": "test_image_webssl.png",
  "pooler_shape": [
    1,
    1024
  ],
  "last_hidden_shape": [
    1,
    197,
    1024
  ],
  "pooler_norm": 11.405081748962402,
  "hidden_mean_norm": 17.079111099243164,
  "inference_time_s": 0.01263119699433446,
  "throughput_img_s": 79.16906057664491
}

logs/accuracy_eval.log

  • 文件大小:1112 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
2026-05-15 04:33:30,184 [INFO] Loading webssl-mae300m-full2b-224 model ...
2026-05-15 04:33:30,305 [INFO] Loading image: test_image_webssl.png
2026-05-15 04:33:30,310 [INFO] Running CPU inference ...
2026-05-15 04:33:32,791 [INFO] CPU pooler: (1, 1024), hidden: (1, 197, 1024)
2026-05-15 04:33:32,791 [INFO] Running NPU inference ...
2026-05-15 04:33:34,707 [INFO] NPU pooler: (1, 1024), hidden: (1, 197, 1024)
2026-05-15 04:33:34,707 [INFO] === Accuracy Comparison (NPU vs CPU) ===
2026-05-15 04:33:34,707 [INFO] Pooler Filtered MRE: 0.2185%
2026-05-15 04:33:34,707 [INFO] Pooler Cosine Similarity: 0.999994
2026-05-15 04:33:34,709 [INFO] Hidden States Filtered MRE: 0.1172%
2026-05-15 04:33:34,710 [INFO] Hidden States Cosine Similarity: 0.999989
2026-05-15 04:33:34,710 [INFO] Pooler MRE < 1%: PASS
2026-05-15 04:33:34,710 [INFO] Pooler Cosine > 0.9999: PASS
2026-05-15 04:33:34,710 [INFO] Hidden MRE < 1%: PASS
2026-05-15 04:33:34,710 [INFO] Hidden Cosine > 0.9999: PASS
2026-05-15 04:33:34,710 [INFO] Overall: PASS
2026-05-15 04:33:34,710 [INFO] Results saved to results/accuracy_eval.json

results/accuracy_eval.json

  • 文件大小:838 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
{
  "pooler_output": {
    "relative_error": {
      "max_relative_error": 1.0,
      "mean_relative_error": 0.008034611120820045,
      "filtered_mean_relative_error": 0.002184901852160692,
      "max_absolute_error": 0.004510082304477692,
      "mean_absolute_error": 0.0011040638200938702
    },
    "cosine_similarity": 0.9999936560418606,
    "mre_pass": true,
    "cosine_pass": true
  },
  "last_hidden_state": {
    "relative_error": {
      "max_relative_error": 1.0,
      "mean_relative_error": 0.018862128257751465,
      "filtered_mean_relative_error": 0.001172129763290286,
      "max_absolute_error": 0.045871734619140625,
      "mean_absolute_error": 0.0018556735012680292
    },
    "cosine_similarity": 0.999989403872029,
    "mre_pass": true,
    "cosine_pass": true
  },
  "overall": "PASS"
}

logs/performance_eval.log

  • 文件大小:1796 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
2026-05-16 12:28:04,978 [INFO] Loading webssl-mae300m-full2b-224 from /opt/atomgit/track1_work/models/webssl-mae300m-npu ...
2026-05-16 12:28:06,732 [INFO] Model loaded on npu, dtype=torch.float32
2026-05-16 12:28:06,732 [INFO] Image size: 224, Batch sizes: [1, 2, 4, 8]
2026-05-16 12:28:06,732 [INFO] Warmup: 3, Num runs: 10
2026-05-16 12:28:06,732 [INFO]
--- Batch size: 1 ---
2026-05-16 12:28:07,077 [INFO]   Mean: 0.0117s, P50: 0.0118s, P95: 0.0119s
2026-05-16 12:28:07,077 [INFO]   Throughput: 85.56 img/s, NPU Memory: 1162.8 MB
2026-05-16 12:28:07,077 [INFO]
--- Batch size: 2 ---
2026-05-16 12:28:07,262 [INFO]   Mean: 0.0112s, P50: 0.0112s, P95: 0.0112s
2026-05-16 12:28:07,262 [INFO]   Throughput: 179.20 img/s, NPU Memory: 1164.2 MB
2026-05-16 12:28:07,262 [INFO]
--- Batch size: 4 ---
2026-05-16 12:28:07,454 [INFO]   Mean: 0.0145s, P50: 0.0145s, P95: 0.0145s
2026-05-16 12:28:07,454 [INFO]   Throughput: 276.05 img/s, NPU Memory: 1164.5 MB
2026-05-16 12:28:07,454 [INFO]
--- Batch size: 8 ---
2026-05-16 12:28:07,825 [INFO]   Mean: 0.0240s, P50: 0.0240s, P95: 0.0241s
2026-05-16 12:28:07,825 [INFO]   Throughput: 332.75 img/s, NPU Memory: 1166.8 MB
2026-05-16 12:28:07,825 [INFO]
=== Performance Summary ===
2026-05-16 12:28:07,825 [INFO]  Batch    Mean(s)     P50(s)     P95(s)      img/s    Mem(MB)
2026-05-16 12:28:07,825 [INFO]      1     0.0117     0.0118     0.0119      85.56     1162.8
2026-05-16 12:28:07,825 [INFO]      2     0.0112     0.0112     0.0112     179.20     1164.2
2026-05-16 12:28:07,825 [INFO]      4     0.0145     0.0145     0.0145     276.05     1164.5
2026-05-16 12:28:07,825 [INFO]      8     0.0240     0.0240     0.0241     332.75     1166.8
2026-05-16 12:28:07,826 [INFO] Results saved to results/performance_eval.json

results/performance_eval.json

  • 文件大小:1381 bytes
  • 以下内容为 README 直接文本转写,不是外部路径引用。
{
  "device": "npu",
  "dtype": "float32",
  "image_size": 224,
  "warmup": 3,
  "num_runs": 10,
  "results": [
    {
      "batch_size": 1,
      "image_size": 224,
      "mean_time_s": 0.011687062017153948,
      "std_time_s": 0.000244932885358907,
      "p50_s": 0.011814403987955302,
      "p95_s": 0.01187386965029873,
      "throughput_img_s": 85.5647038179679,
      "npu_memory_mb": 1162.771484375
    },
    {
      "batch_size": 2,
      "image_size": 224,
      "mean_time_s": 0.011160724901128561,
      "std_time_s": 4.0685894980410455e-05,
      "p50_s": 0.011170393991051242,
      "p95_s": 0.011213515480631032,
      "throughput_img_s": 179.19982955567357,
      "npu_memory_mb": 1164.1962890625
    },
    {
      "batch_size": 4,
      "image_size": 224,
      "mean_time_s": 0.014490382798248902,
      "std_time_s": 1.649534976262274e-05,
      "p50_s": 0.014488731510937214,
      "p95_s": 0.014518925006268547,
      "throughput_img_s": 276.04515737730424,
      "npu_memory_mb": 1164.494140625
    },
    {
      "batch_size": 8,
      "image_size": 224,
      "mean_time_s": 0.024042056506732478,
      "std_time_s": 2.338584892395916e-05,
      "p50_s": 0.024038578005274758,
      "p95_s": 0.024078975021257065,
      "throughput_img_s": 332.7502369757665,
      "npu_memory_mb": 1166.791015625
    }
  ]
}

8. 许可证与声明

  • 适配代码许可证以本仓库 license 元数据或 LICENSE 文件为准。
  • 原始模型权重许可证以模型发布方为准。
  • 本仓库不应提交私钥、token、API key、缓存目录或大体积权重文件。
  • 文档中的运行结果来自仓库现有日志和 JSON 结果文件;未验证的数值不会在 README 中虚构。