
革新计算病理学的通用自监督模型
UNI是一款为计算病理学开发的通用自监督模型。它利用超过10万 张H&E染色全扫描图像进行预训练,在34项代表性任务中表现卓越。UNI具备分辨率无关的组织分类、少样本玻片分类和多种癌症类型分类等能力,为病理学AI模型开发开辟新途径。
自然医学 <img src="https://yellow-cdn.veclightyear.com/835a84d5/5faa8df9-fe67-485f-95dc-9dcb88d879c8.jpg" width="300px" align="right" />
摘要: 组织图像的定量评估对计算病理学(CPath)任务至关重要,需要从全幻灯片图像(WSIs)中客观地描述组织病理学实体。WSIs的高分辨率和形态特征的可变性带来了重大挑战,使得大规模数据标注变得复杂,难以应用于高性能应用。为应对这一挑战,目前的努力提出通过从自然图像数据集迁移学习或在公开可用的组织病理学数据集上进行自监督学习来使用预训练的图像编码器,但尚未在不同组织类型上进行大规模的广泛开发和评估。我们推出了UNI,一个用于病理学的通用自监督模型,使用来自20种主要组织类型的超过100,000张诊断性H&E染色WSIs(>77 TB数据)中的1亿多张图像进行预训练。该模型在34个具有不同诊断难度的代表性CPath任务上进行了评估。除了超越以往最先进的模型外,我们还展示了CPath中的新建模能力,如与分辨率无关的组织分类、使用少样本类原型进行幻灯片分类,以及在OncoTree分类系统中分类多达108种癌症类型的疾病亚型泛化能力。UNI在CPath中推进了大规模无监督表示学习,无论是在预训练数据还是下游评估方面,能够实现数据高效的人工智能模型,可以泛化并迁移到解剖病理学中广泛的具有诊断挑战性的任务和临床工作流程。
UNI是为组织病理学开发的最大预训练视觉编码器(1亿张图像,10万张WSIs),在内部肿瘤、感染、炎症和正常组织上开发并公开可用。我们在34个临床任务中展示了最先进的性能,在罕见和代表性不足的癌症类型上表现出显著的性能提升。
首先克隆仓库并进入目录:
git clone https://github.com/mahmoodlab/UNI.git cd UNI
然后创建一个conda环境并安装依赖项:
conda create -n UNI python=3.10 -y conda activate UNI pip install --upgrade pip # 启用PEP 660支持 pip install -e .
从Huggingface模型页面请求访问模型权重:https://huggingface.co/mahmoodlab/UNI。
通过身份验证(使用huggingface_hub)后,可以使用timm库直接加载UNI的ViT-L/16模型架构、预训练权重和图像变换。这种方法会自动将模型权重下载到您主目录中的huggingface_hub缓存(~/.cache/huggingface/hub/models--MahmoodLab--UNI),使用以下命令时timm会自动找到:
import timm from timm.data import resolve_data_config from timm.data.transforms_factory import create_transform from huggingface_hub import login login() # 使用您的用户访问令牌登录,可在https://huggingface.co/settings/tokens找到 # 需要pretrained=True来加载UNI权重(并首次下载权重) # 需要传入init_values以成功加载LayerScale参数(例如 - block.0.ls1.gamma) model = timm.create_model("hf-hub:MahmoodLab/uni", pretrained=True, init_values=1e-5, dynamic_img_size=True) transform = create_transform(**resolve_data_config(model.pretrained_cfg, model=model)) model.eval()
您也可以将模型权重下载到本地目录中指定的检查点位置。timm库仍用于定义ViT-L/16模型架构。需要手动加载和定义UNI的预训练权重和图像变换。
import os import torch from torchvision import transforms import timm from huggingface_hub import login, hf_hub_download login() # 使用您的用户访问令牌登录,可在https://huggingface.co/settings/tokens找到 local_dir = "../assets/ckpts/vit_large_patch16_224.dinov2.uni_mass100k/" os.makedirs(local_dir, exist_ok=True) # 如果目录不存在则创建 hf_hub_download("MahmoodLab/UNI", filename="pytorch_model.bin", local_dir=local_dir, force_download=True) model = timm.create_model( "vit_large_patch16_224", img_size=224, patch_size=16, init_values=1e-5, num_classes=0, dynamic_img_size=True ) model.load_state_dict(torch.load(os.path.join(local_dir, "pytorch_model.bin"), map_location="cpu"), strict=True) transform = transforms.Compose( [ transforms.Resize(224), transforms.ToTensor(), transforms.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)), ] ) model.eval()
函数get_encoder执行上述命令,将检查点下载到此GitHub仓库的./assets/ckpts/相对路径中。
from uni import get_encoder model, transform = get_encoder(enc_name='uni', device=device)
您可以使用UNI预训练编码器从组织病理学ROI提取特征,如下所示:
from PIL import Image image = Image.open("uni.jpg") image = transform(image).unsqueeze(dim=0) # 图像(torch.Tensor)的形状为[1, 3, 224, 224],经过调整大小和归一化处理(ImageNet参数) with torch.inference_mode(): feature_emb = model(image) # 提取的特征(torch.Tensor)形状为[1,1024]
这些预提取的特征随后可用于ROI分类(通过线性探测)、幻灯片分类(通过多实例学习)以及其他机器学习设置。
我们提供了用于加载模型和进行推理的高级函数。对于模型加载,函数get_encoder执行上述步骤2中的命令,将检查点下载到此GitHub仓库的./assets/ckpts/相对路径中。
from uni import get_encoder model, transform = get_encoder(enc_name='uni', device=device)
对于推理:
from uni.downstream.extract_patch_features import extract_patch_features_from_dataloader from uni.downstream.eval_patch_features.linear_probe import eval_linear_probe from uni.downstream.eval_patch_features.fewshot import eval_knn, eval_fewshot from uni.downstream.eval_patch_features.protonet import ProtoNet, prototype_topk_vote
有关详细示例,请参阅下面的笔记本。
请参阅./notebooks/uni_walkthrough.ipynb,以开始加载和使用模型创建嵌入,以及提取ROI特征和执行ROI分类/检索的示例代码。
论文[1]中提供了详细的基准测试(如上所示)。一些模型在我们的研究审核期间发布。为了更全面的比较,我们在EBRAINS、PANDA、OncoTree、IHC ER / PR评估、CRC-100K-Raw和TCGA Uniform Tumor数据集上提供了额外的结果,作为涵盖广泛组织类型、疾病、难度级别(最高108个类别)和染色(H&E和IHC)的代表性基准测试集。结果使用ABMIL和KNN(K=20)分别报告幻灯片和ROI任务。
请参阅UNI [1]和CONCH [2]论文以获取更详细的基准测试。
| 模型名称 | 预训练 | EBRAINS-C(12类,公开) | EBRAINS-F(30类,公开) | PANDA(5类,公开) | OncoTree-108(108类,内部) | IHC ER / PR 评估(6类,内部) |
|---|---|---|---|---|---|---|
| 平衡准确率 | 平衡准确率 | 二次加权 $\kappa$ | 平衡准确率 | 二次加权 $\kappa$ | ||
| UNI [1] | 视觉 | 0.883 | 0.675 | <ins>0.946</ins> | 0.538 | 0.785 |
| CONCH [2] | 视觉-语言 | 0.868 | 0.689 | 0.934 | 0.515 | <ins>0.819</ins> |
| Virchow (CLS+MEAN) [3] | 视觉 | 0.833 | 0.654 | 0.943 | 0.519 | 0.788 |
| Prov-GigaPath [4] | 视觉 | <ins>0.875</ins> | <ins>0.687</ins> | 0.942 | <ins>0.522</ins> | 0.821 |
| Phikon [5] | 视觉 | 0.810 | 0.659 | 0.950 | 0.486 | 0.744 |
| REMEDIS [6] | 视觉 | 0.687 | 0.382 | 0.932 | 0.412 | 0.762 |
| CTransPath [7] | 视觉 | 0.666 | 0.514 | 0.927 | 0.399 | 0.786 |
| Quilt-Net [8] | 视觉-语言 | 0.728 | 0.608 | 0.909 | 0.389 | 0.784 |
| PLIP [9] | 视觉-语言 | 0.683 | 0.562 | 0.901 | 0.369 | 0.759 |
| ResNet-50 (Tr) [10] | ImageNet 迁移 | 0.302 | 0.219 | 0.831 | 0.148 | 0.709 |
| 模型名称 | 预训练 | CRC-100K-Raw (9 类,公开) | TCGA 统一肿瘤 (32 类,公开) |
|---|---|---|---|
| 平衡准确率 | 平衡准确率 | ||
| UNI [1] | 视觉 | 0.925 | 0.595 |
| CONCH [2] | 视觉-语言 | 0.941 | 0.556 |
| Virchow (CLS+MEAN) [3] | 视觉 | 0.919 | 0.549 |
| Virchow (CLS) [3] | 视觉 | 0.895 | 0.544 |
| Prov-GigaPath [4] | 视觉 | <ins>0.929</ins> | <ins>0.593</ins> |
| Phikon [5] | 视觉 | 0.845 | 0.533 |
| REMEDIS [6] | 视觉 | 0.908 | 0.541 |
| CTransPath [7] | 视觉 | 0.836 | 0.463 |
| Quilt-Net [8] | 视觉-语言 | 0.878 | 0.359 |
| PLIP [9] | 视觉-语言 | 0.840 | 0.370 |
| ResNet-50 [10] | ImageNet 迁移 | 0.797 | 0.318 |
ⓒ Mahmood 实验室。本模型及相关代码根据 CC-BY-NC-ND 4.0 许可发布,仅可用于非商业性学术研究目的,并需适当引用。禁止任何商业用途、销售或其他对 UNI 模型及其衍生品(包括使用 UNI 模型输出训练的模型或由 UNI 模型创建的数据集)的盈利行为,需事先获得批准。下载模型需要在 Hugging Face 上提前注册并同意使用条款。下载此模型即表示您同意不分发、发布或复制模型副本。如果您所在组织的其他用户希望使用 UNI 模型,他们必须作为个人用户注册并同意遵守使用条款。用户不得试图重新识别用于开发底层模型的去识别数据。如果您是商业实体,请联系通讯作者或 Mass General Brigham Innovation Office。
本项目基于诸如 ViT、DINOv2、LGSSL 和 Timm(ViT 模型实现)等优秀仓库构建。我们感谢这些作者和开发者的贡献。
如果您在研究中发现我们的工作有用,或者使用了部分代码,请考虑引用我们的论文:
Chen, R.J., Ding, T., Lu, M.Y., Williamson, D.F.K., et al. Towards a general-purpose foundation model for computational pathology. Nat Med (2024). https://doi.org/10.1038/s41591-024-02857-3
@article{chen2024uni,
title={Towards a General-Purpose Foundation Model for Computational Pathology},
author={Chen, Richard J and Ding, Tong and Lu, Ming Y and Williamson, Drew FK and Jaume, Guillaume and Chen, Bowen and Zhang, Andrew and Shao, Daniel and Song, Andrew H and Shaban, Muhammad and others},
journal={Nature Medicine},
publisher={Nature Publishing Group},
year={2024}
}
<img src=.github/joint_logo.jpg>


多风格AI绘画神器
堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。


零代 码AI应用开发平台
零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动 执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


AI辅助编程,代码自动修复
Trae是 一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


AI论文写作指导平台
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号