在昇腾 NPU(Ascend 910B)上部署 MultiMolecule 提供的 Optimus 5-Prime 预训练模型 (面向人类 5'UTR 的平均核糖体装载量 MRL 回归模型,1D 卷积网络)。该方案通过 torch_npu 推理引擎 将模型部署至 Ascend 910B 进行前向推理,针对固定 50 nt 的 5'UTR RNA 序列预测标准化 平均核糖体装载量(MRL)分数。部署过程已完成 114 组测试用例,并附上全部真实输出结果。
Optimus 5-Prime(Human 5' UTR design and variant effect prediction from a massively parallel translation assay, Nature Biotechnology 2019)是由 Paul J. Sample 等人提出的 5'UTR 平均核糖体装载量预测模型。 它以固定 50 nt 的人类 5'UTR RNA 序列作为输入,预测对应序列的标准化平均核糖体装载量 (MRL)标量,即用于表征核糖体装载水平(翻译效率)的代理指标。该模型为纯前馈 1D 卷积网络, 不含 attention,也不采用自回归解码:
| 属性 | 值 |
|---|---|
| 输入 | 固定 50 nt 的 5'UTR RNA 序列(one-hot 编码为 5 个通道) |
| 编码 | A/C/G/U 四通道 one-hot;N 为全零通道(卷积第 5 个通道权重为 0) |
| 主干 | 3 层 Conv1d(120 个通道,kernel=8,padding="same",ReLU,conv_dropout=0.0) |
| 展平 | 按 Keras Flatten 顺序(length, channels)展平 → 50×120=6000 |
| 全连接 | Linear 6000→40(ReLU,dense_dropout=0.2) |
| 回归头 | Linear 40→1(无激活函数,用于回归任务) |
| 参数量 | 0.48M |
| 输出 | 标准化 MRL 分数 (batch, 1);ΔMRL = 变异序列 MRL − 参考序列 MRL |
| 权重文件 | model.safetensors / pytorch_model.bin(约 1.9MB) |
| 许可证 | AGPL-3.0 |
变异效应:该模型为单序列回归模型。分别对参考 5'UTR 和变异 5'UTR 执行推理后, 计算二者 MRL 的差值(ΔMRL),即可评估变异对翻译效率的影响(ΔMRL > 0 表示提升,ΔMRL < 0 表示降低)。
⚠️ Optimus 5-Prime 属于非自回归回归模型(无 token 生成,无 attention), vLLM-Ascend / sglang 无法托管,故采用 torch_npu 推理引擎完成 NPU 前向推理。
optimus5prime-NPU/
├── inference.py # 推理脚本(env / predict / batch / pooler / variant /
│ # loss / padding / benchmark / compare / dtype / device 共 11 种模式)
├── optimus5prime_model.py # 模型代码(multimolecule 移植,兼容 transformers 4.57.6)
├── generate_tests.py # 114 组测试用例生成器(命令 + 真实输出 → docs_test_cases.md)
├── docs_test_cases.md # 114 组完整测试用例及输出结果(第 9 节)
├── build_readme.py # 部署文档生成器(本文档)
├── README.md # 本文档
├── requirements.txt # 环境依赖清单
├── venv/ # 运行环境(python3 -m venv --system-site-packages venv)
└── assets/ # 素材目录
└── .placeholder # 空占位文件| 组件 | 版本 |
|---|---|
| 操作系统 | Linux aarch64(openEuler / HCE) |
| 昇腾 NPU | Ascend 910B × 2(Ascend910_9362) |
| CANN | 8.5.1(V100R001C25SPC002B220) |
| Python | 3.11.14 |
| PyTorch | 2.9.0+cpu(昇腾本地编译,算子运行于 NPU) |
| torch_npu | 2.9.0.post1+gitee7ba04 |
| transformers | 4.57.6 |
| safetensors | 0.7.0 |
| numpy | 1.26.4 |
| tokenizers | 0.22.2 |
完整依赖见 requirements.txt。
Optimus 5-Prime 模型已下载至 /data/models/multimolecule/optimus5prime
(包含 config.json / model.safetensors / pytorch_model.bin / tokenizer_config.json / vocab.txt)。
如需自行下载,可参考(HF 走 hf-mirror 镜像):
HF_ENDPOINT=https://hf-mirror.com huggingface-cli download multimolecule/optimus5prime --local-dir /data/models/multimolecule/optimus5prime模型路径可通过环境变量覆盖:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
OPTIMUS5PRIME_MODEL_PATH | /data/models/multimolecule/optimus5prime | 模型目录 |
项目已提供 venv/(复用系统级 torch / torch_npu / CANN),激活后即可运行:
cd optimus5prime-NPU
source venv/bin/activate
python inference.py --mode env # 环境自检
# 如未使用 venv,直接用系统 python3 亦可(本项目脚本在系统 python 下验证通过)python3 inference.py --mode env输出示例(实测):NPU 可用,2 张 Ascend910_9362 就绪,模型权重已就位,快速前向自检通过 ✅。
python3 inference.py --mode predict --sequence UAGCUUAUCAGACUGAUGUUGA --seq-name "microRNA 21"指定设备 / 精度:
python3 inference.py --mode predict --sequence UAGCUUAUCAGACUGAUGUUGA --device npu:0 --dtype float32python3 inference.py --mode batch --sequences "UAGCUUAUCAGACUGAUGUUGA,UGAGAACUGAAUUCCAUGGGUU"# 参考序列 vs 单碱基变异序列(模型卡示例)
python3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGAUAGCpython3 inference.py --mode pooler --sequence UAGCUUAUCAGACUGAUGUUGA| 命令 | 说明 |
|---|---|
python3 inference.py --mode loss --labels self | 基于自洽标签的 MSE 损失 |
python3 inference.py --mode loss --labels random --seed 42 | 基于随机标签的 MSE 损失 |
python3 inference.py --mode padding | 序列长度、填充、N/T 及大小写处理验证 |
python3 inference.py --mode benchmark --batch 8 | 不同序列长度与 batch 的前向基准测试 |
python3 inference.py --mode compare | NPU 与 CPU 输出一致性 |
python3 inference.py --mode dtype | float32 / bfloat16 / float16 精度对比 |
python3 inference.py --mode device | npu:0 / npu:1 / cpu 设备间对比 |
| 参数 | 默认值 | 说明 |
|---|---|---|
--mode | predict | 运行模式(共 11 种) |
--sequence | UAGCUUAUCAGACUGAUGUUGA | 输入 RNA 序列 |
--sequences | 无 | 批量序列(以逗号分隔) |
--seq-name | sequence | 序列名称,用于输出标注 |
--seq-names | 无 | 批量序列名称(以逗号分隔) |
--ref / --alt | 模型卡示例 | variant 的参考序列与变异序列 |
--device | npu:0 | 推理设备(npu:0 / npu:1 / cpu) |
--dtype | float32 | 推理精度(float32 / bfloat16 / float16) |
--batch | 1 | benchmark 模式的 batch size |
--lengths | [16,32,50,64,96,128,256] | benchmark 模式的序列长度列表 |
--labels | self | loss 模式的标签类型(self / random) |
--seed | 7 | 随机种子 |
--compact | False | 紧凑输出:每个用例输出一行关键结果(用于批量测试) |
| 场景 | 输入 | 标准化 MRL | 备注 |
|---|---|---|---|
| microRNA 21 5'UTR | UAGCUUAUCAGACUGAUGUUGA(22 nt,pad 至 50) | -0.109189 | 模型卡中的 ncRNA 示例 |
| microRNA 146a 5'UTR | UGAGAACUGAAUUCCAUGGGUU(22 nt) | -0.099806 | 模型卡中的 ncRNA 示例 |
| 参考序列(50 nt) | GGGACAUA...AGCUAGC(模型卡示例) | 1.254144 | 作为基准的参考序列 |
| 单碱基变异 A→U | 参考位置 46 C→A | 1.263130(Δ=+0.008986) | 变异效应 |
| 5' 端 3 nt 替换 | CAG + 参考[3:] | 1.272771(Δ=+0.018627) | 变异效应 |
| 空输入(全零通道) | ``(0 nt) | 0.793978 | N 通道权重为 0,等效于全零输入 |
| 全 N 序列 | N×50 | 0.793978 | 与空输入结果一致(通道 4 权重为 0) |
-0.109189 / bfloat16 -0.108887 / float16 -0.109131,
三种精度下结果一致,均可在 NPU 上正常运行。| 序列 | NPU MRL | CPU MRL | 绝对差 |
|---|---|---|---|
| microRNA 21 | -0.109189 | -0.109167 | 2.25e-05 |
| microRNA 146a | -0.099806 | -0.099779 | 2.70e-05 |
| 参考 50 nt | 1.254144 | 1.254123 | 2.15e-05 |
| microRNA 155 | 0.121052 | 0.121068 | 1.67e-05 |
| 全 N | 0.793976 | 0.793969 | 6.52e-06 |
说明:NPU 与 CPU 前向在 float32 下逐元素一致(绝对差 < 3e-5,为浮点舍入差异), 证明模型权重加载与 NPU 算子计算正确。完整对比见第 9 节用例 080–085。
以 microRNA 21 的 5'UTR 为例,完整运行 MRL 预测:
$ python3 inference.py --mode predict --sequence UAGCUUAUCAGACUGAUGUUGA --seq-name "microRNA 21" --compact
[predict] 名称=microRNA 21 序列=UAGCUUAUCAGACUGAUGUUGA 长度=22 设备=npu:0 精度=float32 MRL=-0.109189 耗时=0.001s输出说明:
[predict] MRL:模型预测的标准化平均核糖体装载量分数,数值越高,表示该 5'UTR 的翻译效率越高。长度:输入序列长度(< 50 时自动在右侧补零,> 50 时截断为前 50)。所有用例均在昇腾 NPU(Ascend 910B)上实测执行,命令与输出一一对应。 按 11 个大类组织,共 114 组 ≥ 114 组。
| 类别 | 编号 | 说明 | 数量 |
|---|---|---|---|
| A | 001–002 | 环境自检(双卡 / 指定可见卡) | 2 |
| B | 003–032 | 单序列 MRL 预测(真实序列 × 设备 × 精度 × 合成序列) | 30 |
| C | 033–041 | 批处理推理(batch 2–8,不同长度混合) | 9 |
| D | 042–057 | 变异效应 ΔMRL(单碱基 / 多碱基 / indel / 含 N) | 16 |
| E | 058–063 | pooler_output 的预回归共享表示 | 6 |
| F | 064–073 | 序列长度 / 填充 / N / T / 大小写 / 非法字符处理 | 10 |
| G | 074–079 | 不同推理精度对比(float32 / bfloat16 / float16) | 6 |
| H | 080–085 | NPU 与 CPU 输出一致性 | 6 |
| I | 086–093 | 序列长度 × batch 前向基准 | 8 |
| J | 094–099 | MSE 损失计算(自洽 / 随机标签) | 6 |
| K | 100–103 | 不同推理设备对比(npu:0 / npu:1 / cpu) | 4 |
| L | 104–114 | 合成序列与极端输入(全 A/C/G/U、极短、空、poly) | 11 |
python3 inference.py --mode env --compact输出:
[env] python=3.11.14 torch=2.9.0+cpu torch_npu=2.9.0.post1+gitee7ba04 NPU可用=True 设备数=2 设备0=Ascend910_9362 权重OK=True 前向OK=True MRL=-0.1092ASCEND_RT_VISIBLE_DEVICES=1 python3 inference.py --mode env --compact输出:
[env] python=3.11.14 torch=2.9.0+cpu torch_npu=2.9.0.post1+gitee7ba04 NPU可用=True 设备数=1 设备0=Ascend910_9362 权重OK=True 前向OK=True MRL=-0.1092python3 inference.py --mode predict --seq-name "microRNA 21" --sequence UAGCUUAUCAGACUGAUGUUGA --compact输出:
[predict] 名称=microRNA 21 序列=UAGCUUAUCAGACUGAUGUUGA 长度=22 设备=npu:0 精度=float32 MRL=-0.109189 耗时=0.001spython3 inference.py --mode predict --seq-name "microRNA 146a" --sequence UGAGAACUGAAUUCCAUGGGUU --compact输出:
[predict] 名称=microRNA 146a 序列=UGAGAACUGAAUUCCAUGGGUU 长度=22 设备=npu:0 精度=float32 MRL=-0.099806 耗时=0.001spython3 inference.py --mode predict --seq-name "microRNA 155" --sequence UUAAUGCUAAUCGUGAUAGGGGUU --compact输出:
[predict] 名称=microRNA 155 序列=UUAAUGCUAAUCGUGAUAGGGGUU 长度=24 设备=npu:0 精度=float32 MRL=0.121052 耗时=0.001spython3 inference.py --mode predict --seq-name "HIV-1 TAR-WT" --sequence GGUCUCUCUGGUUAGACCAGAUCUGAGCCUGGGAGCUCUCUGGCUAACUAGGGAACC --compact输出:
[predict] 名称=HIV-1 TAR-WT 序列=GGUCUCUCUGGUUAGACCAGAUCUGAGCCUGGGAGCUCUCUGGCUAACUAGGGAACC 长度=57 设备=npu:0 精度=float32 MRL=0.753697 耗时=0.001spython3 inference.py --mode predict --seq-name "vault RNA 2-1" --sequence CGGGUCGGAGUUAGCUCAAGCGGUUACCUCCUCAUGCCGGACUUUCUAUCUGUCCAUCUCUGUGCUGGGGUUCGAGACCCGCGGGUGCUUACUGACCCUUUUAUGCAA --compact输出:
[predict] 名称=vault RNA 2-1 序列=CGGGUCGGAGUUAGCUCAAGCGGUUACCUCCUCAUGCCGGACUUUCUAUCUGUCCAUCUCUGUGCUGGGGUUCGAGACCCGCGGGUGCUUACUGACCCUUUUAUGCAA 长度=108 设备=npu:0 精度=float32 MRL=-1.009857 耗时=0.001spython3 inference.py --mode predict --seq-name "interleukin 10 mRNA" --sequence AUGCACAGCUCAGCACUGCUCUGUUGCCUGGUCCUCCUGACUGGGGUGAGGGCC --compact输出:
[predict] 名称=interleukin 10 mRNA 序列=AUGCACAGCUCAGCACUGCUCUGUUGCCUGGUCCUCCUGACUGGGGUGAGGGCC 长度=54 设备=npu:0 精度=float32 MRL=-0.415402 耗时=0.001spython3 inference.py --mode predict --seq-name "prion protein mRNA" --sequence AUGGCGAACCUUGGCUGCUGGAUGCUGGUUCUCUUUGUGGCCACAUGGAGUGACCUGGGCCUCUGC --compact输出:
[predict] 名称=prion protein mRNA 序列=AUGGCGAACCUUGGCUGCUGGAUGCUGGUUCUCUUUGUGGCCACAUGGAGUGACCUGGGCCUCUGC 长度=66 设备=npu:0 精度=float32 MRL=-1.271092 耗时=0.001spython3 inference.py --mode predict --seq-name "insulin mRNA" --sequence AUGGCCCUGUGGAUGCGCCUCCUGCCCCUGCUGGCGCUGCUGGCCCUCUGGGGACCUGACCCAGCCGCAGCCUUUGUGAACCAACACCUGUGCGGCUCACACCUGGUGGAAGCUCUCUACCUAGUGUGCGGGGAACGAGGCUUCUUCUACACACCCAAGACCCGCCGGGAGGCAGAGGACCUGCAGGUGGGGCAGGUGGAGCUGGGCGGGGGCCCUGGUGCAGGCAGCCUGCAGCCCUUGGCCCUGGAGGGGUCCCUGCAGAAGCGUGGCAUUGUGGAACAAUGCUGUACCAGCAUCUGCUCCCUCUACCAGCUGGAGAACUACUGCAACUAG --compact输出:
[predict] 名称=insulin mRNA 序列=AUGGCCCUGUGGAUGCGCCUCCUGCCCCUGCUGGCGCUGCUGGCCCUCUGGGGACCUGACCCAGCCGCAGCCUUUGUGAACCAACACCUGUGCGGCUCACACCUGGUGGAAGCUCUCUACCUAGUGUGCGGGGAACGAGGCUUCUUCUACACACCCAAGACCCGCCGGGAGGCAGAGGACCUGCAGGUGGGGCAGGUGGAGCUGGGCGGGGGCCCUGGUGCAGGCAGCCUGCAGCCCUUGGCCCUGGAGGGGUCCCUGCAGAAGCGUGGCAUUGUGGAACAAUGCUGUACCAGCAUCUGCUCCCUCUACCAGCUGGAGAACUACUGCAACUAG 长度=333 设备=npu:0 精度=float32 MRL=-1.446203 耗时=0.001spython3 inference.py --mode predict --seq-name "NRAS 5'UTR" --sequence GGGGCCGGAAGUGCCGCUCCUUGGUGGGGGCUGUUCAUGGCGGUUCCGGGGUCUCCAACAUUUUUCCCGGCUGUGGUCCUAAAUCUGUCCAAAGCAGAGGCAGUGGAGCUUGAGGUUCUUGCUGGUGUGAA --compact输出:
[predict] 名称=NRAS 5'UTR 序列=GGGGCCGGAAGUGCCGCUCCUUGGUGGGGGCUGUUCAUGGCGGUUCCGGGGUCUCCAACAUUUUUCCCGGCUGUGGUCCUAAAUCUGUCCAAAGCAGAGGCAGUGGAGCUUGAGGUUCUUGCUGGUGUGAA 长度=131 设备=npu:0 精度=float32 MRL=-1.308528 耗时=0.001spython3 inference.py --mode predict --seq-name "amyloid beta 5'UTR" --sequence GUCAGUUUCCUCGGCAGCGGUAGGCGAGAGCACGCGGAGGAGCGUGCGCGGGGGCCCCGGGAGACGGCGGCGGUGGCGGCGCGGGCAGAGCAAGGACGCGGCGGAUCCCACUCGCACAGCAGCGCACUCGGUGCCCCGCGCAGGGUCGCG --compact输出:
[predict] 名称=amyloid beta 5'UTR 序列=GUCAGUUUCCUCGGCAGCGGUAGGCGAGAGCACGCGGAGGAGCGUGCGCGGGGGCCCCGGGAGACGGCGGCGGUGGCGGCGCGGGCAGAGCAAGGACGCGGCGGAUCCCACUCGCACAGCAGCGCACUCGGUGCCCCGCGCAGGGUCGCG 长度=150 设备=npu:0 精度=float32 MRL=0.482783 耗时=0.001spython3 inference.py --mode predict --seq-name "RUNX1 5'UTR" --sequence ACUUCUUUGGGCCUCAUAAACAACCACAGAACCACAAGUUGGGUAGCCUGGCAGUGUCAGAAGUCUGAACCCAGCAUAGUGGUCAGCAGGCAGGACGAAUCACACUGAAUGCAAACCACAGGGUUUCGCAGCGUGGUAAAAGAAAUCAUUGAGUCCCCCGCCUUCAGAAGAGGGUGCAUUUUCAGGAGGAAGCG --compact输出:
[predict] 名称=RUNX1 5'UTR 序列=ACUUCUUUGGGCCUCAUAAACAACCACAGAACCACAAGUUGGGUAGCCUGGCAGUGUCAGAAGUCUGAACCCAGCAUAGUGGUCAGCAGGCAGGACGAAUCACACUGAAUGCAAACCACAGGGUUUCGCAGCGUGGUAAAAGAAAUCAUUGAGUCCCCCGCCUUCAGAAGAGGGUGCAUUUUCAGGAGGAAGCG 长度=194 设备=npu:0 精度=float32 MRL=0.740996 耗时=0.001spython3 inference.py --mode predict --seq-name "FMR1 5'UTR" --sequence CUCAGUCAGGCGCUCAGCUCCGUUUCGGUUUCACUUCCGGUGGAGGGCCGCCUCUGAGCGGGCGGCGGGCCGACGGCGAGCGCGGGCGGCGGCGGUGACGGAGGCGCCGCUGCCAGGGGGCGUGCGGCAGCGCGGCGGCGGCGGCGGCGGCGGCGGCGGCGGAGGCGGCGGCGGCGGCGGCGGCGGCGGCGGCUGGGCCUCGAGCGCCCGCAGCCCACCUCUCGGGGGCGGGCUCCCGGCGCUAGCAGGGCUGAAGAGAAG --compact输出:
[predict] 名称=FMR1 5'UTR 序列=CUCAGUCAGGCGCUCAGCUCCGUUUCGGUUUCACUUCCGGUGGAGGGCCGCCUCUGAGCGGGCGGCGGGCCGACGGCGAGCGCGGGCGGCGGCGGUGACGGAGGCGCCGCUGCCAGGGGGCGUGCGGCAGCGCGGCGGCGGCGGCGGCGGCGGCGGCGGCGGAGGCGGCGGCGGCGGCGGCGGCGGCGGCGGCUGGGCCUCGAGCGCCCGCAGCCCACCUCUCGGGGGCGGGCUCCCGGCGCUAGCAGGGCUGAAGAGAAG 长度=261 设备=npu:0 精度=float32 MRL=0.427745 耗时=0.001spython3 inference.py --mode predict --seq-name "MYC 5'UTR" --sequence AACUCGCUGUAGUAAUUCCAGCGAGAGGCAGAGGGAGCGAGCGGGCGGCCGGCUAGGGUGGAAGAGCCGGGCGAGCAGAGCUGCGCUGCGGGCGUCCUGGGAAGGGAGAUCCGGAGCGAAUAGGGGGCUUCGCCUCUGGCCCAGCCCUCCCGCUGAUCCCCCAGCCAGCGGUCCGCAACCCUUGCCGCAUCCACGAAACUUUGCCCAUAGCAGCGGGCGGGCACUUUGCACUGGAACUUACAACACCCGAGCAAGGACGCGACUCUCCCGACGCGGGGAGGCUAUUCUGCCCAUUUGGGGACACUUCCCCGCCGCUGCCAGGACCCGCUUCUCUGAAAGGCUCUCCUUGCAGCUGCUUAGACG --compact输出:
[predict] 名称=MYC 5'UTR 序列=AACUCGCUGUAGUAAUUCCAGCGAGAGGCAGAGGGAGCGAGCGGGCGGCCGGCUAGGGUGGAAGAGCCGGGCGAGCAGAGCUGCGCUGCGGGCGUCCUGGGAAGGGAGAUCCGGAGCGAAUAGGGGGCUUCGCCUCUGGCCCAGCCCUCCCGCUGAUCCCCCAGCCAGCGGUCCGCAACCCUUGCCGCAUCCACGAAACUUUGCCCAUAGCAGCGGGCGGGCACUUUGCACUGGAACUUACAACACCCGAGCAAGGACGCGACUCUCCCGACGCGGGGAGGCUAUUCUGCCCAUUUGGGGACACUUCCCCGCCGCUGCCAGGACCCGCUUCUCUGAAAGGCUCUCCUUGCAGCUGCUUAGACG 长度=363 设备=npu:0 精度=float32 MRL=0.542048 耗时=0.001spython3 inference.py --mode predict --seq-name "ATF4 5'UTR" --sequence CAUUUCUACUUUGCCCGCCCACAGAUGUAGUUUUCUCUGCGCGUGUGCGUUUUCCCUCCUCCCCGCCCUCAGGGUCCACGGCCACCAUGGCGUAUUAGGGGCAGCAGUGCCUGCGGCAGCAUUGGCCUUUGCAGCGGCGGCAGCAGCACCAGGCUCUGCAGCGGCAACCCCCAGCGGCUUAAGCCAUGGCGCUUCUCACGGCAUUCAGCAGCAGCGUUGCUGUAACCGACAAAGACACCUUCGAAUUAAGCACAUUCCUCGAUUCCAGCAAAGCACCGCAAC --compact输出:
[predict] 名称=ATF4 5'UTR 序列=CAUUUCUACUUUGCCCGCCCACAGAUGUAGUUUUCUCUGCGCGUGUGCGUUUUCCCUCCUCCCCGCCCUCAGGGUCCACGGCCACCAUGGCGUAUUAGGGGCAGCAGUGCCUGCGGCAGCAUUGGCCUUUGCAGCGGCGGCAGCAGCACCAGGCUCUGCAGCGGCAACCCCCAGCGGCUUAAGCCAUGGCGCUUCUCACGGCAUUCAGCAGCAGCGUUGCUGUAACCGACAAAGACACCUUCGAAUUAAGCACAUUCCUCGAUUCCAGCAAAGCACCGCAAC 长度=282 设备=npu:0 精度=float32 MRL=-0.795356 耗时=0.001spython3 inference.py --mode predict --seq-name "GPI p137 3'UTR" --sequence UUUUUAAAAGGAAAAGAUACCAAAUGCCUGCUGCUACCACCCUUUUCAAUUGCUAUGUUUUGAAAGGCACCAGUAUGUGUUUUAGAUUGAUUUAAAUGUUUCAUUUAAAUCACGGACAGUAGUUUCAGUUCUGAUGGUAUAAGCAAAACAAAUAAAACGUUUAUAAAAGUUGUAUCUUGAAACACUGGUGUUCAACAGCUAGCAGCUUAUGUGAUUCACCCCAUGCCACGUUAGUGUCACAAAUUUUAUGGUUUAUCUCCAGCAACAUUUCUCUAGUACUUGCACUUAUUAUCUGAAUUC --compact输出:
[predict] 名称=GPI p137 3'UTR 序列=UUUUUAAAAGGAAAAGAUACCAAAUGCCUGCUGCUACCACCCUUUUCAAUUGCUAUGUUUUGAAAGGCACCAGUAUGUGUUUUAGAUUGAUUUAAAUGUUUCAUUUAAAUCACGGACAGUAGUUUCAGUUCUGAUGGUAUAAGCAAAACAAAUAAAACGUUUAUAAAAGUUGUAUCUUGAAACACUGGUGUUCAACAGCUAGCAGCUUAUGUGAUUCACCCCAUGCCACGUUAGUGUCACAAAUUUUAUGGUUUAUCUCCAGCAACAUUUCUCUAGUACUUGCACUUAUUAUCUGAAUUC 长度=300 设备=npu:0 精度=float32 MRL=0.954142 耗时=0.001spython3 inference.py --mode predict --seq-name "NPM1 3'UTR" --sequence GAAAAUAGUUUAAACAAUUUGUUAAAAAAUUUUCCGUCUUAUUUCAUUUCUGUAACAGUUGAUAUCUGGCUGUCCUUUUUAUAAUGCAGAGUGAGAACUUUCCCUACCGUGUUUGAUAAAUGUUGUCCAGGUUCUAUUGCCAAGAAUGUGUUGUCCAAAAUGCCUGUUUAGUUUUUAAAGAUGGAACUCCACCCUUUGCUUGGUUUUAAGUAUGUAUGGAAUGUUAUGAUAGGACAUAGUAGUAGCGGUGGUCAGACAUGGAAAUGGUGGGGAGACAAAAAUAUACAUGUGAAAUAAAACUCAGUAUUUUAAUAAAGUAGCACGGUUUCUAUUGA --compact输出:
[predict] 名称=NPM1 3'UTR 序列=GAAAAUAGUUUAAACAAUUUGUUAAAAAAUUUUCCGUCUUAUUUCAUUUCUGUAACAGUUGAUAUCUGGCUGUCCUUUUUAUAAUGCAGAGUGAGAACUUUCCCUACCGUGUUUGAUAAAUGUUGUCCAGGUUCUAUUGCCAAGAAUGUGUUGUCCAAAAUGCCUGUUUAGUUUUUAAAGAUGGAACUCCACCCUUUGCUUGGUUUUAAGUAUGUAUGGAAUGUUAUGAUAGGACAUAGUAGUAGCGGUGGUCAGACAUGGAAAUGGUGGGGAGACAAAAAUAUACAUGUGAAAUAAAACUCAGUAUUUUAAUAAAGUAGCACGGUUUCUAUUGA 长度=335 设备=npu:0 精度=float32 MRL=0.824072 耗时=0.001spython3 inference.py --mode predict --seq-name "telomerase RNA" --sequence GGGUUGCGGAGGGUGGGCCUGGGAGGGGUGGUGGCCAUUUUUUGUCUAACCCUAACUGAGAAGGGCGUAGGCGCCGUGCUUUUGCUCCCCGCGCGCUGUUUUUCUCGCUGACUUUCAGCGGGCGGAAAAGCCUCGGCCUGCCGCCUUCCACCGUUCAUUCUAGAGCAAACAAAAAAUGUCAGCUGCUGGCCCGUUCGCCCCUCCCGGGGACCUGCGGCGGGUCGCCUGCCCAGCCCCCGAACCCCGCCUGGAGGCCGCGGUCGGCCCGGGGCUUCUCCGGAGGCACCCACUGCCACCGCGAAGAGUUGGGCUCUGUCAGCCGCGGGUCUCUCGGGGGCGAGGGCGAGGUUCAGGCCUUUCAGGCCGCAGGAAGAGGAACGGAGCGAGUCCCCGCGCGCGGCGCGAUUCCCUGAGCUGUGGGACGUGCACCCAGGACUCGGCUCACACAUGC --compact输出:
[predict] 名称=telomerase RNA 序列=GGGUUGCGGAGGGUGGGCCUGGGAGGGGUGGUGGCCAUUUUUUGUCUAACCCUAACUGAGAAGGGCGUAGGCGCCGUGCUUUUGCUCCCCGCGCGCUGUUUUUCUCGCUGACUUUCAGCGGGCGGAAAAGCCUCGGCCUGCCGCCUUCCACCGUUCAUUCUAGAGCAAACAAAAAAUGUCAGCUGCUGGCCCGUUCGCCCCUCCCGGGGACCUGCGGCGGGUCGCCUGCCCAGCCCCCGAACCCCGCCUGGAGGCCGCGGUCGGCCCGGGGCUUCUCCGGAGGCACCCACUGCCACCGCGAAGAGUUGGGCUCUGUCAGCCGCGGGUCUCUCGGGGGCGAGGGCGAGGUUCAGGCCUUUCAGGCCGCAGGAAGAGGAACGGAGCGAGUCCCCGCGCGCGGCGCGAUUCCCUGAGCUGUGGGACGUGCACCCAGGACUCGGCUCACACAUGC 长度=451 设备=npu:0 精度=float32 MRL=0.096651 耗时=0.001spython3 inference.py --mode predict --seq-name "7SK snRNA" --sequence GGAUGUGAGGGCGAUCUGGCUGCGACAUCUGUCACCCCAUUGAUCGCCAGGGUUGAUUCGGCUGAUCUGGCUGGCUAGGCGGGUGUCCCCUUCCUCCCUCACCGCUCCAUGUGCGUCCCUCCCGAAGCUGCGCGCUCGGUCGAAGAGGACGACCAUCCCCGAUAGAGGAGGACCGGUCUUCGGUCAAGGGUAUACGAGUAGCUGCGCUCCCCUGCUAGAACCUCCAAACAAGCUCUCAAGGUCCAUUUGUAGGAGAACGUAGGGUAGUCAAGCUUCCAAGACUCCAGACACAUCCAAAUGAGGCGCUGCAUGUGGCAGUCUGCCUUUCUUUU --compact输出:
[predict] 名称=7SK snRNA 序列=GGAUGUGAGGGCGAUCUGGCUGCGACAUCUGUCACCCCAUUGAUCGCCAGGGUUGAUUCGGCUGAUCUGGCUGGCUAGGCGGGUGUCCCCUUCCUCCCUCACCGCUCCAUGUGCGUCCCUCCCGAAGCUGCGCGCUCGGUCGAAGAGGACGACCAUCCCCGAUAGAGGAGGACCGGUCUUCGGUCAAGGGUAUACGAGUAGCUGCGCUCCCCUGCUAGAACCUCCAAACAAGCUCUCAAGGUCCAUUUGUAGGAGAACGUAGGGUAGUCAAGCUUCCAAGACUCCAGACACAUCCAAAUGAGGCGCUGCAUGUGGCAGUCUGCCUUUCUUUU 长度=332 设备=npu:0 精度=float32 MRL=-0.990503 耗时=0.001spython3 inference.py --mode predict --seq-name "brain cytoplasmic RNA 1" --sequence GGCCGGGCGCGGUGGCUCACGCCUGUAAUCCCAGCUCUCAGGGAGGCUAAGAGGCGGGAGGAUAGCUUGAGCCCAGGAGUUCGAGACCUGCCUGGGCAAUAUAGCGAGACCCCGUUCUCCAGAAAAAGGAAAAAAAAAAACAAAAGACAAAAAAAAAAUAAGCGUAACUUCCCUCAAAGCAACAACCCCCCCCCCCCUUU --compact输出:
[predict] 名称=brain cytoplasmic RNA 1 序列=GGCCGGGCGCGGUGGCUCACGCCUGUAAUCCCAGCUCUCAGGGAGGCUAAGAGGCGGGAGGAUAGCUUGAGCCCAGGAGUUCGAGACCUGCCUGGGCAAUAUAGCGAGACCCCGUUCUCCAGAAAAAGGAAAAAAAAAAACAAAAGACAAAAAAAAAAUAAGCGUAACUUCCCUCAAAGCAACAACCCCCCCCCCCCUUU 长度=200 设备=npu:0 精度=float32 MRL=0.288587 耗时=0.001spython3 inference.py --mode predict --sequence UAGCUUAUCAGACUGAUGUUGA --device npu:0 --compact输出:
[predict] 名称=microRNA 21 序列=UAGCUUAUCAGACUGAUGUUGA 长度=22 设备=npu:0 精度=float32 MRL=-0.109189 耗时=0.001spython3 inference.py --mode predict --sequence UAGCUUAUCAGACUGAUGUUGA --device npu:1 --compact输出:
[predict] 名称=microRNA 21 序列=UAGCUUAUCAGACUGAUGUUGA 长度=22 设备=npu:1 精度=float32 MRL=-0.109189 耗时=0.018spython3 inference.py --mode predict --sequence UAGCUUAUCAGACUGAUGUUGA --device cpu --compact输出:
[predict] 名称=microRNA 21 序列=UAGCUUAUCAGACUGAUGUUGA 长度=22 设备=cpu 精度=float32 MRL=-0.109167 耗时=0.003spython3 inference.py --mode predict --sequence UAGCUUAUCAGACUGAUGUUGA --dtype float32 --compact输出:
[predict] 名称=microRNA 21 序列=UAGCUUAUCAGACUGAUGUUGA 长度=22 设备=npu:0 精度=float32 MRL=-0.109189 耗时=0.001spython3 inference.py --mode predict --sequence UAGCUUAUCAGACUGAUGUUGA --dtype bfloat16 --compact输出:
[predict] 名称=microRNA 21 序列=UAGCUUAUCAGACUGAUGUUGA 长度=22 设备=npu:0 精度=bfloat16 MRL=-0.108887 耗时=0.041spython3 inference.py --mode predict --sequence UAGCUUAUCAGACUGAUGUUGA --dtype float16 --compact输出:
[predict] 名称=microRNA 21 序列=UAGCUUAUCAGACUGAUGUUGA 长度=22 设备=npu:0 精度=float16 MRL=-0.109131 耗时=0.036spython3 inference.py --mode predict --seq-name "syn16" --sequence CUAAUCUCUAACAUCA --compact输出:
[predict] 名称=syn16 序列=CUAAUCUCUAACAUCA 长度=16 设备=npu:0 精度=float32 MRL=0.776408 耗时=0.001spython3 inference.py --mode predict --seq-name "syn32" --sequence AUCAGUGUAUGCUUCUUUGAAACUUGAGUUUG --compact输出:
[predict] 名称=syn32 序列=AUCAGUGUAUGCUUCUUUGAAACUUGAGUUUG 长度=32 设备=npu:0 精度=float32 MRL=0.803762 耗时=0.001spython3 inference.py --mode predict --seq-name "syn48" --sequence GACUAAACCUGUCCGCUGAAACUGAGCGGGGUACUGCAGCCGAUGUAU --compact输出:
[predict] 名称=syn48 序列=GACUAAACCUGUCCGCUGAAACUGAGCGGGGUACUGCAGCCGAUGUAU 长度=48 设备=npu:0 精度=float32 MRL=-0.227817 耗时=0.001spython3 inference.py --mode predict --seq-name "syn64" --sequence GGUCCAUAGCGAUCGUUCAAGAGGGAUAUCCCGCGAGGCGACGGUAAUGCCAGCAUGUUGUCUG --compact输出:
[predict] 名称=syn64 序列=GGUCCAUAGCGAUCGUUCAAGAGGGAUAUCCCGCGAGGCGACGGUAAUGCCAGCAUGUUGUCUG 长度=64 设备=npu:0 精度=float32 MRL=-0.871905 耗时=0.001spython3 inference.py --mode predict --seq-name "syn80" --sequence UGUCGGACAAUGUAGAUAUCCUAUACUCUGAGCGGCCGCCGCGUAGCGAAAGACUUUGAGCUUGCCUAACGGUUUACUUU --compact输出:
[predict] 名称=syn80 序列=UGUCGGACAAUGUAGAUAUCCUAUACUCUGAGCGGCCGCCGCGUAGCGAAAGACUUUGAGCUUGCCUAACGGUUUACUUU 长度=80 设备=npu:0 精度=float32 MRL=-1.007995 耗时=0.001spython3 inference.py --mode batch --sequences UAGCUUAUCAGACUGAUGUUGA,UGAGAACUGAAUUCCAUGGGUU --compact输出:
[batch] batch=2 设备=npu:0 精度=float32 logits=(2, 1) MRL=['-0.109189', '-0.099806'] 耗时=0.002s
[batch] 序列0: microRNA 21 L=22 MRL=-0.109189
[batch] 序列1: microRNA 146a L=22 MRL=-0.099806python3 inference.py --mode batch --sequences UAGCUUAUCAGACUGAUGUUGA,UGAGAACUGAAUUCCAUGGGUU,UUAAUGCUAAUCGUGAUAGGGGUU --compact输出:
[batch] batch=3 设备=npu:0 精度=float32 logits=(3, 1) MRL=['-0.109189', '-0.099806', '0.121052'] 耗时=0.002s
[batch] 序列0: seq0 L=22 MRL=-0.109189
[batch] 序列1: seq1 L=22 MRL=-0.099806
[batch] 序列2: seq2 L=24 MRL=0.121052python3 inference.py --mode batch --sequences UAGCUUAUCAGACUGAUGUUGA,UGAGAACUGAAUUCCAUGGGUU,GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC,AUCAGUGUAUGCUUCUUUGAAACUUGAGUUUG --compact输出:
[batch] batch=4 设备=npu:0 精度=float32 logits=(4, 1) MRL=['-0.109189', '-0.099806', '1.254144', '0.803762'] 耗时=0.002s
[batch] 序列0: seq0 L=22 MRL=-0.109189
[batch] 序列1: seq1 L=22 MRL=-0.099806
[batch] 序列2: seq2 L=50 MRL=1.254144
[batch] 序列3: seq3 L=32 MRL=0.803762python3 inference.py --mode batch --sequences UAGCUUAUCAGACUGAUGUUGA,GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC,AUCAGUGUAUGCUUCUUUGAAACUUGAGUUUG,GGUCCAUAGCGAUCGUUCAAGAGGGAUAUCCCGCGAGGCGACGGUAAUGCCAGCAUGUUGUCUG,GCUAGCUGAGCCUCCGUCAGACAGAAUUGCCGUCGGUCCCACGAGUGUUCAAUCCGGGUACGGGUGUCUCGUGCUCAAGUUAUACAGACUCUCCUGCCAA --compact输出:
[batch] batch=5 设备=npu:0 精度=float32 logits=(5, 1) MRL=['-0.109189', '1.254144', '0.803762', '-0.871905', '0.483292'] 耗时=0.041s
[batch] 序列0: seq0 L=22 MRL=-0.109189
[batch] 序列1: seq1 L=50 MRL=1.254144
[batch] 序列2: seq2 L=32 MRL=0.803762
[batch] 序列3: seq3 L=64 MRL=-0.871905
[batch] 序列4: seq4 L=100 MRL=0.483292python3 inference.py --mode batch --sequences UAGCUUAUCAGACUGAUGUUGA,GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC,CUAAUCUCUAACAUCA,AUCAGUGUAUGCUUCUUUGAAACUUGAGUUUG,GACUAAACCUGUCCGCUGAAACUGAGCGGGGUACUGCAGCCGAUGUAU,GGUCCAUAGCGAUCGUUCAAGAGGGAUAUCCCGCGAGGCGACGGUAAUGCCAGCAUGUUGUCUG,UGUCGGACAAUGUAGAUAUCCUAUACUCUGAGCGGCCGCCGCGUAGCGAAAGACUUUGAGCUUGCCUAACGGUUUACUUU,GCUAGCUGAGCCUCCGUCAGACAGAAUUGCCGUCGGUCCCACGAGUGUUCAAUCCGGGUACGGGUGUCUCGUGCUCAAGUUAUACAGACUCUCCUGCCAA --compact输出:
[batch] batch=8 设备=npu:0 精度=float32 logits=(8, 1) MRL=['-0.109189', '1.254144', '0.776408', '0.803762', '-0.227817', '-0.871905', '-1.007995', '0.483292'] 耗时=0.002s
[batch] 序列0: seq0 L=22 MRL=-0.109189
[batch] 序列1: seq1 L=50 MRL=1.254144
[batch] 序列2: seq2 L=16 MRL=0.776408
[batch] 序列3: seq3 L=32 MRL=0.803762
[batch] 序列4: seq4 L=48 MRL=-0.227817
[batch] 序列5: seq5 L=64 MRL=-0.871905
[batch] 序列6: seq6 L=80 MRL=-1.007995
[batch] 序列7: seq7 L=100 MRL=0.483292python3 inference.py --mode batch --sequences UAGCUUAUCAGACUGAUGUUGA,GACUAAACCUGUCCGCUGAAACUGAGCGGGGUACUGCAGCCGAUGUAU,GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC,GCUAGCUGAGCCUCCGUCAGACAGAAUUGCCGUCGGUCCCACGAGUGUUCAAUCCGGGUACGGGUGUCUCGUGCUCAAGUUAUACAGACUCUCCUGCCAA --compact输出:
[batch] batch=4 设备=npu:0 精度=float32 logits=(4, 1) MRL=['-0.109189', '-0.227817', '1.254144', '0.483292'] 耗时=0.001s
[batch] 序列0: seq0 L=22 MRL=-0.109189
[batch] 序列1: seq1 L=48 MRL=-0.227817
[batch] 序列2: seq2 L=50 MRL=1.254144
[batch] 序列3: seq3 L=100 MRL=0.483292python3 inference.py --mode batch --sequences UAGCUUAUCAGACUGAUGUUGA,GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --device npu:1 --compact输出:
[batch] batch=2 设备=npu:1 精度=float32 logits=(2, 1) MRL=['-0.109189', '1.254144'] 耗时=0.002s
[batch] 序列0: microRNA 21 L=22 MRL=-0.109189
[batch] 序列1: ref50 L=50 MRL=1.254144python3 inference.py --mode batch --sequences UAGCUUAUCAGACUGAUGUUGA,GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --dtype bfloat16 --compact输出:
[batch] batch=2 设备=npu:0 精度=bfloat16 logits=(2, 1) MRL=['-0.108887', '1.257812'] 耗时=0.002s
[batch] 序列0: microRNA 21 L=22 MRL=-0.108887
[batch] 序列1: ref50 L=50 MRL=1.257812python3 inference.py --mode batch --sequences UAGCUUAUCAGACUGAUGUUGA,GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --dtype float16 --compact输出:
[batch] batch=2 设备=npu:0 精度=float16 logits=(2, 1) MRL=['-0.109131', '1.253906'] 耗时=0.002s
[batch] 序列0: microRNA 21 L=22 MRL=-0.109131
[batch] 序列1: ref50 L=50 MRL=1.253906python3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGAUAGC --compact输出:
[variant] 参考=GGGACAUAGCUAGCUAGCUA... MRL=1.254144 变异=GGGACAUAGCUAGCUAGCUA... MRL=1.263130 ΔMRL=+0.008986 位点=C46A 设备=npu:0 耗时=0.001spython3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt CGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[variant] 参考=GGGACAUAGCUAGCUAGCUA... MRL=1.254144 变异=CGGACAUAGCUAGCUAGCUA... MRL=1.254517 ΔMRL=+0.000373 位点=G1C 设备=npu:0 耗时=0.001spython3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt GGGACAUAGCUAGCUAGCUAGCUAACUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[variant] 参考=GGGACAUAGCUAGCUAGCUA... MRL=1.254144 变异=GGGACAUAGCUAGCUAGCUA... MRL=1.260146 ΔMRL=+0.006002 位点=G25A 设备=npu:0 耗时=0.001spython3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGU --compact输出:
[variant] 参考=GGGACAUAGCUAGCUAGCUA... MRL=1.254144 变异=GGGACAUAGCUAGCUAGCUA... MRL=1.294376 ΔMRL=+0.040232 位点=C50U 设备=npu:0 耗时=0.001spython3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt UCGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[variant] 参考=GGGACAUAGCUAGCUAGCUA... MRL=1.254144 变异=UCGACAUAGCUAGCUAGCUA... MRL=1.248113 ΔMRL=-0.006031 位点=G2C 设备=npu:0 耗时=0.001spython3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt GGGACAUAGCUAGCUAGCUAGCUAUCUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[variant] 参考=GGGACAUAGCUAGCUAGCUA... MRL=1.254144 变异=GGGACAUAGCUAGCUAGCUA... MRL=1.257336 ΔMRL=+0.003192 位点=G25U 设备=npu:0 耗时=0.001spython3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt GGGACAUAGCUAGCUAGCUAGCUUGAUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[variant] 参考=GGGACAUAGCUAGCUAGCUA... MRL=1.254144 变异=GGGACAUAGCUAGCUAGCUA... MRL=1.233964 ΔMRL=-0.020180 位点=C26A 设备=npu:0 耗时=0.001spython3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAUG --compact输出:
[variant] 参考=GGGACAUAGCUAGCUAGCUA... MRL=1.254144 变异=GGGACAUAGCUAGCUAGCUA... MRL=1.384033 ΔMRL=+0.129889 位点=C50G 设备=npu:0 耗时=0.001spython3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt CAGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[variant] 参考=GGGACAUAGCUAGCUAGCUA... MRL=1.254144 变异=CAGACAUAGCUAGCUAGCUA... MRL=1.272771 ΔMRL=+0.018627 位点=G2A 设备=npu:0 耗时=0.001spython3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt GGGACAUAGCUAGCUAGCUAGCUACUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[variant] 参考=GGGACAUAGCUAGCUAGCUA... MRL=1.254144 变异=GGGACAUAGCUAGCUAGCUA... MRL=1.198563 ΔMRL=-0.055580 位点=N/A 设备=npu:0 耗时=0.001spython3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt GGGACAUAGCUAGCUAGCUAGCUAGUCUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[variant] 参考=GGGACAUAGCUAGCUAGCUA... MRL=1.254144 变异=GGGACAUAGCUAGCUAGCUA... MRL=1.134567 ΔMRL=-0.119576 位点=N/A 设备=npu:0 耗时=0.001spython3 inference.py --mode variant --ref UAGCUUAUCAGACUGAUGUUGA --alt UUGCUUUUCUGUCUGUUGUUGU --compact输出:
[variant] 参考=UAGCUUAUCAGACUGAUGUU... MRL=-0.109189 变异=UUGCUUUUCUGUCUGUUGUU... MRL=1.112855 ΔMRL=+1.222045 位点=A22U 设备=npu:0 耗时=0.001spython3 inference.py --mode variant --ref UAGCUUAUCAGACUGAUGUUGA --alt UUGCUUUUCUGUCUGUUGUUGU --compact输出:
[variant] 参考=UAGCUUAUCAGACUGAUGUU... MRL=-0.109189 变异=UUGCUUUUCUGUCUGUUGUU... MRL=1.112855 ΔMRL=+1.222045 位点=A22U 设备=npu:0 耗时=0.001spython3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt GGGACAUAGNUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[variant] 参考=GGGACAUAGCUAGCUAGCUA... MRL=1.254144 变异=GGGACAUAGNUAGCUAGCUA... MRL=1.250373 ΔMRL=-0.003771 位点=C10N 设备=npu:0 耗时=0.001spython3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGAUAGC --device npu:1 --compact输出:
[variant] 参考=GGGACAUAGCUAGCUAGCUA... MRL=1.254144 变异=GGGACAUAGCUAGCUAGCUA... MRL=1.263130 ΔMRL=+0.008986 位点=C46A 设备=npu:1 耗时=0.001spython3 inference.py --mode variant --ref GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --alt GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGAUAGC --dtype bfloat16 --compact输出:
[variant] 参考=GGGACAUAGCUAGCUAGCUA... MRL=1.257812 变异=GGGACAUAGCUAGCUAGCUA... MRL=1.265625 ΔMRL=+0.007812 位点=C46A 设备=npu:0 耗时=0.001spython3 inference.py --mode pooler --seq-name "microRNA 21" --sequence UAGCUUAUCAGACUGAUGUUGA --compact输出:
[pooler] 名称=microRNA 21 长度=22 设备=npu:0 精度=float32 pooler_dim=40 耗时=0.001s
[pooler] 前8维: [0.0, 0.0, 0.0, 0.165016, 0.480091, 0.0, 0.0, 0.02055]
[pooler] 统计: min=0.000000 max=0.681726 mean=0.119085
[pooler] MRL(decoder): -0.109189python3 inference.py --mode pooler --seq-name "参考 50nt" --sequence GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[pooler] 名称=参考 50nt 长度=50 设备=npu:0 精度=float32 pooler_dim=40 耗时=0.001s
[pooler] 前8维: [0.0, 0.219238, 0.0, 0.085501, 1.839782, 0.020066, 0.0, 0.0]
[pooler] 统计: min=0.000000 max=3.574111 mean=0.324593
[pooler] MRL(decoder): 1.254144python3 inference.py --mode pooler --seq-name "合成 syn48" --sequence GACUAAACCUGUCCGCUGAAACUGAGCGGGGUACUGCAGCCGAUGUAU --compact输出:
[pooler] 名称=合成 syn48 长度=48 设备=npu:0 精度=float32 pooler_dim=40 耗时=0.001s
[pooler] 前8维: [0.0, 0.320115, 0.0, 0.377636, 0.0, 0.0, 0.0, 0.134791]
[pooler] 统计: min=0.000000 max=0.436301 mean=0.096577
[pooler] MRL(decoder): -0.227817python3 inference.py --mode pooler --sequence UAGCUUAUCAGACUGAUGUUGA --dtype bfloat16 --compact输出:
[pooler] 名称=microRNA 21 长度=22 设备=npu:0 精度=bfloat16 pooler_dim=40 耗时=0.001s
[pooler] 前8维: [0.0, 0.0, 0.0, 0.164062, 0.480469, 0.0, 0.0, 0.019897]
[pooler] 统计: min=0.000000 max=0.683594 mean=0.119044
[pooler] MRL(decoder): -0.108887python3 inference.py --mode pooler --sequence UAGCUUAUCAGACUGAUGUUGA --device npu:1 --compact输出:
[pooler] 名称=microRNA 21 长度=22 设备=npu:1 精度=float32 pooler_dim=40 耗时=0.001s
[pooler] 前8维: [0.0, 0.0, 0.0, 0.165016, 0.480091, 0.0, 0.0, 0.02055]
[pooler] 统计: min=0.000000 max=0.681726 mean=0.119085
[pooler] MRL(decoder): -0.109189python3 inference.py --mode pooler --sequence GCUAGCUGAGCCUCCGUCAGACAGAAUUGCCGUCGGUCCCACGAGUGUUCAAUCCGGGUACGGGUGUCUCGUGCUCAAGUUAUACAGACUCUCCUGCCAA --seq-name syn100 --compact输出:
[pooler] 名称=syn100 长度=100 设备=npu:0 精度=float32 pooler_dim=40 耗时=0.001s
[pooler] 前8维: [0.0, 0.470241, 0.0, 0.0, 0.618496, 0.0, 0.0, 0.0]
[pooler] 统计: min=0.000000 max=0.877107 mean=0.161018
[pooler] MRL(decoder): 0.483292python3 inference.py --mode padding --compact输出:
[padding] 设备=npu:0 精度=float32 有效长度/处理: 原始(50nt):L=50 | 截短(前30nt):L=30(pad至50) | 超长(150nt):L=50(截断) | 含N:L=50 | 含T:L=50 | 小写:L=50 | 非法字符:L=5(pad至50) | 全N:L=50
[padding] 原始(50nt)=1.254144 | 截短(前30nt)=0.985650 | 超长(150nt)=1.254144 | 含N=1.241821 | 含T=1.254144 | 小写=1.254144 | 非法字符=0.815843 | 全N=0.793978python3 inference.py --mode padding --sequence GGGACAUAGC --compact输出:
[padding] 设备=npu:0 精度=float32 有效长度/处理: 原始(50nt):L=10(pad至50) | 截短(前30nt):L=10(pad至50) | 超长(150nt):L=30(pad至50) | 含N:L=10(pad至50) | 含T:L=10(pad至50) | 小写:L=10(pad至50) | 非法字符:L=5(pad至50) | 全N:L=50
[padding] 原始(50nt)=0.808050 | 截短(前30nt)=0.808050 | 超长(150nt)=0.695457 | 含N=0.790020 | 含T=0.808050 | 小写=0.808050 | 非法字符=0.815843 | 全N=0.793978python3 inference.py --mode padding --sequence GGGACAUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[padding] 设备=npu:0 精度=float32 有效长度/处理: 原始(50nt):L=30(pad至50) | 截短(前30nt):L=30(pad至50) | 超长(150nt):L=50(截断) | 含N:L=30(pad至50) | 含T:L=30(pad至50) | 小写:L=30(pad至50) | 非法字符:L=5(pad至50) | 全N:L=50
[padding] 原始(50nt)=0.985650 | 截短(前30nt)=0.985650 | 超长(150nt)=1.033737 | 含N=0.972528 | 含T=0.985650 | 小写=0.985650 | 非法字符=0.815843 | 全N=0.793978python3 inference.py --mode padding --sequence GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCGGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCGGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[padding] 设备=npu:0 精度=float32 有效长度/处理: 原始(50nt):L=50(截断) | 截短(前30nt):L=30(pad至50) | 超长(150nt):L=50(截断) | 含N:L=50(截断) | 含T:L=50(截断) | 小写:L=50(截断) | 非法字符:L=5(pad至50) | 全N:L=50
[padding] 原始(50nt)=1.254144 | 截短(前30nt)=0.985650 | 超长(150nt)=1.254144 | 含N=1.241821 | 含T=1.254144 | 小写=1.254144 | 非法字符=0.815843 | 全N=0.793978python3 inference.py --mode padding --sequence GGGACNUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[padding] 设备=npu:0 精度=float32 有效长度/处理: 原始(50nt):L=50 | 截短(前30nt):L=30(pad至50) | 超长(150nt):L=50(截断) | 含N:L=50 | 含T:L=50 | 小写:L=50 | 非法字符:L=5(pad至50) | 全N:L=50
[padding] 原始(50nt)=1.241821 | 截短(前30nt)=0.972528 | 超长(150nt)=1.241821 | 含N=1.241821 | 含T=1.241821 | 小写=1.241821 | 非法字符=0.815843 | 全N=0.793978python3 inference.py --mode padding --sequence GGGACATAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGC --compact输出:
[padding] 设备=npu:0 精度=float32 有效长度/处理: 原始(50nt):L=50 | 截短(前30nt):L=30(pad至50) | 超长(150nt):L=50(截断) | 含N:L=50 | 含T:L=50 | 小写:L=50 | 非法字符:L=5(pad至50) | 全N:L=50
[padding] 原始(50nt)=1.254144 | 截短(前30nt)=0.985650 | 超长(150nt)=1.254144 | 含N=1.241821 | 含T=1.254144 | 小写=1.254144 | 非法字符=0.815843 | 全N=0.793978python3 inference.py --mode padding --sequence gggacauagcuagcuagcuagcuagcuagcuagcuagcuagcuagcuagc --compact输出:
[padding] 设备=npu:0 精度=float32 有效长度/处理: 原始(50nt):L=50 | 截短(前30nt):L=30(pad至50) | 超长(150nt):L=50(截断) | 含N:L=50 | 含T:L=50 | 小写:L=50 | 非法字符:L=5(pad至50) | 全N:L=50
[padding] 原始(50nt)=1.254144 | 截短(前30nt)=0.985650 | 超长(150nt)=1.254144 | 含N=1.241821 | 含T=1.254144 | 小写=1.254144 | 非法字符=0.815843 | 全N=0.793978python3 inference.py --mode padding --sequence ACGU- --compact输出:
[padding] 设备=npu:0 精度=float32 有效长度/处理: 原始(50nt):L=5(pad至50) | 截短(前30nt):L=5(pad至50) | 超长(150nt):L=15(pad至50) | 含N:L=6(pad至50) | 含T:L=5(pad至50) | 小写:L=5(pad至50) | 非法字符:L=5(pad至50) | 全N:L=50
[padding] 原始(50nt)=0.815843 | 截短(前30nt)=0.815843 | 超长(150nt)=0.799498 | 含N=0.815843 | 含T=0.815843 | 小写=0.815843 | 非法字符=0.815843 | 全N=0.793978python3 inference.py --mode padding --sequence NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN --compact输出:
[padding] 设备=npu:0 精度=float32 有效长度/处理: 原始(50nt):L=50 | 截短(前30nt):L=30(pad至50) | 超长(150nt):L=50(截断) | 含N:L=50 | 含T:L=50 | 小写:L=50 | 非法字符:L=5(pad至50) | 全N:L=50
[padding] 原始(50nt)=0.793978 | 截短(前30nt)=0.793978 | 超长(150nt)=0.793978 | 含N=0.793978 | 含T=0.793978 | 小写=0.793978 | 非法字符=0.815843 | 全N=0.793978python3 inference.py --mode padding --sequence AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA --compact输出:
[padding] 设备=npu:0 精度=float32 有效长度/处理: 原始(50nt):L=50 | 截短(前30nt):L=30(pad至50) | 超长(150nt):L=50(截断) | 含N:L=50 | 含T:L=50 | 小写:L=50 | 非法字符:L=5(pad至50) | 全N:L=50
[padding] 原始(50nt)=1.196788 | 截短(前30nt)=0.862899 | 超长(150nt)=1.196788 | 含N=1.193119 | 含T=1.196788 | 小写=1.196788 | 非法字符=0.815843 | 全N=0.793978python3 inference.py --mode dtype --seq-name "microRNA 21" --sequence UAGCUUAUCAGACUGAUGUUGA --compact输出:
[dtype] 序列=microRNA 21 长度=22 设备=npu:0 float32:-0.109189 | bfloat16:-0.108887 | float16:-0.109131python3 inference.py --mode dtype --seq-name "参考 50nt" --sequence GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[dtype] 序列=参考 50nt 长度=50 设备=npu:0 float32:1.254144 | bfloat16:1.257812 | float16:1.253906python3 inference.py --mode dtype --seq-name "变异序列" --sequence GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGAUAGC --compact输出:
[dtype] 序列=变异序列 长度=50 设备=npu:0 float32:1.263130 | bfloat16:1.265625 | float16:1.262695python3 inference.py --mode dtype --seq-name "syn16" --sequence CUAAUCUCUAACAUCA --compact输出:
[dtype] 序列=syn16 长度=16 设备=npu:0 float32:0.776408 | bfloat16:0.777344 | float16:0.776367python3 inference.py --mode dtype --seq-name "poly-A" --sequence AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA --compact输出:
[dtype] 序列=poly-A 长度=50 设备=npu:0 float32:1.196788 | bfloat16:1.195312 | float16:1.196289python3 inference.py --mode dtype --seq-name "全 N" --sequence NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN --compact输出:
[dtype] 序列=全 N 长度=50 设备=npu:0 float32:0.793978 | bfloat16:0.792969 | float16:0.793945python3 inference.py --mode compare --seq-name "microRNA 21" --sequence UAGCUUAUCAGACUGAUGUUGA --compact输出:
[compare] 序列=microRNA 21 长度=22 NPU_MRL=-0.109189 CPU_MRL=-0.109167 abs_diff=2.25e-05 一致=Truepython3 inference.py --mode compare --seq-name "参考 50nt" --sequence GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --compact输出:
[compare] 序列=参考 50nt 长度=50 NPU_MRL=1.254144 CPU_MRL=1.254153 abs_diff=9.54e-06 一致=Truepython3 inference.py --mode compare --seq-name "microRNA 146a" --sequence UGAGAACUGAAUUCCAUGGGUU --compact输出:
[compare] 序列=microRNA 146a 长度=22 NPU_MRL=-0.099806 CPU_MRL=-0.099844 abs_diff=3.74e-05 一致=Truepython3 inference.py --mode compare --seq-name "syn64" --sequence GGUCCAUAGCGAUCGUUCAAGAGGGAUAUCCCGCGAGGCGACGGUAAUGCCAGCAUGUUGUCUG --compact输出:
[compare] 序列=syn64 长度=64 NPU_MRL=-0.871905 CPU_MRL=-0.871921 abs_diff=1.67e-05 一致=Truepython3 inference.py --mode compare --seq-name "全 N" --sequence NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN --compact输出:
[compare] 序列=全 N 长度=50 NPU_MRL=0.793978 CPU_MRL=0.793976 abs_diff=1.37e-06 一致=Truepython3 inference.py --mode compare --seq-name "microRNA 155" --sequence UUAAUGCUAAUCGUGAUAGGGGUU --compact输出:
[compare] 序列=microRNA 155 长度=24 NPU_MRL=0.121052 CPU_MRL=0.121068 abs_diff=1.67e-05 一致=Truepython3 inference.py --mode benchmark --compact --batch 1输出:
[benchmark] batch=1 设备=npu:0 精度=float32
[benchmark] 长度= 16 耗时=0.0008s 吞吐=1180.8seq/s MRL=0.771903
[benchmark] 长度= 32 耗时=0.0008s 吞吐=1207.7seq/s MRL=-0.195681
[benchmark] 长度= 50 耗时=0.0008s 吞吐=1298.1seq/s MRL=-0.207370
[benchmark] 长度= 64 耗时=0.0008s 吞吐=1238.7seq/s MRL=-0.207370
[benchmark] 长度= 96 耗时=0.0011s 吞吐=929.8seq/s MRL=-0.207370
[benchmark] 长度= 128 耗时=0.0011s 吞吐=934.1seq/s MRL=-0.207370
[benchmark] 长度= 256 耗时=0.0010s 吞吐=986.4seq/s MRL=-0.207370python3 inference.py --mode benchmark --compact --lengths 50 100 200 300 400 500 --batch 1输出:
[benchmark] batch=1 设备=npu:0 精度=float32
[benchmark] 长度= 50 耗时=0.0008s 吞吐=1320.6seq/s MRL=-0.207370
[benchmark] 长度= 100 耗时=0.0008s 吞吐=1330.7seq/s MRL=-0.207370
[benchmark] 长度= 200 耗时=0.0007s 吞吐=1341.7seq/s MRL=-0.207370
[benchmark] 长度= 300 耗时=0.0007s 吞吐=1339.2seq/s MRL=-0.207370
[benchmark] 长度= 400 耗时=0.0010s 吞吐=1034.9seq/s MRL=-0.207370
[benchmark] 长度= 500 耗时=0.0010s 吞吐=993.9seq/s MRL=-0.207370python3 inference.py --mode benchmark --compact --lengths 16 50 128 --batch 4输出:
[benchmark] batch=4 设备=npu:0 精度=float32
[benchmark] 长度= 16 耗时=0.0010s 吞吐=4004.1seq/s MRL=0.771903
[benchmark] 长度= 50 耗时=0.0007s 吞吐=5406.8seq/s MRL=-0.207370
[benchmark] 长度= 128 耗时=0.0010s 吞吐=3999.3seq/s MRL=-0.207370python3 inference.py --mode benchmark --compact --lengths 16 50 128 --batch 8输出:
[benchmark] batch=8 设备=npu:0 精度=float32
[benchmark] 长度= 16 耗时=0.0010s 吞吐=8202.0seq/s MRL=0.771903
[benchmark] 长度= 50 耗时=0.0008s 吞吐=10295.9seq/s MRL=-0.207370
[benchmark] 长度= 128 耗时=0.0010s 吞吐=8085.4seq/s MRL=-0.207370python3 inference.py --mode benchmark --compact --lengths 16 50 128 --batch 16输出:
[benchmark] batch=16 设备=npu:0 精度=float32
[benchmark] 长度= 16 耗时=0.0010s 吞吐=16324.2seq/s MRL=0.771903
[benchmark] 长度= 50 耗时=0.0007s 吞吐=21725.1seq/s MRL=-0.207370
[benchmark] 长度= 128 耗时=0.0010s 吞吐=16652.3seq/s MRL=-0.207370python3 inference.py --mode benchmark --compact --lengths 16 50 128 --batch 32输出:
[benchmark] batch=32 设备=npu:0 精度=float32
[benchmark] 长度= 16 耗时=0.0010s 吞吐=32680.2seq/s MRL=0.771903
[benchmark] 长度= 50 耗时=0.0008s 吞吐=39839.0seq/s MRL=-0.207370
[benchmark] 长度= 128 耗时=0.0010s 吞吐=32752.0seq/s MRL=-0.207370python3 inference.py --mode benchmark --compact --lengths 16 50 128 --batch 64输出:
[benchmark] batch=64 设备=npu:0 精度=float32
[benchmark] 长度= 16 耗时=0.0010s 吞吐=65233.4seq/s MRL=0.771903
[benchmark] 长度= 50 耗时=0.0007s 吞吐=87466.8seq/s MRL=-0.207370
[benchmark] 长度= 128 耗时=0.0010s 吞吐=66428.0seq/s MRL=-0.207370python3 inference.py --mode benchmark --compact --lengths 16 50 128 --batch 128输出:
[benchmark] batch=128 设备=npu:0 精度=float32
[benchmark] 长度= 16 耗时=0.0010s 吞吐=124419.7seq/s MRL=0.771903
[benchmark] 长度= 50 耗时=0.0008s 吞吐=165598.7seq/s MRL=-0.207370
[benchmark] 长度= 128 耗时=0.0010s 吞吐=126114.8seq/s MRL=-0.207370python3 inference.py --mode loss --labels self --seed 7 --compact输出:
[loss] 序列=sequence 长度=22 标签=-0.1092 MSE_loss=0.000000 设备=npu:0python3 inference.py --mode loss --labels random --seed 7 --compact输出:
[loss] 序列=sequence 长度=22 标签=-0.2936 MSE_loss=0.034004 设备=npu:0python3 inference.py --mode loss --labels random --seed 42 --compact输出:
[loss] 序列=sequence 长度=22 标签=0.6734 MSE_loss=0.612416 设备=npu:0python3 inference.py --mode loss --labels random --seed 0 --compact输出:
[loss] 序列=sequence 长度=22 标签=3.0820 MSE_loss=10.183639 设备=npu:0python3 inference.py --mode loss --labels random --seed 7 --dtype bfloat16 --compact输出:
[loss] 序列=sequence 长度=22 标签=-0.2936 MSE_loss=0.034115 设备=npu:0python3 inference.py --mode loss --labels random --seed 7 --device npu:1 --compact输出:
[loss] 序列=sequence 长度=22 标签=-0.2936 MSE_loss=0.034004 设备=npu:1python3 inference.py --mode device --seq-name "microRNA 21" --sequence UAGCUUAUCAGACUGAUGUUGA --dtype float32 --compact输出:
[device] 序列=microRNA 21 长度=22 精度=float32 npu:0:-0.109189 | npu:1:-0.109189 | cpu:-0.109167python3 inference.py --mode device --seq-name "microRNA 146a" --sequence UGAGAACUGAAUUCCAUGGGUU --dtype float32 --compact输出:
[device] 序列=microRNA 146a 长度=22 精度=float32 npu:0:-0.099806 | npu:1:-0.099806 | cpu:-0.099844python3 inference.py --mode device --seq-name "参考 50nt" --sequence GGGACAUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGCUAGC --dtype float32 --compact输出:
[device] 序列=参考 50nt 长度=50 精度=float32 npu:0:1.254144 | npu:1:1.254144 | cpu:1.254153python3 inference.py --mode device --seq-name "microRNA 21" --sequence UAGCUUAUCAGACUGAUGUUGA --dtype bfloat16 --compact输出:
[device] 序列=microRNA 21 长度=22 精度=bfloat16 npu:0:-0.108887 | npu:1:-0.108887 | cpu:-0.111328python3 inference.py --mode predict --seq-name "syn16 全A" --sequence AAAAAAAAAAAAAAAA --compact输出:
[predict] 名称=syn16 全A 序列=AAAAAAAAAAAAAAAA 长度=16 设备=npu:0 精度=float32 MRL=0.789875 耗时=0.001spython3 inference.py --mode predict --seq-name "syn32 全C" --sequence CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC --compact输出:
[predict] 名称=syn32 全C 序列=CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 长度=32 设备=npu:0 精度=float32 MRL=-0.924778 耗时=0.001spython3 inference.py --mode predict --seq-name "syn48 全G" --sequence GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG --compact输出:
[predict] 名称=syn48 全G 序列=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 长度=48 设备=npu:0 精度=float32 MRL=-1.796666 耗时=0.001spython3 inference.py --mode predict --seq-name "syn50 全U" --sequence UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU --compact输出:
[predict] 名称=syn50 全U 序列=UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU 长度=50 设备=npu:0 精度=float32 MRL=0.753313 耗时=0.001spython3 inference.py --mode predict --seq-name "syn64 混合(ACGU交替)" --sequence ACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUACGU --compact输出:
[predict] 名称=syn64 混合(ACGU交替) 序列=ACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUACGUACGU 长度=64 设备=npu:0 精度=float32 MRL=0.465604 耗时=0.001spython3 inference.py --mode predict --seq-name "syn100 混合(ACGU随机 seed=9)" --sequence GAGCGAUGCCGAUAGCACUCCAAAGUAGACGGAAAGGACAUUCUGUCAACUACUGCCCAGGUGGAACUAGAGAAAUCAAUGAAUAACGCUAUCUUGUAAG --compact输出:
[predict] 名称=syn100 混合(ACGU随机 seed=9) 序列=GAGCGAUGCCGAUAGCACUCCAAAGUAGACGGAAAGGACAUUCUGUCAACUACUGCCCAGGUGGAACUAGAGAAAUCAAUGAAUAACGCUAUCUUGUAAG 长度=100 设备=npu:0 精度=float32 MRL=0.641617 耗时=0.001spython3 inference.py --mode predict --seq-name "syn200 长序列" --sequence CCAUACUACCACCGACAGAGAUAAUUGAUGGCAAGCUGCCCUCGCAGGGCACUCAUGCCGUGAUAGACUGAGUAUCGUUACAGAAACAUAAGAGGAUCAUCGGCGGUAAAAGGCCUAAGCCUCGCACCCAGUUCAAGAGUUUCGCCGAGCACCACGAGGCCAAAUCCAAAGGGAGUGUUUGGGCGUACCCUCUGCUCCUU --compact输出:
[predict] 名称=syn200 长序列 序列=CCAUACUACCACCGACAGAGAUAAUUGAUGGCAAGCUGCCCUCGCAGGGCACUCAUGCCGUGAUAGACUGAGUAUCGUUACAGAAACAUAAGAGGAUCAUCGGCGGUAAAAGGCCUAAGCCUCGCACCCAGUUCAAGAGUUUCGCCGAGCACCACGAGGCCAAAUCCAAAGGGAGUGUUUGGGCGUACCCUCUGCUCCUU 长度=200 设备=npu:0 精度=float32 MRL=-0.868362 耗时=0.001spython3 inference.py --mode predict --seq-name "5'UTR 极短 5nt" --sequence AUGGC --compact输出:
[predict] 名称=5'UTR 极短 5nt 序列=AUGGC 长度=5 设备=npu:0 精度=float32 MRL=-1.055593 耗时=0.001spython3 inference.py --mode predict --seq-name "仅 N 1nt" --sequence N --compact输出:
[predict] 名称=仅 N 1nt 序列=N 长度=1 设备=npu:0 精度=float32 MRL=0.793978 耗时=0.001spython3 inference.py --mode predict --seq-name "空输入(映射为 0 长度→全填充)" --sequence --compact输出:
[predict] 名称=空输入(映射为 0 长度→全填充) 序列= 长度=0 设备=npu:0 精度=float32 MRL=0.793978 耗时=0.003spython3 inference.py --mode predict --seq-name "poly-UC 重复" --sequence UCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUC --compact输出:
[predict] 名称=poly-UC 重复 序列=UCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUCUC 长度=50 设备=npu:0 精度=float32 MRL=0.960877 耗时=0.001smultimolecule 0.2.1 基于 transformers 5.9.0 构建),而昇腾 NPU 预装环境为 transformers 4.57.6。本项目将 modeling_optimus5prime.py / configuration_optimus5prime.py 移植为独立文件 optimus5prime_model.py:移除 @merge_with_config_defaults / @capture_outputs / @can_return_tuple 等 v5 专用装饰器、danling.NestedTensor 与 chanfig.FlatDict 依赖,并将 transformers.initialization 替换为 torch.nn.init,使其在 transformers 4.57.6 下可直接加载权重(键名 model.encoder.* / sequence_head.* 与结构一一对应,load_state_dict 零缺失)。torch_npu 的 .to("npu:0") / .to("npu:1"),将模型精确部署到指定 Ascend 910B 卡(.npu() 仅移动到默认卡 npu:0,跨卡需使用 .to(device))。RnaTokenizer(streamline 字母表 ACGUN)采用兼容编码,A/C/G/U → 通道 0–3,N/非法字符 → 通道 4(该通道卷积权重为 0,等价于全零通道);T 映射为 U,输入统一大写化,未知字符映射为 N。attention_mask 将补位区域置零,与单序列推理语义一致。(B, 120, 50) 需先转置为 (B, 50, 120),再展平为 (B, 6000),与上游 checkpoint 的 dense 权重([40, 6000])元素顺序保持一致,否则结果错误。贡献者: zzstudio | 赛道: 模型适配赛道