跳转到主要内容

Graphium: 将分子GNN扩展到无限。

项目描述

将分子GNN扩展到无限


PyPI Conda PyPI - Downloads Conda license GitHub Repo stars GitHub Repo stars test test-ipu release code-check doc codecov hydra

一个专注于真实世界化学任务的图表示学习的深度学习库。

  • ✅ 最先进的GNN架构。
  • 🐍 可扩展API:轻松构建您自己的GNN模型并对其进行训练。
  • ⚗️ 丰富的特征化:功能强大且灵活的内置分子特征化。
  • 🧠 预训练模型:快速且易于推理或迁移学习。
  • ⮔ 基于 Pytorch Lightning 的即用型训练循环。
  • 🔌 有新的数据集?Graphium 提供简单的即插即用接口。更改路径、预测列的名称、原子特征化,即可开始使用!

文档

请访问 https://graphium-docs.datamol.io/

开发人员安装

针对 CPU 和 GPU 开发人员

使用 mamba,这是 conda 的更快、更好的替代品。

如果您正在使用 GPU,我们建议使用 CONDA_OVERRIDE_CUDA=XX.X 强制指定所需的 CUDA 版本。

# Install Graphium's dependencies in a new environment named `graphium`
mamba env create -f env.yml -n graphium

# To force the CUDA version to 11.2, or any other version you prefer, use the following command:
# CONDA_OVERRIDE_CUDA=11.2 mamba env create -f env.yml -n graphium

# Install Graphium in dev mode
mamba activate graphium
pip install --no-deps -e .

针对 IPU 开发人员

# Install Graphcore's SDK and Graphium dependencies in a new environment called `.graphium_ipu`
./install_ipu.sh .graphium_ipu

以上步骤只需执行一次。之后,启用 SDK 和环境,如下所示

source enable_ipu.sh .graphium_ipu

训练模型

要了解如何训练模型,我们邀请您查看文档,或在此处查看可用的 jupyter notebooks https://github.com/datamol-io/graphium/tree/master/docs/tutorials/model_training

如果您不熟悉 PyTorchPyTorch-Lightning,我们强烈建议首先完成它们的教程。

运行实验

我们已使用 hydra 为 Graphium 设置了配置文件管理。要运行实验,请转到 expts/ 文件夹。例如,要在 ToyMix 数据集上对 GCN 进行基准测试,请运行

graphium-train architecture=toymix tasks=toymix training=toymix model=gcn

要更改特定于此实验的参数,例如从 fp16 切换到 fp32 精度,您可以直接在 CLI 中覆盖它们,或者

graphium-train architecture=toymix tasks=toymix training=toymix model=gcn trainer.trainer.precision=32

expts/hydra-configs/toymix_gcn.yaml 下的专用实验配置中永久更改它们。集成 hydra 还允许您快速切换加速器。例如,运行

graphium-train architecture=toymix tasks=toymix training=toymix model=gcn accelerator=gpu

将自动选择正确的配置以在 GPU 上运行实验。最后,您还可以运行微调循环

graphium-train +finetuning=admet

要使用您从头开始构建的配置文件,请运行

graphium-train --config-path [PATH] --config-name [CONFIG]

感谢 hydra 的模块化特性,您可以将我们许多配置设置用于自己的 Graphium 实验。

提前准备数据

数据准备包括特征化(例如,将分子从 smiles 转换为与 pyg 兼容的格式)已嵌入到管道中,并在执行 graphium-train [...] 时执行。

但是,当处理大型数据集时,建议在具有足够分配内存的机器上提前进行数据准备(例如,在 LargeMix 的情况下,约为 ~400GB)。在运行大量具有相同分子特征化的并发作业时,提前准备数据也很有益,这样可以避免资源浪费和进程在相同目录中读取/写入时的冲突。

以下命令行将准备数据并将其缓存,然后使用它来训练模型。

# First prepare the data and cache it in `path_to_cached_data`
graphium data prepare ++datamodule.args.processed_graph_data_path=[path_to_cached_data]

# Then train the model on the prepared data
graphium-train [...] datamodule.args.processed_graph_data_path=[path_to_cached_data]

注意datamodule.args.processed_graph_data_path 也可以在 expts/hydra_configs/ 中指定。

注意,每次更改 datamodule.args.featurization 的配置时,都需要运行新的数据准备,它将自动保存在一个使用对配置唯一的散列的单独目录中。

许可证

根据 Apache-2.0 许可证。请参阅 LICENSE

文档

  • Graphium 中数据处理的图示。
Data Processing Chart
  • Graphium 中多任务网络的图示。
Full Graph Multi-task Network

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

graphium-2.4.7.tar.gz (5.3 MB 查看哈希值)

上传时间 源代码

构建分发

graphium-2.4.7-py3-none-any.whl (1.1 MB 查看哈希值)

上传时间 Python 3

由以下支持

AWSAWS 云计算和安全赞助商DatadogDatadog 监控FastlyFastly CDNGoogleGoogle 下载分析MicrosoftMicrosoft PSF赞助商PingdomPingdom 监控SentrySentry 错误日志StatusPageStatusPage 状态页面