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

TADA-1B on Ascend NPU

1. 简介

本文档记录 TADA-1B 模型在 Ascend NPU 环境下的适配与验证结果。TADA-1B 是一个基于 LlamaForCausalLM 的语音-文本双对齐生成模型,核心特点是通过 1:1 Token 对齐实现高效的自然语音合成。

模型信息:

  • 参数量:1,235,814,400
  • 模型类型:TadaForCausalLM(基于 LlamaForCausalLM)
  • vocab_size=128256, hidden_size=2048, num_layers=16
  • 使用 AutoModelForCausalLM 加载

相关资源:

  • 权重下载地址(HuggingFace):https://huggingface.co/HumeAI/tada-1b
  • 权重下载地址(ModelScope):https://modelscope.cn/models/HumeAI/tada-1b
  • 官方文档:https://arxiv.org/abs/2602.23068

2. 验证环境

组件版本
torch2.9.0
torch-npu2.9.0.post1+gitee7ba04
transformers4.57.3
ascend-kit24.1.rc2
cann8.0.rc2
  • NPU:1 逻辑卡
  • 模型路径:/data/xxy/tada-1b

3. 环境配置

3.1 Conda 环境创建

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

3.2 依赖安装(华为源)

pip install torch==2.9.0 torchvision torchaudio --index-url https://repo.inference.ascend.cn/repository/pyTorch-gpu SimpleITK nibabel --extra-index-url https://repo.inference.ascend.cn/repository/Ascend-pypi/

pip install transformers==4.57.3 --index-url https://repo.modelart.cn/pypi/mirror/simple

4. 适配方法

本适配基于原生 transformers 库实现,主要步骤:

  1. 使用 AutoModelForCausalLM 加载模型,指定 trust_remote_code=True
  2. 模型自动映射至 NPU 设备运行
  3. 使用 torch.npu.is_available() 检测 NPU 可用性

关键配置:

  • device_map="npu:0" 或手动 .to("npu:0")
  • torch.compile() 可进一步优化性能(如需)
  • 音频处理依赖 torchaudio,Tokenizer 通过 AutoTokenizer 加载

5. 使用方式

5.1 推理脚本

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

参数说明:

参数默认值说明
--model-dir必填模型权重目录路径
--devicenpu:0推理设备
--warmup0预热轮数
--benchmarkFalse是否运行性能评测

5.2 精度评测

python eval.py

6. 评测结果

6.1 精度对比

设备相对误差状态
CPU基准-
NPU< 1%通过

精度评测方法:对比 CPU 与 NPU 的前向传播输出,计算 logits 的相对误差,确保误差小于 1%。

6.2 性能参考

指标数值
input length32 tokens
batch size1
avg inference time参考实际运行
throughput参考实际运行

性能测试条件:seq_len=32, iterations=20, warmup=3

7. 注意事项

  1. 模型加载:首次加载模型可能需要较长时间,确保权重文件完整
  2. NPU 检测:运行前检查 torch.npu.is_available() 返回 True
  3. 内存占用:1B 模型占用约 2.5GB 显存,请确保 NPU 内存充足
  4. 音频输入:完整 TTS 任务需要额外加载 Encoder,请参考官方文档
  5. 精度验证:如需进行完整的 TTS 精度评测,请使用官方评估脚本并准备音频数据集