Skip to main content

MedGemma 파인튜닝으로 유방암 종양을 정확히 분류하는 단계별 가이드 (55자)

Published 3 min readMarkdown

# 📌 서론 – 왜 MedGemma 파인튜닝이 필요할까?

유방암은 조기 발견이 치료 성공률을 크게 높이는 질환입니다. 최근 의료 영상 분석에 인공지능(AI)이 활발히 활용되면서 유방암 종양 분류 정확도가 크게 향상되고 있습니다. 하지만 일반적인 사전 학습 모델을 그대로 사용하는 것만으로는 의료 현장의 특수한 데이터와 요구사항을 만족시키기 어렵습니다.

이에 맞춤형 모델을 만들기 위해 MedGemma 파인튜닝이 각광받고 있습니다. 본 가이드는 머신러닝 초보자도 이해할 수 있도록, MedGemma을 사용해 유방암 종양을 분류하는 과정을 쉽고 체계적으로 설명합니다.

Disclaimer: 이 가이드는 교육 및 정보 제공을 목적으로 하며, 실제 진단이나 치료에 직접 사용해서는 안 됩니다. 모델을 임상에 적용하기 전에는 반드시 전문가와 검증 과정을 거쳐야 합니다.


# 📚 본론

# 1️⃣ 환경 준비 – 필수 도구와 데이터 셋

| 항목 | 권장 사양 / 버전 |

|------|-------------------|

| Python | 3.9 이상 |

| PyTorch | 2.0 이상 |

| CUDA | 11.8 (GPU 사용 시) |

| 데이터 | 공개된 유방암 초음파 이미지(예: BUSI 데이터셋) |

| 기타 | transformers, datasets, scikit-learn 패키지 |

설정 팁

bash

conda create -n medgemma python=3.9

conda activate medgemma

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118

pip install transformers datasets scikit-learn

데이터는 이미지와 라벨(csv) 형태로 준비합니다. 라벨은 benign, malignant, normal 등 3가지 클래스로 구분합니다.


# 2️⃣ MedGemma 모델 불러오기와 기본 구조 이해

python

from transformers import AutoModelForImageClassification, AutoImageProcessor

model_name = 'google/medgemma-base'

processor = AutoImageProcessor.from_pretrained(model_name)

model = AutoModelForImageClassification.from_pretrained(model_name, num_labels=3)
  • AutoImageProcessor는 이미지 전처리를 담당합니다.

  • num_labels=3 은 유방암 종양 분류를 위한 클래스 수와 일치시킵니다.

핵심 포인트: 사전 학습된 MedGemma은 의료 영상에 특화된 비전 트랜스포머(ViT) 구조를 사용하므로, 일반 이미지 모델보다 더 높은 초기 성능을 기대할 수 있습니다.


# 3️⃣ 데이터 전처리와 Augmentation

python

from torchvision import transforms

train_transform = transforms.Compose([

    transforms.RandomResizedCrop(224),

    transforms.RandomHorizontalFlip(),

    transforms.ColorJitter(brightness=0.2, contrast=0.2),

    transforms.ToTensor(),

    transforms.Normalize(mean=processor.image_mean, std=processor.image_std)

])
  • RandomResizedCrop와 HorizontalFlip 은 데이터 다양성을 높여 과적합을 방지합니다.

  • processor.image_mean·std 로 정규화하면 사전 학습 가중치와 일관된 입력 형태를 유지합니다.


# 4️⃣ 파인튜닝 – 학습 루프와 하이퍼파라미터 설정

| 하이퍼파라미터 | 권장 값 |

|---------------|----------|

| 학습률 (lr) | 2e-5 |

| 배치 크기 (batch size) | 16 |

| 에폭 (epochs) | 5~8 |

| 옵티마이저 | AdamW |

python

from torch.utils.data import DataLoader

from transformers import Trainer, TrainingArguments

training_args = TrainingArguments(

    output_dir='./medgemma_finetuned',

    per_device_train_batch_size=16,

    per_device_eval_batch_size=16,

    num_train_epochs=6,

    learning_rate=2e-5,

    evaluation_strategy='epoch',

    save_strategy='epoch',

    load_best_model_at_end=True,

    metric_for_best_model='accuracy'

)

trainer = Trainer(

    model=model,

    args=training_args,

    train_dataset=train_dataset,

    eval_dataset=val_dataset,

    tokenizer=processor,

    compute_metrics=compute_metrics   # 정확도, F1 등

)

trainer.train()
  • compute_metrics 함수에서 정확도(accuracy) 와 F1-score 를 반환하도록 구현하면 모델 성능을 직관적으로 확인할 수 있습니다.

  • 에폭이 늘어날수록 검증 손실이 감소하는지 모니터링하고, 과적합 징후가 보이면 early stopping 을 적용합니다.


# 5️⃣ 모델 평가와 실제 적용 방법

  1. 테스트 셋 평가
python

   results = trainer.evaluate(test_dataset)

   print(f'Test Accuracy: {results['eval_accuracy']:.4f}')
  1. 예측 파이프라인 구축
python

   from PIL import Image

   def predict(image_path):

       img = Image.open(image_path).convert('RGB')

       inputs = processor(images=img, return_tensors='pt')

       outputs = model(**inputs)

       probs = torch.nn.functional.softmax(outputs.logits, dim=-1)

       pred = torch.argmax(probs, dim=1).item()

       return ['benign', 'malignant', 'normal'][pred], probs.squeeze().tolist()
  1. 클리닉 워크플로와 연계

    • 의료진이 확인할 수 있는 시각화 도구(Grad-CAM 등)를 추가하면 신뢰성을 높일 수 있습니다.

    • 모델 파일(.pt)을 Docker 이미지에 포함시켜 병원 서버에 배포하면, 기존 PACS 시스템과 연동이 용이합니다.


# 🚀 결론 – 지금 바로 시작해 보세요!

  • MedGemma 파인튜닝은 복잡한 의료 영상 AI 개발을 크게 단순화합니다.

  • 위 5단계(환경 준비 → 모델 로드 → 전처리 → 파인튜닝 → 평가)를 차례대로 따라 하면, 유방암 종양 분류 모델을 직접 만들고 검증할 수 있습니다.

행동 유도: 아직 실습해 보지 않았다면, 오늘 바로 conda 환경을 만들고 공개 데이터셋을 다운로드해 보세요. 첫 번째 실험 결과를 블로그나 커뮤니티에 공유하면, 같은 목표를 가진 연구자들과 소통하며 더 나은 모델을 만들 수 있습니다.

SEO 키워드: MedGemma 파인튜닝, 유방암 종양 분류, 머신러닝 모델 튜닝


이 글은 2025년 12월 현재 최신 정보를 기반으로 작성되었습니다. 새로운 라이브러리 버전이나 데이터셋이 출시될 경우, 내용이 일부 변경될 수 있습니다.

No comments yet. Be the first to comment.

More from this blog