小分子的语言模型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,进行后续建模和操作。

相关推荐
Coovally AI模型快速验证3 小时前
开放词汇3D实例分割新思路:框引导+超点融合,精准检索罕见物体
人工智能·计算机视觉·3d·语言模型·机器人·无人机
拓端研究室3 小时前
2025机器人行业白皮书:人形机器人、工业机器人、具身智能、核心零部件|附200+份报告PDF、数据、可视化模板汇总下载
人工智能
破烂pan3 小时前
大语言模型在翻译领域的演进与游戏本地化应用分析
人工智能·游戏·语言模型
汤汤upup3 小时前
Nature 2025 TabPFN的使用与报错解决
人工智能·机器学习
zandy10113 小时前
从ChatBI到Agentic BI:HENGSHI SENSE 6.0如何用AI Agent重构企业决策智能
人工智能·重构·ai agent·chatbi·agentic bi
Codebee3 小时前
告别 “糙” 体验!Ooder 企业级 AI:重构国产企业软件的 4 大核心解决方案
人工智能
OpenCSG3 小时前
XNet :面向大模型与数据集的块级存储与传输能力
人工智能·开源·opencsg·agentichub
文档伴侣3 小时前
体验访答:我的私有知识库新选择
人工智能·aigc·ocr
海边夕阳20063 小时前
【每天一个AI小知识】:什么是自注意力?
人工智能·经验分享·机器学习·强化学习·自注意力
DX_水位流量监测3 小时前
城市易涝点水位雨量监测设备技术体系与实践应用
大数据·运维·服务器·网络·人工智能