🚀 MedCPT 紹介
MedCPTは、生物医学テキストの埋め込みを生成し、意味検索(密な検索)に使用することができます。このモデルには2つのエンコーダが含まれています。
このリポジトリには、MedCPT Query Encoderが含まれています。
MedCPTは、PubMed検索ログから得られた2億5500万組のクエリと記事のペアという前例のない規模で事前学習されており、いくつかのゼロショット生物医学IRデータセットで最先端の性能を達成することが示されています。一般的に、3つの使用例があります。
- 両方のエンコーダを使用したクエリから記事への検索。
- クエリエンコーダを使用したクラスタリングまたはクエリからクエリへの検索のためのクエリ表現。
- 記事エンコーダを使用したクラスタリングまたは記事から記事への検索のための記事表現。
詳細については、論文(Bioinformatics, 2023)をご覧ください。なお、公開されているバージョンは、論文に報告されているバージョンと若干異なります。
🚀 クイックスタート
MedCPTは、生物医学分野におけるテキストの意味検索を可能にするモデルです。以下では、具体的な使用方法を紹介します。
✨ 主な機能
- 生物医学テキストの埋め込み生成
- クエリと記事のエンコーダを備えた多様な検索機能
- 大規模な事前学習による高性能
💻 使用例
基本的な使用法
import torch
from transformers import AutoTokenizer, AutoModel
model = AutoModel.from_pretrained("ncbi/MedCPT-Query-Encoder")
tokenizer = AutoTokenizer.from_pretrained("ncbi/MedCPT-Query-Encoder")
queries = [
"diabetes treatment",
"How to treat diabetes?",
"A 45-year-old man presents with increased thirst and frequent urination over the past 3 months.",
]
with torch.no_grad():
encoded = tokenizer(
queries,
truncation=True,
padding=True,
return_tensors='pt',
max_length=64,
)
embeds = model(**encoded).last_hidden_state[:, 0, :]
print(embeds)
print(embeds.size())
出力結果は以下のようになります。
tensor([[ 0.0413, 0.0084, -0.0491, ..., -0.4963, -0.3830, -0.3593],
[ 0.0801, 0.1193, -0.0905, ..., -0.5380, -0.5059, -0.2944],
[-0.3412, 0.1521, -0.0946, ..., 0.0952, 0.1660, -0.0902]])
torch.Size([3, 768])
これらの埋め込みは、MedCPT記事エンコーダによって生成されたものと同じ空間にあります。
高度な使用法
MedCPTを使ってPubMedを意味的に検索することができます。MedCPT記事エンコーダによって生成されたすべてのPubMed記事の埋め込みは、https://ftp.ncbi.nlm.nih.gov/pub/lu/MedCPT/pubmed_embeddings/ で提供されています。これらの埋め込みをダウンロードすることで、あなたのクエリでPubMedを検索することができます。
📄 ライセンス
このプロジェクトは、public-domainライセンスの下で提供されています。
謝辞
この研究は、国立衛生研究所国立医学図書館の内部研究プログラムによって支援されました。
免責事項
このツールは、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}
}