Publicly Available Clinical BERT Embeddings 论文包含四个独特的 ClinicalBERT 模型:初始化为 BERT-Base(cased_L-12_H-768_A-12)或 BioBERT(BioBERT-Base v1.0 + PubMed 200K + PMC 270K),并在所有 MIMIC 笔记或仅出院总结上进行训练。
本模型卡片介绍的是 Bio+Clinical BERT 模型,该模型从 BioBERT 初始化,并在所有 MIMIC 笔记上进行训练。
Bio_ClinicalBERT 模型是在 [MIMIC III] 的所有笔记上训练的,MIMIC III 是一个包含马萨诸塞州波士顿贝斯以色列医院 ICU 患者电子健康记录的数据库。有关 MIMIC 的更多详细信息,请参见 [here]。NOTEEVENTS 表中的所有笔记都被包含在内(约 8.8 亿词)。
MIMIC 中的每个笔记首先使用基于规则的章节分割器分割成各个章节(例如,出院总结笔记被分割为“现病史”、“家族史”、“简要住院过程”等章节)。然后,每个章节使用 SciSpacy(en core sci md 分词器)分割成句子。
模型参数使用 BioBERT(BioBERT-Base v1.0 + PubMed 200K + PMC 270K)进行初始化。
我们使用 32 的批处理大小、128 的最大序列长度和 5×10?5 的学习率来预训练我们的模型。在所有 MIMIC 笔记上训练的模型训练了 150,000 步。用于通过不同掩码复制输入数据的复制因子设置为 5。所有其他默认参数均被使用(具体而言,掩码语言模型概率 = 0.15,每序列最大预测数 = 20)。
import argparse
from openmind import AutoModel, AutoTokenizer
from openmind import is_torch_npu_available
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument("--model_name_or_path",type=str,help="Path to model",default=None,)
args = parser.parse_args()
return args
if __name__ == '__main__':
if is_torch_npu_available():
device = "npu:0"
else:
device = "cpu"
args = parse_args()
model_path = args.model_name_or_path
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True, add_eos_token=True)
model = AutoModel.from_pretrained(model_path, trust_remote_code=True).to(device)
inputs = tokenizer.encode("def print_hello_world():\tprint('Hello World!')", return_tensors="pt").to(device)
embedding = model(inputs)[0]
print(f'Dimension of the embedding: {embedding[0].size()}')
print(embedding)
有关 NLI 和 NER 任务的更多详细信息及性能表现,请参考原始论文《Publicly Available Clinical BERT Embeddings》(NAACL 临床 NLP 研讨会,2019)。