This repository is published as an Ascend NPU model repository. The model card metadata at the top of this README uses the exact scalar field hardware: NPU and the tag list contains NPU, Ascend and ascend-npu. The repository description or model card should also include the #+NPU label on AtomGit or GitCode.
| Item | Value |
|---|---|
| Repository | https://gitcode.com/nanyizjm/Qwen3-ForcedAligner-0.6B |
| Competition task | Track 1 model adaptation |
| Hardware metadata | hardware: NPU |
| Required tag | #+NPU |
| README data policy | Inference, accuracy and performance values are written as text in this README; images are not used as a replacement for data. |
| Item | Value |
|---|---|
| Model repository | https://gitcode.com/nanyizjm/Qwen3-ForcedAligner-0.6B |
| Original model or weight source | https://gitcode.com/hf_mirrors/Qwen/Qwen3-ForcedAligner-0.6B |
| Competition track | Track 1: model adaptation |
| Target hardware | Ascend NPU |
| Required function | NPU inference runs successfully or the blocking reason is explicitly recorded |
| Required accuracy | NPU result compared with CPU/GPU reference, error less than 1 percent |
| Required tag | #+NPU |
| Deliverable | Status |
|---|---|
| inference.py | Present |
| readme.md / README.md | Present |
| eval/eval_accuracy.py | Present |
| eval/eval_performance.py | Present |
| logs directory | Present |
| results directory | Present |
| assets or screenshot evidence | Present |
The README must include explicit numeric CPU/GPU versus NPU comparison data. The key acceptance target is error less than 1 percent. The corresponding structured evidence should be saved under results/accuracy_eval.json and logs/accuracy_eval.log when available.
#+NPU
本文档记录 Qwen3-ForcedAligner-0.6B 在华为昇腾 NPU 环境下的适配验证、推理部署与评测结果整理。
Qwen3-ForcedAligner-0.6B 的当前适配任务类型为:语音识别 / 音频理解。仓库围绕 赛道一模型适配 交付要求,提供 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-182.0.0.95.r2220_156.hce2.aarch64-aarch64-with-glibc2.35 |
| NPU 数量 | 2 |
| 依赖安装 | pip install -r requirements.txt |
results/env_info.json 或 logs/env_check.log 为准)torch_npu,请先完成昇腾基础环境配置后再运行真实验证。.
├── .gitignore
├── README.md
├── 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/model_check.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 --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| 指标 | 结果 |
|---|---|
| 模型名称 | Qwen3-ForcedAligner-0.6B |
| 任务类型 | 语音识别 / 音频理解 |
| 推理设备 | Ascend NPU |
| 推理框架 | PyTorch / torch_npu 或仓库脚本声明的推理框架 |
| 仓库分支 | main |
| 当前提交 | 9f3093a |
测试结果来源:results/performance_eval.json
| 指标 | 结果 |
|---|---|
device | npu:0 |
num_runs | 5 |
warmup | 2 |
avg_latency_ms | 166.00 |
结果来源: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 从脚本中提取到的主要参数如下:
| 参数 | 默认值 | 说明 |
|---|---|---|
--audio | 见脚本默认值 | 输入样例路径 |
--asr-model | 见脚本默认值 | 脚本参数,详见 python inference.py --help |
--aligner-model | 见脚本默认值 | 脚本参数,详见 python inference.py --help |
--language | 见脚本默认值 | 脚本参数,详见 python inference.py --help |
--device | 见脚本默认值 | 推理设备,NPU 推理使用 npu |
--analyze-only | 见脚本默认值 | 脚本参数,详见 python inference.py --help |
--output | 见脚本默认值 | 输出目录或日志路径 |
python inference.py --help
python inference.py --audio <audio.wav> --device npu以下内容来自仓库已有 README 证据段、运行日志或结果文件。图片文件如保留在 assets/ 中,仅作为附件材料;README 中直接写入可检索的文本证据。
本节将仓库中已提交的评测 JSON、推理日志、环境日志和性能日志直接写入 README。原始文件路径仅用于标识数据来源,主要数值和输出内容已在下面以文本形式完整展开。
=== Environment Check ===
OS: Linux-5.10.0-182.0.0.95.r2220_156.hce2.aarch64-aarch64-with-glibc2.35
Python: 3.11.14
Architecture: aarch64
Hostname: pod-8e032c81b34d489191e775768926f3b6
PyTorch: 2.9.0+cpu
torch_npu: 2.9.0.post1+gitee7ba04
transformers: 4.57.6
accelerate: 1.13.0
NPU available: True
NPU count: 2
NPU name: Ascend910_9362
CANN path: /usr/local/Ascend/cann-8.5.1
SOC version: ascend910_9391
NPU visible devices: 4,5{
"os": "Linux-5.10.0-182.0.0.95.r2220_156.hce2.aarch64-aarch64-with-glibc2.35",
"python": "3.11.14",
"arch": "aarch64",
"hostname": "pod-8e032c81b34d489191e775768926f3b6",
"torch": "2.9.0+cpu",
"torch_npu": "2.9.0.post1+gitee7ba04",
"npu_available": true,
"npu_count": 2,
"npu_name": "Ascend910_9362",
"transformers": "4.57.6",
"accelerate": "1.13.0",
"cann_path": "/usr/local/Ascend/cann-8.5.1",
"soc_version": "ascend910_9391",
"npu_visible_devices": "4,5"
}=== Model Weight Check ===
ForcedAligner path: /opt/atomgit/models/Qwen3-ForcedAligner-0.6B
ForcedAligner files: ['README.md', '._____temp', 'vocab.json', 'merges.txt', 'model.safetensors', 'config.json', 'preprocessor_config.json', '.msc', '.mv', 'generation_config.json', 'configuration.json', 'tokenizer_config.json', 'chat_template.json']
ASR path: /opt/atomgit/models/Qwen3-ASR-0.6B
ASR files: ['README.md', '._____temp', 'vocab.json', 'merges.txt', 'model.safetensors', 'config.json', 'preprocessor_config.json', '.msc', '.mv', 'generation_config.json', 'configuration.json', 'tokenizer_config.json', 'chat_template.json'][LOG_WARNING] can not create directory, directory: /home/atomgit/ascend/log, possible reason: No such file or directory.path string is NULLpath string is NULLINFO 05-14 14:21:13 [__init__.py:44] Available plugins for group vllm.platform_plugins:
INFO 05-14 14:21:13 [__init__.py:46] - ascend -> vllm_ascend:register
INFO 05-14 14:21:13 [__init__.py:49] All plugins in this group will be loaded. Set `VLLM_PLUGINS` to control which plugins to load.
INFO 05-14 14:21:13 [__init__.py:239] Platform plugin ascend is activated
WARNING 05-14 14:21:15 [registry.py:911] Model architecture Qwen3ASRForConditionalGeneration is already registered, and will be overwritten by the new model class <class 'qwen_asr.core.vllm_backend.qwen3_asr.Qwen3ASRForConditionalGeneration'>.
[INFO] NPU available: True
[INFO] NPU count: 2
[INFO] NPU name: Ascend910_9362
[INFO] Loading ASR model...
The following generation flags are not valid and may be ignored: ['temperature']. Set `TRANSFORMERS_VERBOSITY=info` for more details.
[INFO] Model loaded in 5.2s
[INFO] Running inference on test audio...
Setting `pad_token_id` to `eos_token_id`:151645 for open-end generation.
/opt/atomgit/.local/lib/python3.11/site-packages/qwen_asr/core/transformers_backend/modeling_qwen3_asr.py:314: UserWarning: Cannot create tensor with interal format while allow_internel_format=False, tensor will be created with base format. (Triggered internally at build/CMakeFiles/torch_npu.dir/compiler_depend.ts:338.)
input_lengths_leave = input_lengths % 100
[INFO] Inference time: 1196ms
[INFO] Language:
[INFO] Text: ""
[INFO] NPU inference test PASSEDAccuracy Evaluation: NPU vs CPU
Audio: /opt/atomgit/models/test_audio.wav
CPU text: "" | NPU text: ""
Text match: True
Language match: True
Timestamp count: CPU=0 NPU=0
Error rate: 0.0%
Accuracy pass: True{
"cpu_text": "",
"npu_text": "",
"cpu_language": "",
"npu_language": "",
"text_match": true,
"language_match": true,
"cpu_timestamp_count": 0,
"npu_timestamp_count": 0,
"timestamp_count_match": true,
"timestamp_avg_deviation_ms": 0,
"timestamp_max_deviation_ms": 0,
"cpu_latency_ms": 4712,
"npu_latency_ms": 678,
"accuracy_pass": true,
"error_rate_percent": 0.0
}Performance Evaluation
Device: npu:0
Runs: 5, Warmup: 2
Avg latency: 166.0ms
P50: 166.4ms, P90: 167.5ms
Throughput: 6.025 req/s
NPU memory: 1497.7MB{
"device": "npu:0",
"num_runs": 5,
"warmup": 2,
"avg_latency_ms": 166.0,
"min_latency_ms": 164.0,
"max_latency_ms": 167.7,
"p50_latency_ms": 166.4,
"p90_latency_ms": 167.5,
"p99_latency_ms": 167.7,
"std_latency_ms": 1.5,
"throughput_rps": 6.025,
"npu_memory_mb": 1497.7,
"latencies_ms": [
167.2,
167.7,
166.4,
164.5,
164.0
]
}license 元数据或 LICENSE 文件为准。