模型名称: multimolecule/optmrl
模型链接: HuggingFace
模型描述: OptMRL 是一个基于 1D 卷积神经网络的模型,用于从 5' UTR(非翻译区)RNA 序列预测平均核糖体载荷(Mean Ribosome Load, MRL)。该模型属于 multimolecule 框架中的 RNA 功能预测模型系列。
模型架构: 3层 1D 卷积网络 (Conv1D + ReLU + Dropout) + Dense 瓶颈层 + 回归头
参数规模: 475,641 可训练参数
输入规格:
输出规格:
| 依赖项 | 版本要求 | 说明 |
|---|---|---|
| Python | >= 3.10 | 推荐 3.11 |
| torch | >= 2.1.0 | PyTorch 框架 |
| torch_npu | >= 2.1.0 | 昇腾 NPU 后端 |
| multimolecule | >= 0.2.0 | 分子生物学模型库 |
| transformers | >= 4.46.0 | HuggingFace Transformers(含兼容 shim) |
| Pillow | >= 9.0 | 推理脚本截图依赖(可选) |
| 昇腾驱动 | CANN 8.0+ | 推荐 CANN 8.5.1 |
安装命令:
pip install torch torch_npu multimolecule transformers Pillow注意事项:
multimolecule 0.2.x 依赖 transformers >= 5.0 API,本仓库的 sitecustomize.py 提供了进程内兼容 shim,使其可在 transformers 4.x 环境下运行。sitecustomize.py 兼容层(如本适配环境),无需额外操作。否则需要手动注入 shim(见 inference.py 中的 _inject_transformers_shims() 函数)。# 检查 NPU 设备
npu-smi info
# 验证 torch_npu
python3 -c "import torch_npu; print(torch.npu.device_count(), torch.npu.get_device_name(0))"方式一:HuggingFace(推荐)
huggingface-cli download multimolecule/optmrl --local-dir ./optmrl_weights方式二:AtomGit 镜像(HuggingFace 下载慢时使用)
huggingface-cli download https://ai.gitcode.com/hf_mirrors/multimolecule/optmrl --local-dir ./optmrl_weights# 单条推理
python3 inference.py --model-path ./optmrl_weights
# 批量推理 + 性能基准测试(100 次)
python3 inference.py --model-path ./optmrl_weights --benchmark 100| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| --model-path | str | 必填 | 模型 checkpoint 路径 |
| --device | str | npu:0 | 推理设备(npu:0, npu:1 等) |
| --benchmark | int | 0 | 基准测试推理次数(0 = 不测试) |
[设备] NPU 可用, 设备数: 2
[设备] 当前设备: Ascend910_9362
[加载] 模型路径: ./optmrl_weights
[加载] 模型: OptMrlForSequencePrediction | 参数量: 475,641
[推理] 序列 1: ACGUACGUACGUACGUACGUACGUACGUACGUACGUACGU
[推理] MRL = 0.997287
[推理] 序列 2: UGCAUGCAUGCAUGCAUGCAUGCAUGCAUGCAUGCAUGCAU
[推理] MRL = -0.037632
[状态] SUCCESS[推理] 批量推理 (4 条):
ACGUACGUACGUACGUACGU... -> MRL = 0.997287
UGCAUGCAUGCAUGCAUGCA... -> MRL = -0.037632
GCGUGCGUGCGUGCGUGCGU... -> MRL = 0.434319
CGCACGCACGCACGCACGCA... -> MRL = 0.857972
[基准测试] 100 次推理统计:
总耗时: 0.050s
平均: 0.50 ms
最小: 0.50 ms
最大: 0.50 ms运行命令:
python3 inference.py --model-path ./optmrl_weights输出:
[推理] 序列 1: ACGUACGUACGUACGUACGUACGUACGUACGUACGUACGU
[推理] MRL = 0.997287
[推理] 序列 2: UGCAUGCAUGCAUGCAUGCAUGCAUGCAUGCAUGCAUGCAU
[推理] MRL = -0.037632
[状态] SUCCESS运行命令:
python3 inference.py --model-path ./optmrl_weights --benchmark 50输出:
[推理] 批量推理 (4 条):
ACGUACGUACGUACGUACGU... -> MRL = 0.997287
UGCAUGCAUGCAUGCAUGCA... -> MRL = -0.037632
GCGUGCGUGCGUGCGUGCGU... -> MRL = 0.434319
CGCACGCACGCACGCACGCA... -> MRL = 0.857972
[基准测试] 50 次推理统计:
平均: 0.50 ms/条


测试数据: 自建测试集(4 条人工设计 5' UTR 序列)
评测指标:
| 指标 | 结果 | 说明 |
|---|---|---|
| 推理延迟 (NPU) | ~0.50 ms/条 | Ascend910_9362, 单条推理 |
| NaN/Inf | 0 | 所有输出均无异常值 |
| 数值范围 | [-0.04, 1.00] | MRL 典型范围 |
评测命令:
python3 inference.py --model-path ./optmrl_weights --benchmark 100实际输出:
[基准测试] 100 次推理统计:
总耗时: 0.050s
平均: 0.50 ms
最小: 0.50 ms
最大: 0.50 mstransformers API 兼容性: multimolecule 0.2.x 期望 transformers >= 5.0 API。本仓库的 sitecustomize.py 提供了兼容 shim。如果环境中已有该 shim(如本适配环境),推理脚本会自动检测;否则推理脚本会注入运行时 shim(见 _inject_transformers_shims())。
tokenizers 版本冲突: multimolecule 要求 tokenizers >= 0.21, < 0.22,但 transformers 4.x 要求 tokenizers >= 0.22。通过 importlib.metadata.version 的 monkey-patch 解决。
输入长度: 模型内置 sequence_length=50。输入序列过长将被截断,建议使用 30-50 nt 的 5' UTR 片段以获得最佳预测效果。