🚀 FremyCompany/BioLORD-2023-M
FremyCompany/BioLORD-2023-M 是一个基于新的预训练策略 BioLORD 的模型,可用于生成临床句子和生物医学概念的有意义表示,在文本相似度任务上表现出色,支持多种欧洲语言。
🚀 快速开始
本模型是一个 sentence-transformers 模型,它能将句子和段落映射到 768 维的密集向量空间,可用于聚类或语义搜索等任务。该模型已针对生物医学领域进行了微调,在处理医学文档(如电子健康记录或临床笔记)时会更有用。
安装依赖
pip install -U sentence-transformers
使用示例
from sentence_transformers import SentenceTransformer
sentences = ["Cat scratch injury", "Cat scratch disease", "Bartonellosis"]
model = SentenceTransformer('FremyCompany/BioLORD-2023-M')
embeddings = model.encode(sentences)
print(embeddings)
不使用 sentence-transformers 的情况
from transformers import AutoTokenizer, AutoModel
import torch
import torch.nn.functional as F
def mean_pooling(model_output, attention_mask):
token_embeddings = model_output[0]
input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
sentences = ["Cat scratch injury", "Cat scratch disease", "Bartonellosis"]
tokenizer = AutoTokenizer.from_pretrained('FremyCompany/BioLORD-2023-M')
model = AutoModel.from_pretrained('FremyCompany/BioLORD-2023-M')
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
model_output = model(**encoded_input)
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
sentence_embeddings = F.normalize(sentence_embeddings, p=2, dim=1)
print("Sentence embeddings:")
print(sentence_embeddings)
✨ 主要特性
- 创新预训练策略:采用 BioLORD 预训练策略,通过使用定义和从生物医学本体组成的多关系知识图派生的简短描述来构建概念表示,克服了传统方法可能导致非语义表示的问题,生成更符合本体层次结构的语义概念表示。
- 多语言支持:官方支持 7 种欧洲语言(英语、西班牙语、法语、德语、荷兰语、丹麦语和瑞典语),并非官方支持许多其他语言。
- 生物医学领域微调:针对生物医学领域进行了微调,在处理医学文档时表现更优,同时也保留了对通用文本生成嵌入的能力。
📦 安装指南
若要使用该模型,需安装 sentence-transformers:
pip install -U sentence-transformers
📚 详细文档
相关模型
本模型是 BioLORD - 2023 系列的一部分,该系列还有其他模型:
你还可以查看去年的模型和论文:
训练策略
三阶段概述

对比阶段详情

自蒸馏阶段详情

引用信息
本模型与 BioLORD-2023: Learning Ontological Representations from Definitions 论文相关。使用该模型时,请按以下格式引用原论文:
@article{remy-etal-2023-biolord,
author = {Remy, François and Demuynck, Kris and Demeester, Thomas},
title = "{BioLORD-2023: semantic textual representations fusing large language models and clinical knowledge graph insights}",
journal = {Journal of the American Medical Informatics Association},
pages = {ocae029},
year = {2024},
month = {02},
issn = {1527-974X},
doi = {10.1093/jamia/ocae029},
url = {https://doi.org/10.1093/jamia/ocae029},
eprint = {https://academic.oup.com/jamia/advance-article-pdf/doi/10.1093/jamia/ocae029/56772025/ocae029.pdf},
}
🔧 技术细节
当前最先进的方法通过最大化指代同一概念的名称表示的相似性,并通过对比学习防止崩溃来运行。然而,由于生物医学名称并不总是具有自解释性,有时会导致非语义表示。
BioLORD 通过使用定义以及从由生物医学本体组成的多关系知识图派生的简短描述来构建其概念表示,克服了这个问题。借助这种构建方式,本模型生成的语义概念表示更符合本体的层次结构。BioLORD - 2023 在临床句子(MedSTS)和生物医学概念(EHR - Rel - B)的文本相似度方面树立了新的标杆。
本模型基于 sentence-transformers/all-mpnet-base-v2,并在 BioLORD-Dataset 和来自 Automatic Glossary of Clinical Terminology (AGCT) 的大语言模型生成的定义上进行了进一步微调。
📄 许可证
本模型的个人贡献遵循 MIT 许可证。然而,由于训练该模型使用的数据源自 UMLS 和 SnomedCT,在使用此模型之前,你需要确保拥有 UMLS 和 SnomedCT 的适当许可。UMLS 和 SnomedCT 在大多数国家是免费的,但你可能需要创建一个账户并每年报告数据使用情况以保持有效许可。
⚠️ 重要提示
若要使用该模型,需确保拥有 UMLS 和 SnomedCT 的适当许可,因为训练数据源自这两个资源。
💡 使用建议
如果你需要处理医学文档,如电子健康记录或临床笔记,该模型会更有用。但它也保留了对通用文本生成嵌入的能力。
如果你有能力,请帮助我 资助我的开放研究。感谢你的慷慨支持!