🚀 Prov-GigaPath
Prov-GigaPathは、実世界のデータからデジタル病理用の全スライド基礎モデルです。このモデルは、デジタル病理分野における研究や再現性の向上に役立ちます。
[コード
] [モデル
] [論文
] [BibTeX
]
Hanwen Xu*, Naoto Usuyama*, Jaspreet Bagga, Sheng Zhang, Rajesh Rao, Tristan Naumann, Cliff Wong, Zelalem Gero, Javier González, Yu Gu, Yanbo Xu, Mu Wei, Wenhui Wang, Shuming Ma, Furu Wei, Jianwei Yang, Chunyuan Li, Jianfeng Gao, Jaylen Rosemon, Tucker Bower, Soohee Lee, Roshanthi Weerasinghe, Bill J. Wright, Ari Robicsek, Brian Piening, Carlo Bifulco, Sheng Wang, Hoifung Poon (*同等の貢献)

✨ 主な機能
Prov-GigaPathは、デジタル病理の分野において、全スライドの基礎モデルを提供します。このモデルは、実世界のデータを用いて訓練されており、画像特徴抽出に適しています。
📦 インストール
NVIDIA A100 Tensor Core GPUマシンで、CUDAツールキットを有効にした環境でのインストール方法です。
- リポジトリをダウンロードし、Prov-GigaPathディレクトリを開きます。
git clone https://github.com/prov-gigapath/prov-gigapath
cd prov-gigapath
- GigaPathとその依存関係をインストールします。
conda env create -f environment.yaml
conda activate gigapath
pip install -e .
📚 ドキュメント
モデルのダウンロード
Prov-GigaPathモデルは、HuggingFace Hubからアクセスできます。モデルにアクセスするには、利用規約に同意する必要があります。必要なアクセス権を取得したら、HuggingFaceの読み取り専用トークンを環境変数として設定します。
export HF_TOKEN=<huggingface read-only token>
トークンを設定しない場合、以下のエラーが発生する可能性があります。
ValueError: We have no connection or you passed local_files_only, so force_download is not an accepted option.
推論
基本的な使用法
Prov-GigaPathモデルは、タイルエンコーダとスライドエンコーダから構成されています。タイルエンコーダはパッチレベルの局所パターンを抽出し、スライドエンコーダはスライドレベルの表現を出力します。このモデルは、タイルレベルとスライドレベルの両方のタスクに使用できます。スライドレベルで推論を行う場合、以下のパイプラインを推奨します。
- 全スライドをN個の画像タイルに分割し、各タイルの座標を取得します。
- タイルエンコーダを使用して、各タイルの埋め込みを取得します。
- N個の画像タイルの埋め込みとその座標をスライドエンコーダに渡し、スライドレベルの表現を取得します。
タイルエンコーダを使用した推論
まず、GigaPathタイルエンコーダをロードします。
import timm
from PIL import Image
from torchvision import transforms
import torch
tile_encoder = timm.create_model("hf_hub:prov-gigapath/prov-gigapath", pretrained=True)
transform = transforms.Compose(
[
transforms.Resize(256, interpolation=transforms.InterpolationMode.BICUBIC),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),
]
)
タイルレベルの特徴を抽出するための推論を実行します。
img_path = "images/prov_normal_000_1.png"
sample_input = transform(Image.open(img_path).convert("RGB")).unsqueeze(0)
tile_encoder.eval()
with torch.no_grad():
output = tile_encoder(sample_input).squeeze()
スライドエンコーダを使用した推論
スライドエンコーダを使用して推論を行うには、タイルの埋め込みとその座標の両方を入力として必要とします。まず、GigaPathスライドエンコーダをロードします。
import gigapath
slide_encoder = gigapath.slide_encoder.create_model("hf_hub:prov-gigapath/prov-gigapath", "gigapath_slide_enc12l768d", 1536)
スライドレベルの埋め込みを取得するための推論を実行します。
slide_encoder.eval()
with torch.no_grad():
output = slide_encoder(tile_embed, coordinates).squeeze()
微調整
PCamデータセットを使用したタイルレベルの線形プロービングの例
利便性のため、PCamデータセットの事前抽出された埋め込みを提供しています。以下のリンクからダウンロードできます。ファイルサイズは2GBです。
wget -nc https://hanoverprod.z21.web.core.windows.net/gigapath/GigaPath_PCam_embeddings.zip -P data/
このファイルを解凍する必要はありません。
微調整実験を実行するには、以下のスクリプトを実行します。
bash scripts/run_pcam.sh data/GigaPath_PCam_embeddings.zip
PANDAデータセットを使用したスライドレベルの微調整の例
利便性のため、PANDAデータセットの事前抽出された埋め込みを提供しています。以下のリンクからダウンロードできます。ファイルサイズは32GBです。このファイルを解凍してください。
wget -nc https://hanoverprod.z21.web.core.windows.net/gigapath/GigaPath_PANDA_embeddings.zip -P data/
unzip -n data/GigaPath_PANDA_embeddings.zip -d data/
微調整実験を実行するには、以下のスクリプトを実行します。
bash scripts/run_panda.sh data/GigaPath_PANDA_embeddings/h5_files
サンプルデータのダウンロード
Prov-Pathデータのサンプル匿名化サブセットは、以下のリンクからアクセスできます。[1, 2]
モデルの用途
意図された用途
データ、コード、およびモデルチェックポイントは、(I) 病理基礎モデルに関する将来の研究と (II) 参照論文で報告された実験結果の再現性のみを目的として使用されることを意図しています。データ、コード、およびモデルチェックポイントは、臨床ケアまたはいかなる臨床決定目的にも使用されることを意図していません。
主な意図された用途
主な意図された用途は、AI研究者がこの研究を再現し、その上に構築するのを支援することです。GigaPathは、デジタル病理スライドデータの事前学習とエンコーディングの探索に役立つはずです。
範囲外の用途
モデルのすべての展開されたユースケース(商用またはその他)は範囲外です。我々は、広範な公開されている研究ベンチマークを使用してモデルを評価しましたが、モデルと評価は研究用途のみを目的としており、展開されたユースケースには意図されていません。
使用方法とライセンスに関する注意事項
このモデルは、医療機器、臨床支援、診断ツール、または疾病やその他の状態の診断、治癒、緩和、治療、または予防に使用されることを意図したその他の技術としての臨床使用を目的としていない、または提供されていません。このモデルは、専門的な医療アドバイス、診断、治療、または判断の代替として設計または意図されておらず、そのように使用されるべきではありません。すべてのユーザーは、開発されたモデルの出力をレビューして、モデルがユーザーのニーズを満たしているかどうかを判断し、臨床使用の前にモデルを検証および評価する責任があります。
謝辞
このプロジェクトが構築された素晴らしいリポジトリの著者や開発者に感謝の意を表します。DINOv2、MAE、Timm、およびTorchScale。彼らの貢献は私たちの研究にとって非常に貴重です。
引用
Prov-GigaPathがあなたの研究やアプリケーションに役立つ場合、以下のBibTeXを使用して引用してください。
@article{xu2024gigapath,
title={A whole-slide foundation model for digital pathology from real-world data},
author={Xu, Hanwen and Usuyama, Naoto and Bagga, Jaspreet and Zhang, Sheng and Rao, Rajesh and Naumann, Tristan and Wong, Cliff and Gero, Zelalem and González, Javier and Gu, Yu and Xu, Yanbo and Wei, Mu and Wang, Wenhui and Ma, Shuming and Wei, Furu and Yang, Jianwei and Li, Chunyuan and Gao, Jianfeng and Rosemon, Jaylen and Bower, Tucker and Lee, Soohee and Weerasinghe, Roshanthi and Wright, Bill J. and Robicsek, Ari and Piening, Brian and Bifulco, Carlo and Wang, Sheng and Poon, Hoifung},
journal={Nature},
year={2024},
publisher={Nature Publishing Group UK London}
}
📄 ライセンス
このプロジェクトは、Apache 2.0ライセンスの下で公開されています。詳細については、ライセンスを参照してください。