Microsoft에서 발표한 Foundation 모델인 Prov-GigaPath입니다. 26개의 테스크에서 25개가 SOTA로 outperform을 주장했던 논문입니다. 

자세한 개발방법은 아래와 같습니다.

Data collection

  1. slides: H&E stained, and IHC(immunohistochemistry) 171,189 slides
  2. 백그라운드 제외: Tissue sementation. 자세히는 Otsu 알고리즘을으로 저해상도에서 진행해서 전경을 뽑은 후에 배율에 맞춰 사용함(HIPT에서도 활용)
  3. 해상도 조정: 0.5mpp (20x)에 맞춰 진행 (URL)**
  4. Tiling: 256 x 256 픽셀로 타일링 (2번에 오츄알고리즘으로 배경이 10% 이상인 경우만 활용)

 * 기타: 200node (32 CPU, 256GB RAM / node)에서의 분산처리를 진행

** level 0의 mpp가 0.25인 경우 level1으로 뽑는 식으로 lipvips을 안써도될 것 같음.

 

아키텍처 및 학습방법

GigaPath은 2단계의 학습 방법을 따릅니다. 하나는 tile-encoder이며, 또 다른 하나는 slide encoder입니다. 자기지도학습방법은 DINO v2을 따릅니다. 

Tile encoder(configuration)

  1. DINO v2: 정방 256px 이미지를 224px로 global view, 96 px의 local view로 하고 iBOT으로 maksed image modeling도 함께 사용합니다. 자세한 내용(URL)
  2. learning rate: 4x10^{-3}
  3. batch_size (/gpu): 12 (patch)
  4. total_batch: 384
  5. LongNet: default parameters
  6. tile coordinates: WSI이미지가 스캐너마다 각각 다르니, 패치사이즈 256px에 가로x세로가 1,000장씩있다고 셋팅
  7. image augmentation: cropping (크롭비율 0.875=224pixels) + moving distance 은 타일링하면서 uniform distribution으로 간격을 겹치게끔 타일링 + horizontally flipping (p=0.5)

Masked encoder (configuration)

  1. 아키텍처: LongNet. LongNet은 Flash attention보다 더 많은 시퀀스를 더 빨리 처리할 수 있는 아키텍처입니다. dilated attention machanism으로 GPU에서 매우 많은 수의 token을 받도록 되어있습니다. LongNet이 flash attention보다 더 빠른 속도로 학습이 가능했다고 합니다.
  2. MAE(Masked autoencoder) 적용 (URL)
  3. learning rate: 5x10^{-4}.
  4. batch_size (/gpu): 4
  5. positional encoding: $x_{l}, y_{l}$좌표가 있으면, 이 원래좌표와 grid 대비해서 flooring하여 작은값을 사용합니다 (식 3).


Dilated attention: 입력 시퀀스의 길이가 L이라고할 떄, 각 길이를 w 구간으로 나눠, L/w의 세그먼트로 나눕니다. w은 r을 어떻게 세팅하느냐에 따라 달라집니다. "r"이라는 간격으로 시퀀스의 간격(sparsity)을 조절합니다. 예를 들어 아래와 같습니다.

  • 전체 2048개의 토큰이고 windows size가 512면, r=1일 때, 4개의 구간이 얻어집니다.
  • 전체 2024개의 토큰이고, r=2이면, 토큰마다 1개가 skipping되어 1024개의 구간이 2개가 얻어집니다.

즉 Attention을 구간별로 적용하기 떄문에, 메모리 사용량이 원래 N이엇다면, $\frac{N}{w}r^{2}$로 얻어집니다. LongNet은 이 attention을 가중합하여 사용합니다. 

LongNet의 Dilated attention


 

반응형

+ Recent posts