g
gcw_coj3XaOd/multimolecule_mmsplice
模型介绍
文件和版本
Pull Requests
讨论
分析

MmSplice - 昇腾 NPU 推理部署

1. 模型简介

模型名称: multimolecule/mmsplice

模型链接: HuggingFace | AtomGit 镜像

模型描述: MmSplice 是一个用于预测 RNA 剪接位点活性的深度学习模型。它预测给定 DNA 序列在 5 个区域(acceptor_intron, acceptor, exon, donor, donor_intron)的剪接相关分数。

模型架构: MmSplice (多模块卷积神经网络)

  • acceptor_intron: Conv1d (256 channels, kernel=13)
  • acceptor: Conv1d + Dense (32 channels, kernel=15)
  • exon: Conv1d (128 channels, kernel=11)
  • donor: Dense blocks (128→64 hidden)
  • donor_intron: Conv1d (256 channels, kernel=13)

参数规模: 56,677 可训练参数

输入规格:

  • 类型:DNA 核苷酸序列 (A=0, C=1, G=2, T=3, N=1)
  • Shape:[batch_size, sequence_length]
  • 示例:ACGTTGCAAGCTACGATCGATCGATCGATCGATCGATCGATCGATCGATCG

输出规格:

  • 类型:5 维 logits (各区域剪接分数)
  • Shape:[batch_size, 5]
  • 区域顺序:acceptor_intron, acceptor, exon, donor, donor_intron

2. 环境依赖

依赖项版本要求说明
Python>= 3.10推荐 3.11
torch2.9.0PyTorch 框架
torch_npu2.9.0.post1昇腾 NPU 后端
multimolecule0.2.1MmSplice 模型定义
transformers5.15.0兼容 multimolecule
tokenizers0.22.2Tokenizer 库
huggingface-hub1.28.0模型下载
numpy1.26.4数值计算
昇腾驱动CANN 8.5.1Ascend910_9362

安装命令:

pip install torch==2.9.0 torch-npu==2.9.0
pip install multimolecule==0.2.1 transformers==5.15.0 tokenizers==0.22.2
pip install huggingface-hub==1.28.0 numpy==1.26.4

3. 推理步骤

3.1 环境准备

# 检查 NPU 设备
npu-smi info

# 验证 torch_npu
python3 -c "import torch_npu; print(torch.npu.device_count(), torch.npu.get_device_name(0))"

3.2 模型下载

方式一:HuggingFace(推荐)

huggingface-cli download multimolecule/mmsplice --local-dir ./mmsplice_weights

方式二:AtomGit 镜像(HuggingFace 下载慢时使用)

export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download multimolecule/mmsplice --local-dir ./mmsplice_weights

3.3 运行推理

python3 inference.py --model-path ./mmsplice_weights

3.4 推理参数说明

参数类型默认值说明
--model-pathstr必填模型 checkpoint 路径
--max-seq-lenint100最大序列长度
--deviceint0NPU 设备索引

4. 推理成功日志

4.1 单条推理日志

[模型] MmSplice (multimolecule/mmsplice)
[设备] Ascend910_9362 (npu:0)
[输入] ACGTTGCAAGCTACGATCGATCGATCGATCGATCGATCGATCGATCGATCG (51bp)
[输出] acceptor_intron: 0.006864, acceptor: 0.760456, exon: 0.047469, donor: 0.016738, donor_intron: 0.168472
[耗时] ~46ms (含模型加载)
[状态] SUCCESS

4.2 批量推理日志

[基准测试] 4次推理统计 (seq_len=100):
  批量输出 shape: (4, 5)
  推理耗时: 46.25ms
  平均: 11.56ms/条

5. 测试样例及输出结果

样例 1:单条 DNA 序列推理

运行命令:

python3 inference.py --model-path ./mmsplice_weights --max-seq-len 100

输出:

[模型] MmSplice (multimolecule/mmsplice)
[设备] Ascend NPU (npu:0)

[1] 加载模型...
    参数量: 56,677
    Device: Ascend910_9362

[2] 单条推理测试...
    输入序列 (51bp): ACGTTGCAAGCTACGATCGATCGATCGATCGATCGATCGATCGATCGATCG
    输出结果:
      acceptor_intron: 0.006864
      acceptor: 0.760456
      exon: 0.047469
      donor: 0.016738
      donor_intron: 0.168472
    原始logits: [-3.0954006   1.6122295  -1.1616095  -2.2040055   0.10508259]

[3] 批量推理测试...
    批量输入: shape=torch.Size([4, 100])
    批量输出: shape=(4, 5)
    推理耗时: 46.25ms (batch_size=4, seq_len=100)

[状态] SUCCESS

样例 2:批量推理 (batch_size=4)

输出:

    批量输入: shape=torch.Size([4, 100])
    批量输出: shape=(4, 5)
    推理耗时: 46.25ms

6. Agent适配截图

6.1 Agent 完整适配工作流

Agent 适配流程

6.2 NPU 设备调用日志

NPU 设备调用

6.3 模型适配结果

模型适配结果


7. 精度评测

MmSplice 是一个已预训练的生物学模型,输出为各区域的剪接活性分数(经过 softmax 归一化)。本适配聚焦于 NPU 推理部署,模型权重与原版一致。

评测指标:

指标结果
参数量56,677
输出维度5 (acceptor_intron, acceptor, exon, donor, donor_intron)
批量推理延迟 (batch=4, seq=100)46.25ms
算子兼容性OK (Ascend910_9362)

8. NPU 配置说明

  • NPU 型号: Ascend910_9362
  • NPU 卡数: 2 卡
  • 推理设备: npu:0
  • CANN 版本: 8.5.1
  • PyTorch 版本: 2.9.0+cpu (with torch_npu 2.9.0)

9. 已知问题

无。模型已在 Ascend910_9362 上完成单条推理、批量推理和算子兼容性验证。