🚀 kuelumbus/polyBERT
这是 polyBERT:一种化学语言模型,可实现完全由机器驱动的超快速聚合物信息学。polyBERT 可将 PSMILES 字符串映射到 600 维的密集指纹。这些指纹以数值形式表示聚合物的化学结构。有关许可协议,请参阅 LICENSE 文件。
🚀 快速开始
✨ 主要特性
- 这是一个化学语言模型,能够实现完全由机器驱动的超快速聚合物信息学。
- 可将 PSMILES 字符串映射到 600 维的密集指纹,以数值形式表示聚合物化学结构。
📦 安装指南
若要使用此模型,需要安装 sentence-transformers,安装命令如下:
pip install sentence-transformers
💻 使用示例
基础用法(Sentence-Transformers)
当你安装了 sentence-transformers 后,使用该模型会变得很简单。示例代码如下:
from sentence_transformers import SentenceTransformer
psmiles_strings = ["[*]CC[*]", "[*]COC[*]"]
polyBERT = SentenceTransformer('kuelumbus/polyBERT')
embeddings = polyBERT.encode(psmiles_strings)
print(embeddings)
高级用法(HuggingFace Transformers)
如果没有安装 sentence-transformers,可以按以下方式使用该模型:首先,将输入数据传递给变压器模型,然后对上下文词嵌入应用正确的池化操作。示例代码如下:
from transformers import AutoTokenizer, AutoModel
import torch
def mean_pooling(model_output, attention_mask):
token_embeddings = model_output[0]
input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
psmiles_strings = ["[*]CC[*]", "[*]COC[*]"]
tokenizer = AutoTokenizer.from_pretrained('kuelumbus/polyBERT')
polyBERT = AutoModel.from_pretrained('kuelumbus/polyBERT')
encoded_input = tokenizer(psmiles_strings, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
model_output = polyBERT(**encoded_input)
fingerprints = mean_pooling(model_output, encoded_input['attention_mask'])
print("Fingerprints:")
print(fingerprints)
📚 详细文档
- 评估结果:请参阅 https://github.com/Ramprasad-Group/polyBERT 和 arXiv 上的论文。
- 完整模型架构:
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: DebertaV2Model
(1): Pooling({'word_embedding_dimension': 600, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
)
📄 许可证
请查看 LICENSE 文件中的许可协议。
📖 引用与作者
Kuenneth, C., Ramprasad, R. polyBERT: a chemical language model to enable fully machine-driven ultrafast polymer informatics. Nat Commun 14, 4099 (2023). https://doi.org/10.1038/s41467-023-39868-6