跳转至

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

MultiMolecule

MultiMolecule 为 RNA、DNA 和蛋白质序列研究提供可直接使用的 pipeline、预训练模型 checkpoint、整理好的数据集和训练工具。

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

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 将预训练 checkpoint 与 Hugging Face 数据集或本地标注表格连接起来,并根据序列列和标签列启动监督训练。

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

加载预训练模型

模型卡提供 checkpoint ID、输入约定、引用和许可证;Python API 支持在任务 pipeline 之外直接控制模型。

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")

底层是一套栈

当你需要更细的控制时,同一套生态也提供带文档的资源、生物输入处理、可复用模型组件,以及用于预测、训练、评估和脚本化使用的执行工具。

Execution

Pipeline、runner 和 API

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

Resources

带来源信息的模型和数据集

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

Data layer

从生物数据到模型输入

IO、tokeniser 和数据工具将生物序列、结构和注释转换成一致的输入,用于 pipeline、训练和评估。

Model layer

可复用的模型构件

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

社区

  • Google Group

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

    订阅公告

  • Discourse

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

    加入讨论