d
gcw_GYGYTJUF/Zehnova-Uzbek-STT
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

Zehnova-Uzbek-STT 在昇腾 NPU 上的部署

模型概述

属性值
模型Jonibek21/Zehnova-Uzbek-STT
架构WhisperForConditionalGeneration
类型编码器-解码器架构语音识别(语音转文本)
语言乌兹别克语 (uz)
d_model1024
编码器/解码器层数24 / 24
词汇表大小51865
注意力头数16(多头注意力)
参数量764M

昇腾 NPU 支持状态

特性状态说明
模型加载支持需要 --block-size 128
ACL 图(PIECEWISE)支持编码器-解码器自动回退
转录推理支持通过 OpenAI 兼容接口 /v1/audio/transcriptions
分块预填充不支持编码器-解码器限制(上游问题)
前缀缓存不支持编码器-解码器限制(上游问题)
张量并行支持
流水线并行不支持
LoRA支持

支持的硬件与框架

属性值
昇腾硬件Atlas 800 A2 / A3
适配框架vLLM-Ascend
支持任务语音转录

已知问题

问题 #2262 — 块大小不匹配

症状:

ValueError: None of the kernel sizes [128] can divide physical block size 16 evenly

根本原因: vllm_ascend.attention.attention_v1.AscendAttentionBackend.get_supported_kernel_block_sizes() 返回 [128],但默认的 cache_config.block_size 为 16。BlockTable 构造函数要求 kernel_size 能整除 physical_block_size,当 128 > 16 时,此条件不满足,导致失败。

解决方法: 在部署模型时显式设置 --block-size 128:

vllm serve Jonibek21/Zehnova-Uzbek-STT \
  --dtype bfloat16 \
  --max-model-len 448 \
  --block-size 128

服务器启动

最小化命令

vllm serve Jonibek21/Zehnova-Uzbek-STT \
  --dtype bfloat16 \
  --max-model-len 448 \
  --block-size 128

推荐命令(生产环境)

export VLLM_WORKER_MULTIPROC_METHOD=spawn

vllm serve Jonibek21/Zehnova-Uzbek-STT \
  --dtype bfloat16 \
  --max-model-len 448 \
  --block-size 128 \
  --max-num-seqs 16 \
  --tensor-parallel-size 1 \
  --port 8000

注意: 由于已知的分叉工作进程问题(上游 vLLM 警告),对于 Whisper,建议使用 VLLM_WORKER_MULTIPROC_METHOD=spawn。

验证

1. 就绪检查

curl -sf http://127.0.0.1:8000/v1/models

2. 转录推理

curl -s http://127.0.0.1:8000/v1/audio/transcriptions \
  -H "Content-Type: multipart/form-data" \
  -F file=@/path/to/audio.wav \
  -F model=Jonibek21/Zehnova-Uzbek-STT \
  -F language=uz \
  -F response_format=json

3. 虚拟权重快速门控

vllm serve Jonibek21/Zehnova-Uzbek-STT \
  --load-format dummy \
  --dtype bfloat16 \
  --max-model-len 448 \
  --block-size 128

算子兼容性摘要

算子类别兼容性说明
原生 PyTorch完全支持nn.Conv1d、nn.LayerNorm、nn.Linear、GELU
vLLM 注意力机制完全支持Attention、CrossAttention、MMEncoderAttention
CUDA 内核无需模型代码中无 CUDA 依赖项
Triton 内核无需模型代码中无 Triton 依赖项

模型特定配置

该模型使用 Whisper 的强制解码器 ID 进行乌兹别克语转录:

[[1, 50259], [2, 50359], [3, 50363]]

当转录请求中提供 language=uz 参数时,这些会由 vLLM Whisper 处理器自动处理。

回退步骤

如果启动或推理失败:

  1. 确认已设置 --block-size 128。
  2. 添加 --enforce-eager 以隔离图捕获问题。
  3. 如果工作进程挂起,设置 VLLM_WORKER_MULTIPROC_METHOD=spawn。
  4. 验证模型目录中是否存在分词器和预处理器文件。