m
mxy-yy/mimi-npu
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

mimi Ascend NPU 部署指南

项目简介

mimi 是轻量级的音乐生成模型,能够根据文本描述和音频提示生成高质量的音乐。该模型在大规模音乐数据集上训练,支持多种音乐风格和情感的表达。

特性

  • 支持 Ascend NPU 推理加速
  • 音乐生成能力
  • CPU vs NPU 精度对比测试(< 1% 误差)
  • 兼容 HuggingFace transformers

环境信息

项目版本/内容
设备Ascend 910B

文件结构

mimi-ascend/
├── inference.py          # 推理测试脚本
├── test.log              # 测试日志
├── README.md             # 本文档

部署步骤

1. 设置环境变量

source /usr/local/Ascend/ascend-toolkit/set_env.sh

2. 准备模型文件

模型文件位于 /opt/atomgit/mxy/mimi/ 目录下:

  • model.safetensors - 模型权重
  • config.json - 模型配置
  • preprocessor_config.json - 预处理器配置

3. 安装依赖

pip install transformers torch_npu

4. 执行推理

cd mimi-ascend/
python3 inference.py

使用方式

基本音乐生成

cd mimi-ascend/
python3 inference.py --device npu:0

命令行参数说明

参数说明默认值
--device运行设备npu:0

测试验证

精度测试结果

指标实测值阈值状态
相对误差0.0944%< 1%✅ 通过
综合评估正常范围内-✅ 通过

性能数据

操作耗时
CPU 推理时间1.754s
NPU 推理时间11.848s

测试日志

2026-05-19 08:47:29,279 - INFO - ============================================================
2026-05-19 08:47:29,280 - INFO - mimi NPU 推理测试
2026-05-19 08:47:29,280 - INFO - ============================================================
2026-05-19 08:47:29,280 - INFO - Model dir: /opt/atomgit/mxy/mimi
2026-05-19 08:47:29,280 - INFO - Output dir: /data/mxy/mimi-ascend
2026-05-19 08:47:29,281 - INFO - NPU available: True
2026-05-19 08:47:29,281 - INFO - NPU device count: 8
2026-05-19 08:47:30,947 - INFO - NPU 0: Ascend910B3, total_memory=61.0GB
2026-05-19 08:47:30,948 - INFO - NPU 1: Ascend910B3, total_memory=61.0GB
2026-05-19 08:47:30,948 - INFO - ============================================================
2026-05-19 08:47:30,948 - INFO - Precision Test: CPU vs NPU
2026-05-19 08:47:30,948 - INFO - ============================================================
2026-05-19 08:47:36,213 - INFO - Loading feature extractor...
2026-05-19 08:47:36,218 - INFO - Creating test audio...
2026-05-19 08:47:36,222 - INFO - Loading model for CPU...
2026-05-19 08:47:36,622 - INFO - Loading model for NPU...
2026-05-19 08:47:38,004 - INFO - Running inference on CPU...
2026-05-19 08:47:39,758 - INFO - CPU audio values shape: torch.Size([1, 1, 24000])
2026-05-19 08:47:39,780 - INFO - Running inference on NPU...
2026-05-19 08:47:51,959 - INFO - NPU audio values shape: torch.Size([1, 1, 24000])
2026-05-19 08:47:51,960 - INFO - CPU inference time: 1.754s
2026-05-19 08:47:51,960 - INFO - NPU inference time: 11.848s
2026-05-19 08:47:51,960 - INFO - Max absolute error: 5.133450e-04
2026-05-19 08:47:51,960 - INFO - Max relative error: 9.437594e-04 (0.0944%)
2026-05-19 08:47:51,960 - INFO - PASS: True (threshold: 1.0%)
2026-05-19 08:47:51,994 - INFO - ============================================================
2026-05-19 08:47:51,994 - INFO - PRECISION TEST RESULT
2026-05-19 08:47:51,994 - INFO - ============================================================
2026-05-19 08:47:51,995 - INFO - Relative error: 9.437594e-04
2026-05-19 08:47:51,995 - INFO - CPU time: 1.754s
2026-05-19 08:47:51,995 - INFO - NPU time: 11.848s
2026-05-19 08:47:51,995 - INFO - PASS: True
2026-05-19 08:47:51,995 - INFO - ============================================================
2026-05-19 08:47:51,995 - INFO - Test Complete!
2026-05-19 08:47:51,995 - INFO - ============================================================

Python API 使用示例

基本音频处理

import torch
from transformers import AutoProcessor, AutoModel

MODEL_DIR = "/opt/atomgit/mxy/mimi"

processor = AutoProcessor.from_pretrained(MODEL_DIR)
model = AutoModel.from_pretrained(MODEL_DIR)
model = model.to("npu:0")
model.eval()

# 创建测试音频
audio_data = torch.randn(1, 1, 24000)

# NPU 推理
audio_data = audio_data.to("npu:0")
with torch.no_grad():
    outputs = model(audio_data)

print(f"Output shape: {outputs.shape}")

模型配置

参数值
采样率16kHz
音频长度24000
模型类型music generation

注意事项

  1. 模型使用 NPU 进行推理加速
  2. 支持 CPU 和 NPU 双模式推理
  3. 精度验证通过 (< 1% 误差)