license: other
license_name: public-domain
license_link: LICENSE
MedCPT 简介
MedCPT 能够生成生物医学文本的嵌入表示,可用于语义搜索(密集检索)。该模型包含两个编码器:
本仓库包含MedCPT文章编码器。
MedCPT通过前所未有的2.55亿对PubMed搜索日志中的查询-文章对进行了预训练,并在多个零样本生物医学信息检索数据集上实现了最先进的性能。一般来说,有以下三种使用场景:
- 使用两个编码器进行查询到文章的搜索。
- 使用查询编码器进行查询表示,用于聚类或查询到查询的搜索。
- 使用文章编码器进行文章表示,用于聚类或文章到文章的搜索。
更多详情,请参阅我们的论文(Bioinformatics,2023)。请注意,发布的版本与论文中报告的版本略有不同。
案例1. 使用MedCPT文章编码器
import torch
from transformers import AutoTokenizer, AutoModel
model = AutoModel.from_pretrained("ncbi/MedCPT-Article-Encoder")
tokenizer = AutoTokenizer.from_pretrained("ncbi/MedCPT-Article-Encoder")
articles = [
[
"成人中枢性尿崩症的诊断与管理",
"中枢性尿崩症(CDI)是一种临床综合征,源于下丘脑/垂体后叶加压素能神经元的丧失或功能受损,导致精氨酸加压素(AVP)的合成和/或分泌受损。[...]",
],
[
"无渴性尿崩症",
"无渴性尿崩症(ADI)是一种罕见但破坏性极强的水平衡紊乱疾病,具有显著的发病率和死亡率。大多数患者因下丘脑破坏而发病,病因多种多样。[...]",
],
[
"肾性尿崩症:全面概述",
"肾性尿崩症(NDI)的特征是无法浓缩尿液,导致多尿和多饮,尽管血浆精氨酸加压素(AVP)浓度正常或升高。[...]",
],
]
with torch.no_grad():
encoded = tokenizer(
articles,
truncation=True,
padding=True,
return_tensors='pt',
max_length=512,
)
embeds = model(**encoded).last_hidden_state[:, 0, :]
print(embeds)
print(embeds.size())
输出结果为:
tensor([[-0.0189, 0.0115, 0.0988, ..., -0.0655, 0.3155, -0.0357],
[-0.3402, -0.3064, -0.0749, ..., -0.0799, 0.3332, 0.1263],
[-0.2764, -0.0506, -0.0608, ..., 0.0389, 0.2532, 0.1580]])
torch.Size([3, 768])
这些嵌入表示与MedCPT查询编码器生成的表示处于同一空间。
案例2. 使用预计算的嵌入表示
我们已在https://ftp.ncbi.nlm.nih.gov/pub/lu/MedCPT/pubmed_embeddings/提供了所有PubMed文章的MedCPT文章编码器生成的嵌入表示。
致谢
本工作得到了美国国立卫生研究院国家医学图书馆内部研究计划的支持。
免责声明
此工具展示了NCBI/NLM计算生物学部门的研究成果。本网站提供的信息未经临床专业人员审查和监督,不适用于直接的诊断用途或医疗决策。个人不应仅基于本网站提供的信息改变其健康行为。NIH不独立验证此工具生成信息的有效性或实用性。如果您对本网站提供的信息有疑问,请咨询医疗保健专业人员。更多关于NCBI免责政策的信息,请参阅相关页面。
引用
如果您觉得本仓库对您有帮助,请引用MedCPT:
@article{jin2023medcpt,
title={MedCPT: Contrastive Pre-trained Transformers with large-scale PubMed search logs for zero-shot biomedical information retrieval},
author={Jin, Qiao and Kim, Won and Chen, Qingyu and Comeau, Donald C and Yeganova, Lana and Wilbur, W John and Lu, Zhiyong},
journal={Bioinformatics},
volume={39},
number={11},
pages={btad651},
year={2023},
publisher={Oxford University Press}
}