csj9630/llama32-3b-medical-qlora
Llama 3.2 3B Instruct 한국어 의료 QLoRA 어댑터
Built with Llama.
주의: 연구·교육용 실습 모델입니다. 의료기기나 진단 시스템이 아니며, 실제 진단·처방·응급상황 판단에 사용하면 안 됩니다. 내부 평가에서 위험하거나 부정확한 응급 답변이 확인됐습니다.
모델 개요
meta-llama/Llama-3.2-3B-Instruct를 한국어 의료 객관식 및 질의응답 데이터로 지도 미세조정(SFT)한 4-bit QLoRA 어댑터입니다. 전체 기반 모델은 포함하지 않으며, 추론하려면 Hugging Face에서 Meta의 Llama 라이선스에 동의하고 기반 모델 접근 권한을 받아야 합니다.
한국어는 Llama 3.2 모델 카드에 명시된 공식 지원 언어 목록에 포함되지 않습니다. 이 어댑터는 제한된 한국어 의료 데이터로 추가 학습한 실험 결과이며, 한국어 전반의 품질을 보장하지 않습니다.
학습 데이터
GenMedGPT 데이터 5%인 273개 샘플은 별도 검증용으로 분리했습니다. 학습 중 자동 평가는 수행하지 않았습니다. 데이터 자체의 오류·편향·위험한 의료 표현이 모델 출력에 반영될 수 있습니다.
훈련 환경
주요 하이퍼파라미터
학습 결과
이 모델은 Step 0부터 총 1,073 step까지 학습했습니다.
이 수치는 훈련 데이터 기준 지표입니다. Qwen과 토크나이저 및 처리 token 수가 다르므로 train loss만으로 모델 간 우열을 판단하면 안 됩니다.
내부 평가 결과
자체 제작한 한국어 40문항(객관식 10, 단순 상담 10, 모호한 상담 10, 응급상황 10)으로 Final 어댑터를 확인했습니다.
- 최신 Final 출력의 객관식 정답률은 10/10이었습니다.
- 문항 수가 적고 난도가 낮은 내부 점검이므로 표준 의료 벤치마크 결과가 아닙니다.
- 상담·응급 문항에서는 반복적인 검사 나열, 모호한 안내, 증상과 맞지 않는 처치 제안이 나타났습니다.
- 임신 중 통증·출혈, 머리 외상 후 구토, 의식 변화 등 긴급성이 높은 상황에서도 안전한 대응이 일관되지 않았습니다.
객관식 정답률과 실제 상담 안전성은 별개입니다. 이 모델은 임상 또는 환자 응대에 사용할 수준으로 검증되지 않았습니다.
사용 예시
먼저 Llama 기반 모델 접근 권한을 받은 계정으로 Hugging Face에 로그인하고, CUDA 환경에 맞는 PyTorch와 다음 라이브러리를 설치합니다.
hf auth login
pip install transformers peft accelerate bitsandbytesimport torch
from peft import PeftConfig, PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
adapter_id = "YOUR_ACCOUNT/YOUR_LLAMA_ADAPTER_REPO"
peft_config = PeftConfig.from_pretrained(adapter_id)
tokenizer = AutoTokenizer.from_pretrained(adapter_id, use_fast=True)
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_use_double_quant=True,
)
base_model = AutoModelForCausalLM.from_pretrained(
peft_config.base_model_name_or_path,
quantization_config=quantization_config,
device_map="auto",
dtype=torch.bfloat16,
)
model = PeftModel.from_pretrained(base_model, adapter_id)
messages = [{"role": "user", "content": "비타민 B12 결핍과 관련된 빈혈은 무엇인가요?"}]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
with torch.inference_mode():
output = model.generate(**inputs, max_new_tokens=256, do_sample=False)
answer_tokens = output[0, inputs["input_ids"].shape[1]:]
print(tokenizer.decode(answer_tokens, skip_special_tokens=True))adapter_id를 실제 Hugging Face 어댑터 저장소 ID로 변경해야 합니다.
한계 및 권장하지 않는 사용
- 의료 진단, 처방, 복약 결정, 응급상황 분류
- 환자에게 검토 없이 직접 답변하는 서비스
- 의료 전문가를 대체하는 자동 의사결정
- 개인정보나 민감한 의료정보 입력
- 한국어 및 의료 분야의 검증된 정확도를 전제로 한 업무
안전 평가, 환각 평가, 편향 평가, 표준 의료 벤치마크, 의료 전문가 검증을 추가하기 전에는 연구 실습 외 용도로 사용하지 마십시오.
라이선스와 출처
- 기반 모델:
meta-llama/Llama-3.2-3B-Instruct— Llama 3.2 Community License - KorMedMCQA — CC BY-NC 2.0
- GenMedGPT-5k-ko — MIT
재배포와 파생 모델 명명·표시에는 Llama 3.2 Community License가 적용됩니다. 어댑터 사용자는 기반 모델과 각 데이터셋의 조건을 모두 확인해야 하며, KorMedMCQA의 비영리 조건 때문에 별도 법률 검토 없이 상업적으로 사용하는 것을 권장하지 않습니다.
환경 영향
단일 RTX 5070에서 약 1시간 34분 실행한 개인 실습입니다. 전력 소비량과 탄소 배출량은 별도로 측정하지 않았습니다.
