模型名称: multimolecule/borzoi-human
模型链接: HuggingFace
模型描述: Borzoi 是基于 Enformer 架构的基因组序列预测模型,用于预测 DNA 序列上的实验测量数据(如 ATAC-seq 信号)。该模型结合了卷积塔和 Transformer 注意力机制,能够捕捉局部序列模式和长程依赖关系。
模型架构: Borzoi (Conv Tower + Transformer + Token Prediction Head)
参数规模: ~186M
输入规格:
[batch_size, seq_len, 5](one-hot DNA 编码 + 链信息)torch.float32输出规格:
[batch_size, seq_len, 7611]torch.float32| 依赖项 | 版本要求 | 说明 |
|---|---|---|
| Python | >= 3.10 | 推荐 3.11 |
| torch | >= 2.1.0 | PyTorch 框架 |
| torch_npu | >= 2.1.0 | 昇腾 NPU 后端 |
| numpy | < 2.0 | 数值计算 |
| 昇腾驱动 | CANN 8.0+ | 推荐 CANN 8.5.1 |
安装命令:
pip install torch torch_npu numpy# 检查 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/borzoi-human --local-dir ./weights方式二:AtomGit 镜像(HuggingFace 下载慢时使用)
huggingface-cli download https://ai.gitcode.com/hf_mirrors/multimolecule/borzoi-human --local-dir ./weights# 启动服务
python3 inference.py --model-path ./weights --seq-len 1024 --device npu
# 参数说明
# --model-path: 模型权重目录(包含 pytorch_model.bin)
# --seq-len: 输入序列长度,默认 1024
# --device: 设备类型,支持 cpu/npu/cuda
# --batch-size: 批量大小,默认 1| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| --model-path | str | 必填 | 模型 checkpoint 路径 |
| --seq-len | int | 1024 | 输入序列长度 |
| --device | str | npu | 设备类型 (cpu/npu/cuda) |
| --batch-size | int | 1 | 批量大小 |
[模型] multimolecule/borzoi-human
[设备] Ascend910_9362 (npu:0)
[输入] shape=(1, 1024, 5), dtype=torch.float32
[输出] shape=(1, 1024, 7611), dtype=torch.float32
[耗时] 504.5ms
[状态] SUCCESS[基准测试] 4次推理统计 (seq_len=1024):
平均: 107.8ms
最小: 99.1ms
最大: 179.6ms
标准差: 23.9ms
P50: 99.9ms
P99: 179.6ms运行命令:
python3 inference.py --model-path ./weights --seq-len 512 --device npu --batch-size 1输出:
[模型] multimolecule/borzoi-human
[设备] npu
[权重] ./weights/pytorch_model.bin
Loaded weights: 215 keys
[NPU] Ascend910_9362
[输入] shape=(1, 512, 5), dtype=torch.float32
[输出] shape=(1, 512, 7611), dtype=torch.float32
[耗时] 391.9ms
[状态] SUCCESS运行命令:
python3 inference.py --model-path ./weights --seq-len 1024 --device npu --batch-size 4输出:
[基准测试] 批量推理统计 (seq_len=1024):
平均: 47.2ms
最小: 19.0ms
最大: 92.6ms
标准差: 32.1ms
P50: 46.6ms
P99: 92.6ms


测试数据: 使用随机 one-hot 编码 DNA 序列作为测试输入
评测指标:
| 指标 | 结果 | 说明 |
|---|---|---|
| 权重加载 | 215/215 keys | 所有预训练权重完全匹配 |
| 单条推理 (seq=512) | 391.9ms | Ascend910_9362 |
| 批量推理 (batch=4, seq=1024) | P50: 46.6ms | 吞吐量约 85.8 seq/s |
评测命令:
python3 inference.py --model-path ./weights --seq-len 1024 --device npu --batch-size 1由于 multimolecule 包与 transformers >= 4.50 存在兼容性问题(merge_with_config_defaults 和 output_capturing 模块已被移除),本实现采用纯 PyTorch 直接加载权重的方式,绕过了 multimolecule 包的导入问题。
模型架构完全从预训练权重文件中解析,包括:
无