Hugging Face Optimum Graphcore에서 Vision Transformers
Hugging Face와 Graphcore는 Vision Transformer(ViT) 모델을 Hugging Face Optimum Graphcore 라이브러리에 통합하여 사용자가 Graphcore Intelligence Processing Units(IPU)에서 이 모델들을 미세 조정할 수 있게 했습니다. 이 통합은 사전 학습된 ViT 체크포인트와 IPU 전용 하드웨어 가속을 결합함으로써 고성능 컴퓨터 비전 모델의 배포를 간소화합니다.
Vision Transformer (ViT) 아키텍처
Vision Transformers(ViT)는 원래 BERT와 GPT와 같은 자연어 처리(NLP) 모델을 위해 개발된 self‑attention 메커니즘을 이미지 인식에 적용합니다. 픽셀 배열을 사용하는 Convolutional Neural Networks(CNN)와 달리, ViT 모델은 입력 이미지를 작은 패치(시각 토큰)로 나눕니다. 각 패치는 선형 인코딩되어 벡터 표현으로 변환되며, 트랜스포머가 개별적으로 처리합니다.
ViT 접근 방식의 주요 특징은 다음과 같습니다:
- Feature Extraction: 사전 학습을 통해 ViT는 이미지의 내부 표현을 학습합니다. 사전 학습된 시각 인코더(보통 [CLS] 토큰) 위에 선형 레이어를 추가하여 다운스트림 분류 작업을 수행할 수 있습니다.
- Performance: ViT 모델은 CNN에 비해 낮은 계산 비용으로 더 높은 인식 정확도를 달성할 수 있습니다.
- Applications: ViT는 객체 탐지, 세그멘테이션, 의료 진단(예: COVID‑19, 유방암, 알츠하이머 병 진단) 등 다양한 분야에서 사용됩니다.
Graphcore IPU용 ViT 최적화
Graphcore IPU는 ViT 모델의 대규모 병렬 특성을 위해 설계되었습니다. 하드웨어는 MIMD(Multiple Instruction, Multiple Data) 아키텍처와 IPU‑Fabric 스케일아웃 솔루션을 활용하여 학습을 병렬화합니다.
Optimum Graphcore 라이브러리가 제공하는 기술적 최적화는 다음과 같습니다:
- Parallelism: 파이프라인 병렬성을 사용하면 데이터 병렬 인스턴스당 배치 크기가 증가하고 메모리 접근 효율이 향상되며 파라미터 집계 통신 시간이 감소합니다.
- Ready-to-use Checkpoints: Graphcore는 IPU에서 학습된 모델 체크포인트와 구성 파일(예:
Graphcore/vit-base-ipu)을 제공하여 사용자가 일반적으로 방대한 데이터셋이 필요한 ViT 모델을 처음부터 학습할 필요를 없앱니다. - Seamless Integration: 사용자는
google/vit-base-patch16-224-in21k와 같은 Hugging Face Model Hub의 기존 체크포인트를 활용하고,IPUConfig와IPUTrainer클래스를 통해 IPU 전용 구성을 적용할 수 있습니다.
사례 연구: 다중 라벨 흉부 X‑레이 분류
Optimum Graphcore 워크플로우의 효율성을 보여주기 위해, ViT 모델을 ChestX‑ray14 데이터셋에 미세 조정했습니다. 이 데이터셋은 30,805명의 환자로부터 수집된 112,120개의 정면 X‑레이 이미지를 포함합니다.
데이터셋 준비
X‑레이 이미지가 동시에 여러 질병을 나타낼 수 있기 때문에, 이 작업은 다중 라벨 분류 문제로 다룹니다. 워크플로우는 다음과 같습니다:
- Label Encoding: 텍스트 라벨을 N‑hot 인코딩된 배열(불리언)로 변환하여 여러 동시 질병을 나타냅니다.
- Preprocessing:
AutoImageProcessor를 사용하여 이미지를 224x224로 리사이즈하고, 그레이스케일 이미지를 RGB로 변환하며, 평균과 표준편차 0.5로 채널을 정규화합니다. - Data Loading: Hugging Face Datasets를 통해 Arrow 파일 형식을 사용하여 학습 중 빠르게 로드합니다.
학습 및 평가
- Model:
google/vit-base-patch16-224-in21k체크포인트(14백만 ImageNet‑21k 이미지에 사전 학습됨)를 사용했습니다. - Trainer:
IPUTrainer클래스를 사용했으며, 이는 IPU용 모델 컴파일을 처리하고 학습 및 평가를 관리합니다. - Metric: ROC 곡선 아래 면적(AUC_ROC)을 주요 성능 지표로 구현했으며, 이는 클래스 불균형에 민감하지 않고 모델이 다양한 질병을 구분하는 능력을 효과적으로 측정합니다.
- Results: 학습 로그는 손실이 빠르게 감소하여 약 0.1에서 안정화되었으며, 학습률은 25% 워밍업 기간 후 코사인 감소를 따랐습니다.
Paperspace Gradient를 통한 접근성
Paperspace와의 파트너십을 통해, Graphcore IPU로 구동되는 Hugging Face Optimum 모델에 Gradient의 웹 기반 Jupyter 노트북을 통해 접근할 수 있습니다. 이를 통해 개발자는 로컬 인프라 없이도 IPU 하드웨어에서 ViT, BERT, RoBERTa를 실험할 수 있습니다.
SUMMARY: Hugging Face와 Graphcore는 Optimum 라이브러리를 사용하여 Vision Transformer(ViT) 모델을 Intelligence Processing Units(IPU)에서 효율적으로 미세 조정할 수 있게 하며, 이를 다중 라벨 흉부 X‑레이 분류 작업을 통해 입증했습니다.
TITLE: Hugging Face Optimum Graphcore에서 Vision Transformers