🚀 Virchow模型
Virchow是一個自監督視覺變換器,使用150萬張全切片病理圖像進行預訓練。該模型可用作圖塊級特徵提取器(凍結或微調),在各種下游計算病理學應用中實現了最先進的效果。
🚀 快速開始
⚠️ 重要提示
🎉 點擊此處查看Virchow的最新版本:Virchow2
✨ 主要特性
Virchow模型具有以下顯著特性:
- 基於自監督學習,使用大規模全切片病理圖像進行預訓練。
- 可作為圖塊級特徵提取器,支持凍結或微調操作。
- 在多種下游計算病理學應用中取得了最先進的成果。
📦 安裝指南
環境要求
- 推薦使用PyTorch(2.0及以上版本)
- 要求timm(版本 >= 0.9.11)
- 需要huggingface_hub
登錄操作
在獲得模型訪問權限後,你需要在使用模型的環境中登錄Hugging Face。可以通過以下兩種方式進行登錄:
命令行登錄
huggingface-cli login
Python代碼登錄
from huggingface_hub import login
login()
更多詳細信息,請參考Hugging Face官方 文檔。
💻 使用示例
基礎用法
import timm
import torch
from timm.data import resolve_data_config
from timm.data.transforms_factory import create_transform
from timm.layers import SwiGLUPacked
from PIL import Image
model = timm.create_model("hf-hub:paige-ai/Virchow", pretrained=True, mlp_layer=SwiGLUPacked, act_layer=torch.nn.SiLU)
model = model.eval()
transforms = create_transform(**resolve_data_config(model.pretrained_cfg, model=model))
image = Image.open("/path/to/your/image.png")
image = transforms(image).unsqueeze(0)
output = model(image)
class_token = output[:, 0]
patch_tokens = output[:, 1:]
embedding = torch.cat([class_token, patch_tokens.mean(1)], dim=-1)
我們將類別標記和平均圖塊標記進行拼接,以創建最終的圖塊嵌入。在資源受限的環境中,你可以嘗試僅使用類別標記或平均圖塊標記。對於具有密集輸出的下游任務(如分割任務),可以使用大小為 256 x 1280
的圖塊標記張量。
高級用法
我們強烈建議在GPU上使用混合精度(fp16
)運行模型,可通過 torch.autocast
實現:
model = model.to("cuda")
image = image.to("cuda")
with torch.inference_mode(), torch.autocast(device_type="cuda", dtype=torch.float16):
output = model(image)
class_token = output[:, 0]
patch_tokens = output[:, 1:]
embedding = torch.cat([class_token, patch_tokens.mean(1)], dim=-1)
embedding = embedding.to(torch.float16)
📚 詳細文檔
模型詳情
- 開發者:美國紐約市的Paige公司和美國馬薩諸塞州劍橋市的微軟研究院
- 模型類型:圖像特徵骨幹網絡
- 模型統計信息:
- 參數數量(百萬):632
- 圖像尺寸:224 x 224
- 模型架構:
- 架構:ViT - H/14
- 補丁大小:14
- 層數:32
- 嵌入維度:1280
- 激活函數:SwiGLU
- 注意力頭數:16
- LayerScale:啟用
- 訓練詳情:
- 精度:混合精度(
fp16
)
- 目標:DINOv2(https://doi.org/10.48550/arXiv.2304.07193)
- 論文:
- 臨床級計算病理學和罕見癌症檢測的基礎模型:https://www.nature.com/articles/s41591 - 024 - 03141 - 0
- 預訓練數據集:紀念斯隆凱特琳癌症中心的150萬張全切片圖像的內部數據集,圖塊採樣分辨率為每像素0.5微米(20倍放大)。
- 許可證:Apache 2.0
模型使用方式
直接使用
Virchow旨在作為凍結特徵提取器,為圖塊級和全切片級分類器提供基礎。
下游使用
Virchow可以進行微調,以適應特定任務和/或數據集。
📄 許可證
Virchow模型及相關代碼遵循Apache許可證2.0版本(以下簡稱“許可證”)。你可以在以下網址獲取許可證副本:
http://www.apache.org/licenses/LICENSE - 2.0
除非適用法律要求或書面同意,否則根據本許可證分發的軟件按“原樣”分發,不提供任何形式的明示或暗示保證。有關許可證規定的權限和限制的具體語言,請參閱許可證。
附加條款
請注意,用於註冊Hugging Face賬戶的主要電子郵件必須與你的機構電子郵件一致,才能獲得批准。下載Virchow模型即表示你聲明所有信息(所屬機構、研究用途)均正確且最新。下載Virchow模型需要事先在Hugging Face上註冊並同意使用條款。
雖然Apache 2.0許可證授予了廣泛的權限,但我們懇請用戶遵守以下準則:
- 歸屬聲明:在使用或重新分發Virchow模型或其衍生產品時,我們鼓勵進行適當的歸屬聲明。請包含對原始來源和創作者的引用。
- 負責任使用:用戶應負責任且合乎道德地使用Virchow模型。請考慮你的使用對個人和社會的潛在影響。
- 醫療或臨床使用:Virchow模型不用於實際患者的醫學診斷、治療或疾病預防。它不應作為專業醫療建議的替代品。
- 隱私和數據保護:使用Virchow模型時,用戶應尊重隱私權並遵守適用的數據保護法律。
- 無惡意使用:Virchow模型不得用於創建惡意代碼、惡意軟件或干擾計算機系統的正常運行。
- 透明度:如果你在產品或服務中使用了Virchow模型,我們鼓勵你向最終用戶披露這一事實。
- 反饋和貢獻:我們歡迎用戶提供反饋和貢獻,以改進Virchow模型。請考慮與社區分享你的改進成果。
這些附加條款並非旨在限制你在Apache 2.0許可證下的權利,而是為了促進對Virchow模型的負責任和道德使用。
使用Virchow模型即表示你確認已閱讀並理解這些條款。
🔖 引用
如果您在研究中使用了此模型,請引用以下論文:
Vorontsov, E., Bozkurt, A., Casson, A. 等。臨床級計算病理學和罕見癌症檢測的基礎模型。Nat Med (2024). https://doi.org/10.1038/s41591 - 024 - 03141 - 0
@article{vorontsov2024virchow,
title={A foundation model for clinical-grade computational pathology and rare cancers detection},
author={Vorontsov, Eugene and Bozkurt, Alican and Casson, Adam and Shaikovski, George and Zelechowski, Michal and Severson, Kristen and Zimmermann, Eric and Hall, James and Tenenholtz, Neil and Fusi, Nicolo and Yang, Ellen and Mathieu, Philippe and van Eck, Alexander and Lee, Donghun and Viret, Julian and Robert, Eric and Wang, Yi Kan and Kunz, Jeremy D. and Lee, Matthew C. H. and Bernhard, Jan H. and Godrich, Ran A. and Oakley, Gerard and Millar, Ewan and Hanna, Matthew and Wen, Hannah and Retamero, Juan A. and Moye, William A. and Yousfi, Razik and Kanan, Christopher and Klimstra, David S. and Rothrock, Brandon and Liu, Siqi and Fuchs, Thomas J.},
journal={Nature Medicine},
year={2024},
publisher={Nature Publishing Group}
}