本仓库作为昇腾 NPU 模型仓库发布。本 README 顶部的模型卡片元数据使用了确切的标量字段 hardware: NPU,且标签列表包含 NPU、Ascend 和 ascend-npu。仓库描述或模型卡片在 AtomGit 或 GitCode 上还应包含 #+NPU 标签。
| 项目 | 数值 |
|---|---|
| 仓库 | https://gitcode.com/nanyizjm/hubert-base-deepfake-npu |
| 竞赛任务 | Track 1 model adaptation |
| 硬件元数据 | hardware: NPU |
| 所需标签 | #+NPU |
| README 数据策略 | 推理、精度和性能数值以文本形式写入本 README;不使用图像替代数据。 |
| 项目 | 数值 |
|---|---|
| 模型仓库 | https://gitcode.com/nanyizjm/hubert-base-deepfake-npu |
| 原始模型或权重来源 | https://gitcode.com/hf_mirrors/abhishtagatya/hubert-base-960h-itw-deepfake |
| 竞赛赛道 | Track 1: model adaptation |
| 目标硬件 | Ascend NPU |
| 所需功能 | NPU 推理成功运行或明确记录阻塞原因 |
| 所需精度 | 与 CPU/GPU 参考结果相比,NPU 结果误差小于 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
本部分直接写入 README 供平台审核使用。仅使用本仓库中已签入的日志和 JSON 结果文件,不依赖嵌入式图片。
| 审核项 | 直接结果 |
|---|---|
| 仓库 | hubert-base-deepfake-npu |
| 硬件元数据 | 本 README 中存在 hardware: NPU 和 #+NPU |
| 正常 NPU 推理输出 | 通过 - 已签入的 NPU 推理输出如下所示。 |
| 精度要求 | 通过 - 选定的可复现误差 0.00003410931458347477% 低于 1%。 |
| 性能证据 | 可用 - 已签入的性能指标如下所示。 |
| 证据文件 | logs/inference.log、results/accuracy_eval.json、results/performance_eval.json、logs/accuracy_eval.log、logs/performance_eval.log |
{"model": "hubert-base-960h-itw-deepfake", "model_path": "./weights", "audio_path": "./test_audio_5s.wav", "audio_duration_s": 5.0, "sample_rate": 16000, "device": "npu:0", "dtype": "torch.float32", "prediction": "bona-fide", "prediction_id| 来源 | 指标 | 数值 |
|---|---|---|
logs/inference.log | audio_path | ./test_audio_5s.wav |
logs/inference.log | audio_duration_s | 5 |
logs/inference.log | device | npu:0 |
| 来源 | 指标 | 数值 |
|---|---|---|
results/accuracy_eval.json | evaluations[0].logits.cpu_logits | [3.1859610080718994,-3.1582372188568115] |
results/accuracy_eval.json | evaluations[0].logits.npu_logits | [3.1860363483428955,-3.157881021499634] |
results/accuracy_eval.json | evaluations[0].logits.max_relative_error | 0.00005639497976517305 |
results/accuracy_eval.json | evaluations[0].logits.mean_relative_error | 0.00003410931458347477 |
results/accuracy_eval.json | evaluations[0].logits.filtered_mean_relative_error | 0.00003410931458347477 |
results/accuracy_eval.json | evaluations[0].logits.cosine_similarity | 1.0000001192092896 |
results/accuracy_eval.json | evaluations[0].prediction.cpu_prediction | bona-fide |
results/accuracy_eval.json | evaluations[0].prediction.npu_prediction | bona-fide |
results/accuracy_eval.json | evaluations[0].pass_criteria.filtered_mre_lt_1pct | true |
results/accuracy_eval.json | evaluations[0].pass_criteria.cosine_similarity_gt_09999 | true |
精度结论:PASS - 所选可复现误差 0.00003410931458347477% 低于 1%。
| 来源 | 指标 | 数值 |
|---|---|---|
results/performance_eval.json | device | npu:0 |
results/performance_eval.json | dtype | float32 |
results/performance_eval.json | warmup_runs | 3 |
results/performance_eval.json | num_runs | 10 |
results/performance_eval.json | benchmarks[0].avg_latency_s | 0.0067 |
results/performance_eval.json | benchmarks[0].std_latency_s | 0 |
results/performance_eval.json | benchmarks[0].min_latency_s | 0.0066 |
results/performance_eval.json | benchmarks[0].max_latency_s | 0.0067 |
results/performance_eval.json | benchmarks[0].p50_latency_s | 0.0067 |
results/performance_eval.json | benchmarks[0].p95_latency_s | 0.0067 |
本文档记录 HuBERT-Base-Deepfake 在华为昇腾 NPU 环境下的适配验证、推理部署与评测结果整理。
HuBERT-Base-Deepfake 的当前适配任务类型为:模型推理适配。仓库围绕 赛道一模型适配 交付要求,提供 NPU 推理脚本、精度评测、性能评测、运行日志、结果文件和文本化自验证证据。
相关获取地址:
仓库提供 inference.py 作为统一推理入口,运行时通过 --device npu 或脚本默认设备在昇腾 NPU 上执行推理。推理代码保留 model.eval()、无梯度推理、输入输出摘要、耗时统计和日志保存逻辑,便于复现与核验。
仓库保留精度评测与性能评测材料。精度验证以 CPU/GPU 参考输出与 NPU 输出进行对比,目标为误差小于 1%;性能验证记录延迟、吞吐、batch size、输入尺寸/长度、dtype、NPU 内存等信息。所有结果以 logs/ 与 results/ 中的真实运行文件为准。
自验证截图中的关键内容已转写为 README 文本证据,避免仅依赖图片展示。仓库 README、日志、JSON 结果和附件材料均用于 AtomGit/GitCode 公开提交,README 顶部已声明 hardware: NPU 与 #+NPU 标签。
| 组件 | 版本 / 说明 |
|---|---|
| 操作系统 | Linux 5.10.0 aarch64 |
| Python | 3.11.14 |
| NPU 型号 | Ascend910_9362 |
| NPU 数量 | 2 |
| CANN | 8.5.1 |
| PyTorch | 2.9.0+cpu |
| torch_npu | 2.9.0.post1 |
| transformers | 4.57.6 |
| 依赖安装 | pip install -r requirements.txt |
results/env_info.json 或 logs/env_check.log 为准)torch_npu,请先完成昇腾基础环境配置后再运行真实验证。.
├── .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本仓库不提交大体积模型权重;请按原模型发布页、ModelScope、GitCode 或 HuggingFace 镜像下载后通过参数传入。
推荐约定:
mkdir -p weights
# 将下载后的模型权重或模型目录放入 weights/<model_name>,运行时通过 --model_path 传入pip install -r requirements.txt
python inference.py --model_path <model_path> --audio <audio.wav> --device npupython eval/eval_accuracy.py --model_path <model_path> --device npu
python eval/eval_performance.py --model_path <model_path> --device npu| 指标 | 结果 |
|---|---|
| 模型名称 | hubert-base-960h-itw-deepfake |
| 任务类型 | 模型推理适配 |
| 推理设备 | Ascend NPU |
| 推理框架 | PyTorch / torch_npu 或仓库脚本声明的推理框架 |
| 仓库分支 | main |
| 当前提交 | 7bdf09a |
测试结果来源:results/performance_eval.json
| 指标 | 结果 |
|---|---|
device | npu:0 |
dtype | float32 |
num_runs | 10 |
结果来源:results/accuracy_eval.json
| 指标 | 结果 |
|---|---|
| 结果 | 下方“结果数据直接文本”已写入实际日志/JSON内容 |
结论:README 仅记录仓库中已有的真实评测数据;若某项指标未在 JSON/日志中出现,请以对应日志文件为准,不在文档中补造数值。
python eval/eval_accuracy.py --model_path <model_path> --device npu
python eval/eval_performance.py --model_path <model_path> --device npu关键日志和结构化 JSON 已在下方“结果数据直接文本”中直接写入;原始文件路径仅用于复核。
inference.py 支持的参数以脚本自身 --help 输出为准。当前 README 从脚本中提取到的主要参数如下:
| 参数 | 默认值 | 说明 |
|---|---|---|
--model_path | 见脚本默认值 | 模型权重或模型目录路径 |
--audio_path | 见脚本默认值 | 脚本参数,详见 python inference.py --help |
--sample_rate | 见脚本默认值 | 脚本参数,详见 python inference.py --help |
--device | 见脚本默认值 | 推理设备,NPU 推理使用 npu |
--dtype | 见脚本默认值 | 推理精度类型 |
--output_log | 见脚本默认值 | 输出目录或日志路径 |
python inference.py --help
python inference.py --model_path <model_path> --audio <audio.wav> --device npu以下内容来自仓库已有 README 证据段、运行日志或结果文件。图片文件如保留在 assets/ 中,仅作为附件材料;README 中直接写入可检索的文本证据。
以下 PNG 文件由之前的 assets/*.txt 证据文件渲染生成。渲染完成后,原始 TXT 文件已被移除。
| 证据 | PNG 文件 |
|---|---|
| accuracy_eval_result | assets/accuracy_eval_result.png |
| env_check | assets/env_check.png |
| git_submit_result | assets/git_submit_result.png |
| inference_result | assets/inference_result.png |
| performance_eval_result | assets/performance_eval_result.png |
本节将仓库中已提交的评测 JSON、推理日志、环境日志和性能日志直接写入 README。原始文件路径仅用于标识数据来源,主要数值和输出内容已在下面以文本形式完整展开。
# Environment Check Log
# Repository: hubert-base-deepfake-npu
# Model: hubert-base-960h-itw-deepfake
# 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 | 174.3 48 0 / 0 |
| 0 0 | 0000:0A:00.0 | 0 0 / 0 3106 / 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: 82a40ea9dd44047862972bc3d78eeed06fb3ba4a
<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:{
"os": "Linux 5.10.0 aarch64",
"python_version": "3.11.14",
"architecture": "aarch64",
"npu_model": "Ascend910_9362",
"npu_count": 2,
"npu_smi_version": "25.5.2",
"cann_version": "8.5.1",
"torch_version": "2.9.0+cpu",
"torch_npu_version": "2.9.0.post1",
"transformers_version": "4.57.6",
"numpy_version": "1.26.4"
}{"model": "hubert-base-960h-itw-deepfake", "model_path": "./weights", "audio_path": "./test_audio_5s.wav", "audio_duration_s": 5.0, "sample_rate": 16000, "device": "npu:0", "dtype": "torch.float32", "prediction": "bona-fide", "prediction_id": 0, "logits": [3.186036, -3.157881], "probabilities": [0.998246, 0.001754], "inference_time_s": 0.2457, "model_load_time_s": 1.41, "rtf": 0.0491}{"model": "hubert-base-960h-itw-deepfake", "audio_path": "./test_audio_5s.wav", "audio_duration_s": 5.0, "dtype": "float32", "evaluations": [{"comparison": "NPU vs CPU", "logits": {"cpu_logits": [3.1859610080718994, -3.1582372188568115], "npu_logits": [3.1860363483428955, -3.157881021499634], "max_relative_error": 5.639497976517305e-05, "mean_relative_error": 3.410931458347477e-05, "filtered_mean_relative_error": 3.410931458347477e-05, "normalized_mae": 4.80996495753061e-05, "cosine_similarity": 1.0000001192092896}, "prediction": {"cpu_prediction": "bona-fide", "npu_prediction": "bona-fide", "match": true}, "pass_criteria": {"filtered_mre_lt_1pct": true, "cosine_similarity_gt_09999": true, "prediction_match": true, "overall_pass": true}, "hidden_states": {"max_relative_error": 1.0, "mean_relative_error": 0.01068372093141079, "filtered_mean_relative_error": 0.0009429390775039792, "cosine_similarity": 0.9999975562095642}}], "summary": {"overall_pass": true}}{
"model": "hubert-base-960h-itw-deepfake",
"audio_path": "./test_audio_5s.wav",
"audio_duration_s": 5.0,
"dtype": "float32",
"evaluations": [
{
"comparison": "NPU vs CPU",
"logits": {
"cpu_logits": [
3.1859610080718994,
-3.1582372188568115
],
"npu_logits": [
3.1860363483428955,
-3.157881021499634
],
"max_relative_error": 5.639497976517305e-05,
"mean_relative_error": 3.410931458347477e-05,
"filtered_mean_relative_error": 3.410931458347477e-05,
"normalized_mae": 4.80996495753061e-05,
"cosine_similarity": 1.0000001192092896
},
"prediction": {
"cpu_prediction": "bona-fide",
"npu_prediction": "bona-fide",
"match": true
},
"pass_criteria": {
"filtered_mre_lt_1pct": true,
"cosine_similarity_gt_09999": true,
"prediction_match": true,
"overall_pass": true
},
"hidden_states": {
"max_relative_error": 1.0,
"mean_relative_error": 0.01068372093141079,
"filtered_mean_relative_error": 0.0009429390775039792,
"cosine_similarity": 0.9999975562095642
}
}
],
"summary": {
"overall_pass": true
}
}{"model": "hubert-base-960h-itw-deepfake", "device": "npu:0", "dtype": "float32", "warmup_runs": 3, "num_runs": 10, "benchmarks": [{"audio_duration_s": 1.0, "avg_latency_s": 0.0067, "std_latency_s": 0.0, "min_latency_s": 0.0066, "max_latency_s": 0.0067, "p50_latency_s": 0.0067, "p95_latency_s": 0.0067, "rtf": 0.0067, "throughput_inferences_per_s": 150.06, "npu_memory": {"allocated_mb": 361.17, "reserved_mb": 480.0}}, {"audio_duration_s": 3.0, "avg_latency_s": 0.0064, "std_latency_s": 0.0001, "min_latency_s": 0.0063, "max_latency_s": 0.0067, "p50_latency_s": 0.0063, "p95_latency_s": 0.0067, "rtf": 0.0021, "throughput_inferences_per_s": 155.69, "npu_memory": {"allocated_mb": 361.29, "reserved_mb": 516.0}}, {"audio_duration_s": 5.0, "avg_latency_s": 0.0064, "std_latency_s": 0.0, "min_latency_s": 0.0063, "max_latency_s": 0.0064, "p50_latency_s": 0.0064, "p95_latency_s": 0.0064, "rtf": 0.0013, "throughput_inferences_per_s": 156.88, "npu_memory": {"allocated_mb": 361.41, "reserved_mb": 570.0}}, {"audio_duration_s": 10.0, "avg_latency_s": 0.0068, "std_latency_s": 0.0, "min_latency_s": 0.0067, "max_latency_s": 0.0068, "p50_latency_s": 0.0068, "p95_latency_s": 0.0068, "rtf": 0.0007, "throughput_inferences_per_s": 147.96, "npu_memory": {"allocated_mb": 361.71, "reserved_mb": 800.0}}, {"audio_duration_s": 30.0, "avg_latency_s": 0.0162, "std_latency_s": 0.0, "min_latency_s": 0.0162, "max_latency_s": 0.0163, "p50_latency_s": 0.0162, "p95_latency_s": 0.0163, "rtf": 0.0005, "throughput_inferences_per_s": 61.71, "npu_memory": {"allocated_mb": 363.1, "reserved_mb": 1478.0}}]}{
"model": "hubert-base-960h-itw-deepfake",
"device": "npu:0",
"dtype": "float32",
"warmup_runs": 3,
"num_runs": 10,
"benchmarks": [
{
"audio_duration_s": 1.0,
"avg_latency_s": 0.0067,
"std_latency_s": 0.0,
"min_latency_s": 0.0066,
"max_latency_s": 0.0067,
"p50_latency_s": 0.0067,
"p95_latency_s": 0.0067,
"rtf": 0.0067,
"throughput_inferences_per_s": 150.06,
"npu_memory": {
"allocated_mb": 361.17,
"reserved_mb": 480.0
}
},
{
"audio_duration_s": 3.0,
"avg_latency_s": 0.0064,
"std_latency_s": 0.0001,
"min_latency_s": 0.0063,
"max_latency_s": 0.0067,
"p50_latency_s": 0.0063,
"p95_latency_s": 0.0067,
"rtf": 0.0021,
"throughput_inferences_per_s": 155.69,
"npu_memory": {
"allocated_mb": 361.29,
"reserved_mb": 516.0
}
},
{
"audio_duration_s": 5.0,
"avg_latency_s": 0.0064,
"std_latency_s": 0.0,
"min_latency_s": 0.0063,
"max_latency_s": 0.0064,
"p50_latency_s": 0.0064,
"p95_latency_s": 0.0064,
"rtf": 0.0013,
"throughput_inferences_per_s": 156.88,
"npu_memory": {
"allocated_mb": 361.41,
"reserved_mb": 570.0
}
},
{
"audio_duration_s": 10.0,
"avg_latency_s": 0.0068,
"std_latency_s": 0.0,
"min_latency_s": 0.0067,
"max_latency_s": 0.0068,
"p50_latency_s": 0.0068,
"p95_latency_s": 0.0068,
"rtf": 0.0007,
"throughput_inferences_per_s": 147.96,
"npu_memory": {
"allocated_mb": 361.71,
"reserved_mb": 800.0
}
},
{
"audio_duration_s": 30.0,
"avg_latency_s": 0.0162,
"std_latency_s": 0.0,
"min_latency_s": 0.0162,
"max_latency_s": 0.0163,
"p50_latency_s": 0.0162,
"p95_latency_s": 0.0163,
"rtf": 0.0005,
"throughput_inferences_per_s": 61.71,
"npu_memory": {
"allocated_mb": 363.1,
"reserved_mb": 1478.0
}
}
]
}license 元数据或 LICENSE 文件为准。