BioViL-T 是一种特定领域的视觉语言模型,旨在分析胸部 X 光片(CXR)和放射学报告。它采用时间多模态预训练流程进行训练,这使其有别于其前身模型(BioViL)。具体而言,BioViL-T 利用了数据点之间的时间结构,在使用与前身模型相同的训练数据集的情况下,在多个基准测试中实现了更优的下游性能。特别是,生成的模型在嵌入图像和文本模态中存在的时间信息方面(参见结果)以及在联合空间中均表现出显著改进。该标准模型可适应单图像和多图像下游应用,包括:自然语言推理、短语定位、图像/文本分类以及语言解码。
相应的 BERT 语言模型分两个阶段进行训练:首先,我们通过掩码语言模型(MLM)在 PubMed 摘要以及公开可用的 MIMIC-III 和 MIMIC-CXR 中的临床笔记上,从随机初始化的 BERT 模型预训练出 CXR-BERT-general。通过调整特定于目标领域的参数,该通用模型可针对其他临床领域的研究进行微调。在第二阶段,通过利用放射学报告和胸部 X 光片序列,采用多模态预训练流程,从 CXR-BERT-general 继续预训练 BioViL-T。我们利用 [CLS] 标记的潜在表示来对齐文本和图像嵌入。
| 模型 | 在 openmind 上的模型标识符 | 词汇表 | 说明 |
|---|---|---|---|
| CXR-BERT-general | microsoft/BiomedVLP-CXR-BERT-general | PubMed & MIMIC | 针对生物医学文献和临床领域进行预训练 |
| CXR-BERT-specialized | microsoft/BiomedVLP-CXR-BERT-specialized | PubMed & MIMIC | 针对 CXR 领域的静态预训练 |
| BioViL-T | microsoft/BiomedVLP-BioViL-T | PubMed & MIMIC | 针对 CXR 领域的静态和时间预训练 |
图像模型与文本模型在多模态对比学习框架中联合训练。它是一种混合图像编码器,由视觉Transformer和ResNet-50组成,其中ResNet-50作为骨干网络,用于从每个时间点的图像中提取特征。设计中包含Transformer,用于聚合和比较跨时间维度提取的图像特征。这种联合图像和文本模型,即BioViL-T,可用于短语定位应用,如本Python笔记本示例所示。此外,请查看MS-CXR基准,以更系统地评估联合图像和文本模型在短语定位任务中的表现。
本模型仅用于(I)未来视觉语言处理研究和(II)复现参考论文中报告的实验结果。
主要预期用途是支持AI研究人员在此工作基础上进行拓展。CXR-BERT及其相关模型应有助于探索各种临床NLP和VLP研究问题,尤其是在放射学领域。
任何模型的部署用例——无论是商业性的还是其他性质的——目前均超出范围。尽管我们使用了一系列广泛的公开研究基准对模型进行了评估,但这些模型和评估并非旨在用于部署场景。在特殊情况下,模型可能会做出不准确的预测并显示出局限性,这可能需要额外的缓解策略。因此,我们不鼓励将该模型用于自动诊断或医疗设备中。更多详情请参考相关论文。
以下是如何使用此模型提取放射学句子嵌入并在联合空间(图像和文本)中获得其余弦相似度的方法:
import argparse
import torch
from openmind import AutoModel, AutoTokenizer
device = "npu:0"
# Load the model and tokenizer
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
args = parse_args()
model_path = args.model_name_or_path
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModel.from_pretrained(model_path, trust_remote_code=True).to(device)
# Input text prompts (e.g., reference, synonym, contradiction)
text_prompts = ["There is no pneumothorax or pleural effusion",
"No pleural effusion or pneumothorax is seen",
"The extent of the pleural effusion is constant."]
# Tokenize and compute the sentence embeddings
tokenizer_output = tokenizer.batch_encode_plus(batch_text_or_text_pairs=text_prompts,
add_special_tokens=True,
padding='longest',
return_tensors='pt').to(device)
embeddings = model.get_projected_text_embeddings(input_ids=tokenizer_output.input_ids,
attention_mask=tokenizer_output.attention_mask).to(device)
# Compute the cosine similarity of sentence embeddings obtained from input text prompts.
sim = torch.mm(embeddings, embeddings.t())
print(sim)
本研究提出的模型通过在训练阶段更高效地利用语义和语篇特征,在放射学自然语言推理任务上取得了最先进的结果。 实验在RadNLI和MS-CXR-T基准数据集上进行,这两个数据集分别从静态语义和时间语义角度衡量文本嵌入的质量。 我们将BioViL-T与其他常用的领域内最先进BERT模型(包括PubMedBERT和CXR-BERT)进行了基准测试。 以下结果表明,BioViL-T不仅能更好地捕捉静态内容(RadNLI),还提高了句子嵌入对时间内容(MS-CXR-T)的敏感性。
| MS-CXR-T | MS-CXR-T | RadNLI(2类) | RadNLI(2类) | |
|---|---|---|---|---|
| 准确率 | ROC曲线下面积 | 准确率 | ROC曲线下面积 | |
| PubMedBERT | 60.39 | .542 | 81.38 | .727 |
| CXR-BERT-General | 62.60 | .601 | 87.59 | .902 |
| CXR-BERT-Specialized | 78.12 | .837 | 89.66 | .932 |
| BioViL-T | 87.77 | .933 | 90.52 | .947 |
这种新颖的预训练框架还能产生更优的视觉-语言表征。以下是在MS-CXR基准数据集上获得的零样本短语定位性能,该数据集用于评估图像-文本潜在表征的质量。
| 视觉-语言预训练方法 | MS-CXR短语定位(平均CNR分数) | MS-CXR短语定位(mIoU) |
|---|---|---|
| BioViL | 1.07 ± 0.04 | 0.229 ± 0.005 |
| BioViL-L | 1.21 ± 0.05 | 0.202 ± 0.010 |
| BioViL-T | 1.33 ± 0.04 | 0.240 ± 0.005 |
更多实验结果和讨论可参见相关论文:“Learning to Exploit Temporal Structure for Biomedical Vision–Language Processing”,CVPR'23。
本模型基于英文语料库开发,因此仅适用于英文场景。
训练数据集仅包含从重症监护病房(ICU)获取的医学图像和报告,其中纵向图像通常在数小时内或最多几天内采集。因此,当分析较长时间(例如数年)内采集的连续图像时,由于扫描之间存在显著的解剖结构变化,模型的性能可能会下降。
有关模型训练和评估的其他详细信息,请参阅相关论文:"Learning to Exploit Temporal Structure for Biomedical Vision–Language Processing", CVPR'23。