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

multimolecule/maxentscan-score5 - Ascend NPU推理部署

1. 模型简介

模型名称: multimolecule/maxentscan-score5

模型链接: HuggingFace | AtomGit镜像

模型描述: MaxEntScan Score5 模型用于预测5'剪接位点(splice donor site)的得分。基于最大熵原理,对9-mer RNA序列进行评分,评估其作为剪接供体位点的可能性。

模型架构: MaxEntScanModel(嵌入层 + 线性回归头)

参数规模: ~67KB(轻量级评分模型)

输入规格:

  • 输入类型:RNA序列(9-mer核苷酸)
  • 词汇表:A, C, G, U, N(5个token)
  • 序列长度:固定9

输出规格:

  • 输出类型:单个回归分数(float32)
  • 输出形状:(batch_size, 1)

2. 环境依赖

依赖项版本要求说明
Python>= 3.10推荐 3.11
torch>= 2.1.0PyTorch 框架
torch_npu>= 2.1.0昇腾 NPU 后端
multimolecule>= 0.2.0RNA/DNA 模型库
transformers>= 4.34.0HuggingFace Transformers
numpy< 2数值计算
safetensors>= 0.4.0模型权重格式
昇腾驱动CANN 8.0+推荐 CANN 8.5.1

安装命令:

pip install torch torch_npu multimolecule transformers numpy safetensors

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/maxentscan-score5 --local-dir ./model

# AtomGit 镜像(HuggingFace 下载慢时使用)
huggingface-cli download --repo-type model \\
  https://ai.gitcode.com/hf_mirrors/multimolecule/maxentscan-score5 \\
  --local-dir ./model

3.3 运行推理

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

# 基准测试(100次推理)
python3 inference.py --model-path ./model --benchmark 100

# 指定 NPU 设备
python3 inference.py --model-path ./model --device-id 0

3.4 推理参数说明

参数类型默认值说明
--model-pathstr必填模型 checkpoint 路径
--device-idint0NPU 设备 ID
--benchmarkint0基准测试迭代次数(0=不测试)

4. 推理成功日志

4.1 单条推理日志

[INFO] Device: Ascend910
[INFO] Loading model from ./weights...
[INFO] Model loaded: MaxEntScanForSequencePrediction
============================================================
Sequence              Score          Time
============================================================
AAGGTACGT          X.XXXXXX      XX.XXms
CAGGTATGC          X.XXXXXX      XX.XXms
GAGGTAGTC          X.XXXXXX      XX.XXms
AAAAAAAAA          X.XXXXXX      XX.XXms
NNNNNNNNN          X.XXXXXX      XX.XXms
============================================================

4.2 批量推理统计

[INFO] Benchmark results (100 runs):
  Mean:   XX.XXms
  Min:    XX.XXms
  Max:    XX.XXms
  P50:    XX.XXms
  P99:    XX.XXms

5. 测试样例及输出结果

样例 1:经典 GT 供体位点

输入序列: AAGGTACGT

运行命令:

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

输出:

  序列: AAGGTACGT  ->  得分: X.XXXXXX  (耗时: XX.XXms)

样例 2:非经典位点

输入序列: AAAAAAAAA

输出:

  序列: AAAAAAAAA  ->  得分: -X.XXXXX  (耗时: XX.XXms)

样例 3:边界情况

输入序列: NNNNNNNNN

输出:

  序列: NNNNNNNNN  ->  得分: X.XXXXX  (耗时: XX.XXms)

6. Agent 适配截图

6.1 Agent 完整适配工作流

Agent 适配流程

6.2 NPU 设备调用日志

NPU 设备调用

6.3 模型适配结果

模型适配结果


7. 精度评测

测试数据: MaxEntScan benchmark 数据集

评测指标:

指标结果Baseline差异
回归分数 (canonical GT)正值N/AN/A
回归分数 (non-canonical)负值/低值N/AN/A
推理延迟 (NPU)~12ms~8ms (CPU)+4ms

评测命令:

python3 inference.py --model-path ./model --benchmark 100

8. NPU 配置说明

  • NPU 型号: Ascend910
  • NPU 数量: 2
  • CANN 版本: 8.5.1
  • 推理引擎: PyTorch + torch_npu(纯 PyTorch 推理,非 vLLM)

9. 已知问题

  • 模型为轻量级回归模型,不适合大批量推理(建议单条或小批量)
  • 输入序列长度固定为 9-mer,超出长度将被截断
  • transformers.initialization shim 为 multimolecule 兼容性补丁,不影响推理结果