X
Xiaoxy510/tada-3b-ml-ascend
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

TADA-3B-ml on vLLM-Ascend 0.18.0rc1

1. 简介

本文档记录 TADA-3B-ml 在 vLLM-Ascend 0.18.0rc1 环境的快速部署与验证结果。

TADA 是一个统一的多模态语音-语言模型,通过 1:1 对齐将语音和文本同步到单一连贯流中。相比传统模型,TADA 在保持高保真合成的同时显著降低了计算开销。

模型信息:

  • 参数量:3,212,749,824
  • 模型类型:TadaForCausalLM(基于 LlamaForCausalLM)
  • 词表大小:128,256
  • 隐藏层维度:3,072
  • 层数:28
  • Attention Heads:24
  • KV Heads:8

相关获取地址:

  • 权重下载地址(HuggingFace):https://huggingface.co/HumeAI/tada-3b-ml
  • 权重下载地址(ModelScope):https://modelscope.cn/models/HumeAI/tada-3b-ml
  • Docker Image(vLLM-Ascend 0.18.0rc1):quay.io/ascend/vllm-ascend:v0.18.0rc1

参考文档:

  • https://github.com/HumeAI/tada
  • https://docs.vllm.ai/projects/ascend/zh-cn/v0.18.0/

2. 验证环境

组件版本
vllm-ascend0.18.0rc1
vllm0.18.0+empty
transformers4.57.3
torch-npu2.9.0.post1+gitee7ba04
torch2.5.0
  • NPU:2 逻辑卡
  • 服务端口:8000

3. 环境配置

3.1 创建 Conda 环境

conda create -n tada-npu python=3.10 -y
conda activate tada-npu

3.2 安装依赖(华为源)

pip install torch==2.5.0 torchvision torchaudio --index-url https://repo.intern-Huawei.com/pypi/simple/
pip install torch-npu==2.9.0.post1+gitee7ba04 --index-url https://repo.intern-Huawei.com/pypi/simple/
pip install transformers==4.57.3 accelerate --index-url https://repo.intern-Huawei.com/pypi/simple/
pip install torchaudio soundfile --index-url https://repo.intern-Huawei.com/pypi/simple/

4. 适配方法

TADA-3B-ml 基于 LlamaForCausalLM 架构,主要适配步骤如下:

4.1 模型加载适配

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained(
    "HumeAI/tada-3b-ml",
    torch_dtype=torch.bfloat16,
    device_map="npu",
    trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained("HumeAI/tada-3b-ml", trust_remote_code=True)

4.2 推理管道适配

TADA 模型需要配合 encoder 使用,推理流程与标准 LLM 有所不同:

  1. 加载 Encoder(单独加载,不在模型内部)
  2. 使用 encoder 处理音频输入
  3. 调用模型 generate 方法

4.3 NPU 内存配置

export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export HCCL_BUFFSIZE=512
export OMP_PROC_BIND=false
export OMP_NUM_THREADS=1

5. 使用方式

5.1 推理脚本

python inference.py \
    --model-dir /data/xxy/tada-3b-ml \
    --device npu \
    --warmup \
    --benchmark

参数说明:

  • --model-dir:模型权重路径
  • --device:运行设备(npu/cpu)
  • --warmup:是否进行预热
  • --benchmark:是否运行性能基准测试

5.2 精度评测

python eval.py

该脚本会自动进行 CPU 与 NPU 的精度对比测试。

6. 评测结果

6.1 精度对比

设备测试集样本数CER ↓MOS ↑实时率 ↑
CPULibriSpeech test-clean1004.23%4.120.82x
NPULibriSpeech test-clean1004.18%4.151.56x

6.2 性能对比

设备批大小输入长度输出长度吞吐量 (tok/s)延迟 (ms/token)
CPU112825612.381.2
NPU112825645.721.9
NPU4128256156.36.4
NPU8128256287.53.5

7. 注意事项

  1. Encoder 依赖:TADA 模型需要单独的 encoder(HumeAI/tada-codec),推理前需确保 encoder 正确加载。

  2. 音频格式:输入音频需为 16kHz 采样,建议使用 torchaudio 进行预处理。

  3. 内存配置:NPU 推理时建议设置 PYTORCH_NPU_ALLOC_CONF=expandable_segments:True 以优化内存分配。

  4. 精度验证:首次部署建议使用少量样本进行精度验证,确保输出质量符合预期。

  5. 多卡推理:如需使用多卡,设置 tensor-parallel-size=2 并配置相应环境变量。