🚀 MedCPTの紹介
MedCPTは、生物医学テキストの埋め込みを生成し、これを意味検索(密な検索)に使用することができます。このモデルには2つのエンコーダが含まれています:
このリポジトリには、MedCPT Article Encoderが含まれています。
MedCPTは、PubMedの検索ログから得られた2億5500万組のクエリと記事のペアという前代未聞の規模で事前学習されており、いくつかのゼロショット生物医学IRデータセットで最先端の性能を達成することが示されています。一般的に、3つの使用例があります:
- 両方のエンコーダを使用したクエリから記事への検索。
- クエリエンコーダを使用したクラスタリングまたはクエリからクエリへの検索のためのクエリ表現。
- 記事エンコーダを使用したクラスタリングまたは記事から記事への検索のための記事表現。
詳細については、論文(Bioinformatics, 2023)をご覧ください。なお、公開されているバージョンは、論文で報告されているバージョンとわずかに異なります。
✨ 主な機能
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 = [
[
"Diagnosis and Management of Central Diabetes Insipidus in Adults",
"Central diabetes insipidus (CDI) is a clinical syndrome which results from loss or impaired function of vasopressinergic neurons in the hypothalamus/posterior pituitary, resulting in impaired synthesis and/or secretion of arginine vasopressin (AVP). [...]",
],
[
"Adipsic diabetes insipidus",
"Adipsic diabetes insipidus (ADI) is a rare but devastating disorder of water balance with significant associated morbidity and mortality. Most patients develop the disease as a result of hypothalamic destruction from a variety of underlying etiologies. [...]",
],
[
"Nephrogenic diabetes insipidus: a comprehensive overview",
"Nephrogenic diabetes insipidus (NDI) is characterized by the inability to concentrate urine that results in polyuria and polydipsia, despite having normal or elevated plasma concentrations of arginine vasopressin (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クエリエンコーダによって生成されたものと同じ空間にあります。
高度な使用法
事前計算された埋め込みを使用することができます。
私たちは、MedCPT記事エンコーダによって生成されたすべてのPubMed記事の埋め込みを、https://ftp.ncbi.nlm.nih.gov/pub/lu/MedCPT/pubmed_embeddings/ で提供しています。
📚 ドキュメント
謝辞
この研究は、国立医学図書館(National Library of Medicine)、国立衛生研究所(National Institutes of Health)の内部研究プログラムによって支援されました。
免責事項
このツールは、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}
}
📄 ライセンス
- ライセンス: その他
- ライセンス名: パブリックドメイン
- ライセンスリンク: LICENSE