小分子的语言模型MolT5的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

这是MolT5的安装和embedding获取(gpu版)。

零、安装

c 复制代码
conda activate base
conda install -c conda-forge mamba -y

conda create -n molt5 python=3.9 -y
conda activate molt5

mamba install pytorch pytorch-cuda=11.8 -c pytorch -c nvidia -y
pip install sentencepiece accelerate
mamba install -c conda-forge rdkit -y
pip install "transformers==4.38.2"

# 需要离线的,去下载https://huggingface.co/laituan245/molt5-base,作为./molt5-base

一、使用步骤

1.引入库

c 复制代码
import torch
from transformers import T5Tokenizer, T5EncoderModel

2.获取embedding

c 复制代码
device = "cuda" if torch.cuda.is_available() else "cpu"

tokenizer = T5Tokenizer.from_pretrained("./molt5-base")
model = T5EncoderModel.from_pretrained("./molt5-base").to(device)
model.eval()

def get_molt5_embedding(
    smiles: str,
    pooling: str = "mean"   # "mean" | "cls"
):
    """
    Returns a 1D torch tensor embedding for a SMILES string.
    """
    inputs = tokenizer(
        smiles,
        return_tensors="pt",
        padding=False,
        truncation=True,
        max_length=512
    ).to(device)

    with torch.no_grad():
        outputs = model(**inputs)  # last_hidden_state: [1, L, D]

    hidden = outputs.last_hidden_state.squeeze(0)  # [L, D]

    if pooling == "mean":
        emb = hidden.mean(dim=0)   # [D]
    elif pooling == "cls":
        emb = hidden[0]            # T5 没有真 CLS,只是第一个 token
    else:
        raise ValueError("pooling must be 'mean' or 'cls'")

    return emb.cpu()

smiles = "CCOC(=O)C1=CC=CC=C1"  # unmapped canonical SMILES
emb = get_molt5_embedding(smiles)

print(emb.shape)

输出:torch.Size([768])


总结

MolT5是小分子预训练好的语言模型,它能获得小分子768维的embedding,进行后续建模和操作。

相关推荐
珠海西格4 分钟前
光伏电站全景感知体系:数据采集与设备状态监测技术
大数据·运维·服务器·数据库·人工智能
产品经理邹继强4 分钟前
VTC产品与创新篇④:产品战略全景图——从“造物者”到“生态设计师”
人工智能·产品经理
Deepoch6 分钟前
自然交互+精准感知!Deepoc具身模型开发板让清洁机器人告别“盲扫”
人工智能·科技·机器人·半导体·清洁机器人·具身模型·deepoc
yuezhilangniao8 分钟前
从对话大脑到万能助手:企业级AI助理五层AI架构实战指南-AI开发架构AI体系理性分层篇
人工智能·架构
玄同76518 分钟前
LangChain 1.0 模型接口:多厂商集成与统一调用
开发语言·人工智能·python·langchain·知识图谱·rag·智能体
acai_polo18 分钟前
如何在国内合规、稳定地使用GPT/Claude/Gemini API?中转服务全解析
人工智能·gpt·ai·语言模型·ai作画
北京青翼科技23 分钟前
【PCIe732】青翼PCIe采集卡-优质光纤卡- PCIe接口-万兆光纤卡
图像处理·人工智能·fpga开发·智能硬件·嵌入式实时数据库
星幻元宇VR37 分钟前
5D动感影院,科技与沉浸式体验的完美融合
人工智能·科技·虚拟现实
WZGL123041 分钟前
“十五五”发展展望:以社区为底座构建智慧康养服务
大数据·人工智能·物联网
阿杰学AI1 小时前
AI核心知识86——大语言模型之 Superalignment(简洁且通俗易懂版)
人工智能·深度学习·ai·语言模型·超级对齐·superalignment·#ai安全