I Built an AI That Predicts Medical Specialties from Clinical Notes (End-to-End Deployment)
개요
임상 노트를 입력받아 가장 가능성 높은 의료 전문 분야를 예측하고 상위 3개 예측 결과와 신뢰도 점수를 제공하는 웹 애플리케이션 형태의 AI 시스템이 구축 및 배포되었습니다.
주요 내용
* AI 시스템 기능: 임상 노트를 입력받아 가장 가능성 높은 의료 전문 분야를 예측하고, 상위 3개 예측 결과와 해당 신뢰도 점수를 반환합니다.
* 기술 스택: Python, PyTorch, Hugging Face Transformers, ClinicalBERT (모델), FastAPI (백엔드 API), HTML/CSS/JavaScript (프론트엔드), Netlify (프론트엔드 호스팅), Hugging Face Spaces (모델 배포)가 사용되었습니다.
* ClinicalBERT 사용 이유: 의료 및 임상 텍스트에 사전 학습되어 의료 용어, 증상 및 상태, 임상 문서 스타일에 대한 깊은 이해를 바탕으로 예측 품질을 향상시킵니다.
* 배포 구조: 백엔드는 Hugging Face Spaces에 FastAPI로 구축되었고, 프론트엔드는 Netlify에 HTML/CSS/JS로 구축된 API 기반 아키텍처를 따릅니다.
* 주요 도전 과제: 의료 데이터셋의 클래스 불균형 처리, 토큰 제한을 초과하는 긴 임상 노트, 모호한 증상 사례에 대한 낮은 신뢰도, 프론트엔드-백엔드 간 CORS 문제, Hugging Face Spaces에서의 배포 디버깅 등이 있었습니다.
* 학습 내용: 모델 학습은 전체 작업의 30%이며, 실제 엔지니어링은 배포 단계에서 시작됨을 배웠습니다. 데이터 품질이 모델 복잡성보다 중요하며, 실제 적용을 위한 AI 시스템 구축에는 종단간(End-to-end) 사고가 필수적입니다.
* 향후 개선 계획: 의료 분류 보조 시스템 (위험 수준 감지), 설명 가능한 AI (XAI), 다중 레이블 진단 지원, 더 나은 데이터셋 균형 조정, 병원 워크플로우 통합 등을 계획하고 있습니다.
시사점
이 프로젝트는 AI 모델 구축 자체보다 사용 가능한 AI 시스템을 구축하는 것이 더 어렵다는 점을 보여주며, 실제 AI 제품 개발을 위한 종단간 사고와 배포의 중요성을 강조합니다.
댓글
GitHub Discussions