MedQA 프로젝트는 Qwen3-1.7B를 MedMCQA 데이터로 LoRA 파인튜닝해 임상 객관식 질문에 답하도록 만든 실험이다. 모델은 단순히 A/B/C/D 중 하나를 고르는 데서 멈추지 않고, 선택한 답에 대한 짧은 임상적 설명까지 생성한다. 베이스 모델은 Qwen/Qwen3-1.7B, 데이터는 MedMCQA의 2,000개 학습 샘플, 학습 방식은 PEFT 기반 LoRA다.
흥미로운 지점은 의료 QA 자체보다 실행 환경이다. 이 프로젝트는 NVIDIA CUDA가 아니라 AMD Instinct MI300X와 ROCm 위에서 전체 학습 파이프라인을 돌렸다. 작성자는 Transformers, PEFT, TRL, Accelerate 같은 Hugging Face 생태계의 일반적인 도구들을 사용했고, ROCm 쪽 설정은 ROCR_VISIBLE_DEVICES, HIP_VISIBLE_DEVICES, HSA_OVERRIDE_GFX_VERSION 같은 환경 변수 지정에 가깝다. “다른 하드웨어라서 다른 훈련 코드를 써야 한다”는 부담을 줄였다는 점이 핵심이다.
구체적인 LoRA 설정도 작다. r=8, lora_alpha=16, dropout=0.05이며 q_proj와 v_proj만 타깃으로 잡았다. 그 결과 실제 학습되는 파라미터는 약 222만 개, 전체 15억 파라미터 중 0.1443% 수준이다. MI300X의 192GB HBM3 덕분에 4-bit나 8-bit 양자화 없이 fp16으로 학습했고, 2,000개 샘플 기준 약 5분 만에 훈련이 끝났다고 한다.
물론 마찰도 있었다. bfloat16에서는 NaN loss가 발생해 fp16으로 전환했고, bitsandbytes는 ROCm 빌드 문제 때문에 사용하지 않았다. GPU가 잡히지 않는 문제는 ROCm 환경 변수로 해결했고, 추론 출력이 망가지는 문제는 tokenizer의 pad_token을 eos_token으로 맞추며 정리했다. 이런 시행착오는 오히려 이 실험을 더 현실적으로 만든다.
이 결과를 임상 배포 가능한 의료 AI로 해석하면 곤란하다. 데이터 규모도 작고, 실제 의료 환경에서 필요한 안전성 평가나 책임 체계도 다뤄지지 않았다. 하지만 개발자 관점의 의미는 분명하다. LoRA와 대용량 VRAM, 그리고 성숙해지는 ROCm 실행 경로가 만나면 CUDA가 없는 환경에서도 도메인 특화 LLM 파인튜닝을 꽤 평범한 워크플로로 시도할 수 있다.
결국 MedQA가 보여준 것은 최고 성능의 의료 모델이 아니라 선택지의 확장이다. AI 인프라의 경쟁은 이제 벤치마크 숫자뿐 아니라, 같은 코드와 같은 라이브러리로 얼마나 자연스럽게 학습과 배포까지 이어지는지의 문제로 내려오고 있다.