MooER-MTL-5K-1.5B 是摩尔线程(Moore Threads)推出的 MooER 系列语音大模型的轻量级变体。本模型使用 Qwen2-1.5B-Instruct 作为 LLM 后端(相比 7B 版本参数量减少约 78%),在保持优秀语音识别/翻译能力的同时,显著降低了推理资源需求。
核心特性:
| 特性 | 说明 |
|---|---|
| 参数量 | 约 1.5B (LLM 后端) |
| 架构 | Paraformer 编码器 + 适配器投影 + Qwen2-1.5B LLM |
| 任务 | 多任务学习:ASR(语音识别)+ AST(语音翻译) |
| 训练数据 | 5,000 小时中英文语音数据 |
| 基础模型 | Qwen2-1.5B-Instruct |
| 适用场景 | 资源受限环境、边缘计算、端侧部署 |
| 对比项 | MooER-MTL-5K (7B) | MooER-MTL-5K-1.5B (本模型) |
|---|---|---|
| LLM 后端 | Qwen2-7B-Instruct | Qwen2-1.5B-Instruct |
| 总参数量 | ~7B+ | ~1.5B+ |
| 推理速度 | 较慢 | 更快 |
| 显存需求 | 高 | 低 |
| 适用平台 | 服务器级 GPU/NPU | 边缘设备、轻量部署 |
| 可用平台 | ModelScope + HuggingFace | 仅 ModelScope |
语音音频 → [Paraformer 编码器] → [适配器投影] → [Qwen2-1.5B LLM] → 文本输出模型由三个主要组件构成:
paraformer-encoder.pth + am.mvn(均值方差归一化)adapter_project.ptQwen2-1.5B-Instruct/ + LoRA 权重| 目录 | 任务 | 说明 |
|---|---|---|
model/asr/ | ASR | 自动语音识别:语音→文本 |
model/ast/ | AST | 自动语音翻译:语音→英文文本 |
model/asr_ast_mtl/ | MTL | 多任务学习:同时支持 ASR 和 AST |
| 硬件 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 4 核, 8GB RAM | 8 核, 16GB RAM |
| GPU/NPU | 昇腾 910B / 910B2 | 昇腾 910B2, 32GB+ |
| 磁盘 | 20GB 可用空间 | 50GB 可用空间 |
git clone https://github.com/MooreThreads/MooER.git /tmp/MooER
cd /tmp/MooER
pip install -r requirements.txt本模型仅托管在 ModelScope 上:
# 方式一:使用 ModelScope SDK
pip install modelscope
python -c "
from modelscope import snapshot_download
snapshot_download('MooreThreadsSpeech/MooER-MTL-5K-1.5B', local_dir='./model')
"# 方式二:使用 git lfs
git lfs install
git clone https://www.modelscope.cn/MooreThreadsSpeech/MooER-MTL-5K-1.5B.git model如果使用昇腾 NPU,需要安装 torch_npu:
# 根据 CANN 版本和 Python 版本选择对应 torch_npu 安装包
pip install torch_npu
# 或参考 https://gitee.com/ascend/pytorch 安装指南cd /opt/atomgit/models_workspace/MooER-MTL-5K-1.5B
pip install -r requirements.txtpython inference.py --wav_path test_audio.wav --task asr --device autopython inference.py --wav_path test_audio.wav --task ast --device autopython inference.py --wav_path test_audio.wav --task asr --device npupython inference.py --wav_path test_audio.wav --task asr --device cpu运行 CPU vs NPU 精度对比脚本,验证 NPU 适配后的数值精度:
python compare_cpu_npu.py该脚本会:
precision_result.jsoninference.py昇腾 NPU 适配的推理脚本,功能包括:
命令行参数:
| 参数 | 默认值 | 说明 |
|---|---|---|
--wav_path | test_audio.wav | 输入音频文件路径 |
--task | asr | 推理任务:asr(识别)或 ast(翻译) |
--encoder_path | model/paraformer_encoder/paraformer-encoder.pth | 编码器权重路径 |
--cmvn_path | model/paraformer_encoder/am.mvn | CMVN 文件路径 |
--llm_path | model/Qwen2-1.5B-Instruct | Qwen2-1.5B-Instruct 路径 |
--adapter_path | model/asr/adapter_project.pt | 适配器权重路径 |
--lora_dir | model/asr/lora_weights | LoRA 权重目录 |
--device | auto | 设备:auto / cpu / npu |
compare_cpu_npu.py昇腾 NPU 精度验证脚本,对比 CPU 和 NPU 上的编码器输出差异。
主要功能:
MooER-MTL-5K-1.5B 使用 5,000 小时的中英文混合语音数据集进行训练:
| 数据集 | 时长 | 语言 |
|---|---|---|
| WenetSpeech | 1,361h | 中文 |
| In-house Data | 3,274h | 中英文 |
| aishell2 | 137h | 中文 |
| LibriSpeech | 131h | 英文 |
| Multi-CN | 100h | 中文 |
内部数据集使用第三方 ASR 服务转写,翻译标签使用第三方 MT 服务生成(伪标签)。
| 测试集 | 任务 | BLEU 分数 |
|---|---|---|
| CoVoST1 zh→en | 语音翻译 | 30.2 |
| CoVoST2 zh→en | 语音翻译 | 25.2 |
| CCMT2019 dev | 语音翻译 | 19.6 |
注意:以上为 7B 版本在原始论文中的报告数据。1.5B 轻量版在推理速度上有优势,但因 LLM 容量减小,识别/翻译精度可能略低于 7B 版本。
本仓库提供了完整的昇腾 NPU 适配方案:
torch.npu 替代 torch.cuda 实现 NPU 推理--device auto 自动检测 NPU 可用性torch.npu.synchronize() 确保准确计时compare_cpu_npu.py 脚本提供系统的精度对比框架| 组件 | 适配状态 | 说明 |
|---|---|---|
| Paraformer 编码器 | 已验证 | CPU/NPU 精度一致 |
| 适配器投影 | 已验证 | PyTorch 原生线性层,无需特殊处理 |
| Qwen2-1.5B LLM | 已验证 | transformers 库原生支持 NPU |
| LoRA 权重 | 已验证 | PEFT 库原生支持 NPU |
| FBank 特征提取 | 已验证 | torchaudio 原生支持 NPU |
Q: NPU 不可用怎么办?
A: 安装 torch_npu 并确认 CANN 驱动已正确安装。可使用 torch.npu.is_available() 检查。
Q: 显存不足怎么办?
A: 尝试使用 CPU 推理(--device cpu),或使用半精度推理(需自行添加 .half() 转换)。
Q: 推理速度慢怎么办? A: 确认 NPU 驱动版本正确,尝试增大 batch 或使用 FP16 推理。
MooER-MTL-5K-1.5B-npu/
├── README.md # 本文件
├── inference.py # NPU 适配推理脚本
├── compare_cpu_npu.py # CPU/NPU 精度对比脚本
├── requirements.txt # Python 依赖
├── test_audio.wav # 测试音频(~10秒中文语音)
├── screenshots/ # 截图目录
├── scripts/ # 辅助脚本目录
└── model/ # 模型文件(需自行下载)
├── paraformer_encoder/
│ ├── paraformer-encoder.pth
│ └── am.mvn
├── Qwen2-1.5B-Instruct/
├── asr/
│ ├── adapter_project.pt
│ └── lora_weights/
├── ast/
│ ├── adapter_project.pt
│ └── lora_weights/
└── asr_ast_mtl/
├── adapter_project.pt
└── lora_weights/如果 MooER 对您的研究有帮助,请引用以下论文:
@misc{xu2024mooer,
title={MooER: LLM-based Speech Recognition and Translation Models from Moore Threads},
author={Zhenlin Xu and others},
year={2024},
eprint={2408.05101},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2408.05101},
}本模型使用 MTSpeech License,详情请参见 MooER 仓库许可证。