🚀 SapBERT-XLMR
SapBERT-XLMRは、生物医学分野向けの多言語モデルです。このモデルはSapBERTを拡張し、UMLS 2020ABデータセットを用いて訓練されており、xlm - roberta - baseをベースモデルとしています。多言語環境下で生物医学用語の意味に関連するタスクを処理することができます。
🚀 クイックスタート
SapBERT埋め込みの抽出
以下のスクリプトを使用すると、文字列のリスト(エンティティ名)を埋め込みベクトルに変換することができます。
import numpy as np
import torch
from tqdm.auto import tqdm
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("cambridgeltl/SapBERT-from-PubMedBERT-fulltext")
model = AutoModel.from_pretrained("cambridgeltl/SapBERT-from-PubMedBERT-fulltext").cuda()
all_names = ["covid-19", "Coronavirus infection", "high fever", "Tumor of posterior wall of oropharynx"]
bs = 128
all_embs = []
for i in tqdm(np.arange(0, len(all_names), bs)):
toks = tokenizer.batch_encode_plus(all_names[i:i+bs],
padding="max_length",
max_length=25,
truncation=True,
return_tensors="pt")
toks_cuda = {}
for k,v in toks.items():
toks_cuda[k] = v.cuda()
cls_rep = model(**toks_cuda)[0][:,0,:]
all_embs.append(cls_rep.cpu().detach().numpy())
all_embs = np.concatenate(all_embs, axis=0)
訓練と評価に関する詳細情報については、SapBERTの githubリポジトリ を参照してください。
✨ 主な機能
- 多言語対応:複数の言語での生物医学エンティティリンクタスクを処理できます。
- 分野特化:UMLSデータセットを用いて訓練されており、生物医学分野に最適化されています。
💻 使用例
基本的な使用法
import numpy as np
import torch
from tqdm.auto import tqdm
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("cambridgeltl/SapBERT-from-PubMedBERT-fulltext")
model = AutoModel.from_pretrained("cambridgeltl/SapBERT-from-PubMedBERT-fulltext").cuda()
all_names = ["covid-19", "Coronavirus infection", "high fever", "Tumor of posterior wall of oropharynx"]
bs = 128
all_embs = []
for i in tqdm(np.arange(0, len(all_names), bs)):
toks = tokenizer.batch_encode_plus(all_names[i:i+bs],
padding="max_length",
max_length=25,
truncation=True,
return_tensors="pt")
toks_cuda = {}
for k,v in toks.items():
toks_cuda[k] = v.cuda()
cls_rep = model(**toks_cuda)[0][:,0,:]
all_embs.append(cls_rep.cpu().detach().numpy())
all_embs = np.concatenate(all_embs, axis=0)
📚 ドキュメント
モデルの紹介
SapBERT (Liu et al. 2020) は、UMLS 2020AB を用いて訓練され、[xlm - roberta - base](https://huggingface.co/xlm - roberta - base) をベースモデルとしています。入力の表現として [CLS] を使用してください。
最新情報
- [news] SapBERTの多言語拡張版が ACL 2021 のメイン会議で発表されます!
- [news] SapBERTが NAACL 2021 の会議論文集に掲載されます!
📚 引用
@inproceedings{liu2021learning,
title={Learning Domain-Specialised Representations for Cross-Lingual Biomedical Entity Linking},
author={Liu, Fangyu and Vuli{\'c}, Ivan and Korhonen, Anna and Collier, Nigel},
booktitle={Proceedings of ACL-IJCNLP 2021},
month = aug,
year={2021}
}
📋 モデル情報
属性 |
詳細 |
モデルタイプ |
xlm - roberta - baseをベースとした多言語生物医学モデル |
訓練データ |
UMLS 2020AB |
ラベル |
生物医学、用語意味、多言語 |