跳转至

机器学习加速分子生物学研究

MultiMolecule

MultiMolecule 是面向端到端生物分子机器学习的模块化 Python 生态:整合面向任务的 pipeline,覆盖 DNA、RNA 和蛋白质任务的模型与数据集 hub,带有序列 tokeniser 与生物 I/O 的可复用神经网络模块,以及统一训练、评估和推理的 runner、CLI 与 API。

48 模型家族
16 数据集
10 任务 pipeline

MultiMolecule

你想完成什么?

MultiMolecule 覆盖四类常见入口:任务级预测、模型微调、直接使用预训练模型,以及整理好的生物数据集。

Prediction

运行任务级预测

已注册的 pipeline 将生物任务名称和输入序列转换成结构化预测,不需要手动组装模型、tokeniser 和后处理。

Python
1
2
3
4
5
6
7
8
import multimolecule
from transformers import pipeline

predict = pipeline(
    "rna-secondary-structure",
    model="multimolecule/ernierna-ss",
)
structure = predict("AUCAGCCUUCGUUCUGUAAACGG")

Training

微调预训练模型

runner 将预训练模型与 Hugging Face 数据集或本地标注表格连接起来,并根据序列列和标签列构建任务感知 batch。

Python
import multimolecule as mm

config = mm.Config(
    pretrained="multimolecule/ernierna",
    data={
        "root": "multimolecule/chanrg",
        "feature_cols": ["sequence"],
        "label_cols": ["secondary_structure"],
    },
)

runner = mm.Runner(config)
runner.train()

Models

使用预训练模型

带文档的预训练模型支持在 Python 里直接控制模型,而不只通过任务 pipeline 使用。模型卡提供 checkpoint ID、输入约定、引用和许可证。

Python
1
2
3
4
5
6
7
8
9
import multimolecule as mm

tokenizer = mm.RnaTokenizer.from_pretrained("multimolecule/ernierna-ss")
model = mm.AutoModelForRnaSecondaryStructurePrediction.from_pretrained(
    "multimolecule/ernierna-ss",
)

inputs = tokenizer("AUCAGCCUUCGUUCUGUAAACGG", return_tensors="pt")
outputs = model(**inputs)

Datasets

使用整理好的数据集

整理好的生物数据集包含序列与标签字段、任务元数据、来源信息、引用和许可证,可用于复现实验、尝试示例或开始微调。

Python
1
2
3
from datasets import load_dataset

dataset = load_dataset("multimolecule/chanrg", split="train")

底层是一套栈

MultiMolecule 为这些入口提供同一套底层层级:带文档的资源、生物输入处理、可复用模型组件,以及用于预测、训练、评估和脚本化使用的执行工具。

Execution

任务级入口

pipeline 提供现成任务预测,runner 管理监督训练和评估,API 入口支持脚本和应用。

Resources

带文档的资源

数据集卡和模型卡整理支持的输入、任务名称、模型 checkpoint、引用、许可证和训练元数据。

Data layer

从生物文件到可训练 batch

IO 读取生物序列与结构格式,tokeniser 编码分子,data 推断任务字段并准备 runner 可用的 batch。

Model layer

可复用的模型组件

models 提供预训练 config、AutoModel 类、checkpoint 和输出约定;modules 提供 backbone、head、loss 和 embedding,用于自定义架构。

社区

  • Google Group

    接收发布公告、迁移说明和设计 RFC,不需要跟进每一个 issue。

    订阅公告

  • Discourse

    讨论某个生物问题适合哪个 pipeline、模型或数据集,也可以分享配置、请求模型和交流模型组件设计。

    加入讨论