📢 HuggingFace 에 업로드 된 모델 사용하는 python code 를 리뷰한 페이지입니다.
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# Load tokenizer and model
model_name = "snuh/hari-q3-8b"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = '''
### Instruction:
당신은 임상 지식을 갖춘 유능하고 신뢰할 수 있는 한국어 기반 의료 어시스턴트입니다.
사용자의 질문에 대해 정확하고 신중한 임상 추론을 바탕으로 진단 가능성을 제시해 주세요.
반드시 환자의 연령, 증상, 검사 결과, 통증 부위 등 모든 단서를 종합적으로 고려하여 추론 과정과 진단명을 제시해야 합니다.
의학적으로 정확한 용어를 사용하되, 필요하다면 일반인이 이해하기 쉬운 용어도 병행해 설명해 주세요.
### Question:Z
60세 남성이 복통과 발열을 호소하며 내원하였습니다.
혈액 검사 결과 백혈구 수치가 상승했고, 우측 하복부 압통이 확인되었습니다.
가장 가능성이 높은 진단명은 무엇인가요?
'''.strip()
messages = [
{"role": "user", "content": prompt}
]
# 토큰화를 위한 text 준비
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=True
)
# 토큰화 실행
# pt = PyTorch
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
# 답변 생성
generated_ids = model.generate(
**model_inputs,
max_new_tokens=4096
)
# 생성된 답변만 추출
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
# batch_decode: 토큰을 텍스트로 변환 (토큰화 반대 과정)
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)
model.generate 로 답변 생성하는 부분이 263분이나 걸렸다 .. 거진 4시간 반 ........... GPU 서버가 필요한 이유를 알겠습니당 ..### 진단 추론 및 가능성이 높은 진단명
#### **1. 증상 및 검사 결과 종합 분석**
- **연령**: 60세 남성. 고령 환자에서 **복부 감염** 또는 **장기 염증**이 발생할 경우 증상이 비특이적일 수 있음.
- **주요 증상**:
- **복통**: 우측 하복부 압통(특징적 위치).
- **발열**: 감염성 염증 반응을 시사.
- **혈액 검사**: **백혈구 수치 상승** → 감염 또는 염증 가능성.
- **신체 검사**: **우측 하복부 압통** → **맹장염**의 전형적 징후.
#### **2. 임상적 가능성 및 차별 진단**
- **가장 가능성 높은 진단**: **맹장염 (Appendicitis)**
- **근거**:
1. **우측 하복부 압통**은 맹장염의 전형적 위치.
2. **발열**과 **백혈구 증가**는 감염성 염증 반응과 일치.
3. 고령 환자에서도 맹장염은 발생 가능 (증상이 비특이적일 수 있음).
- **주의 사항**: 고령 환자의 경우 **증상이 약화되거나 확산**될 수 있어 진단이 어려울 수 있음.
- **차별 진단**:
1. **결장 폐색/염증 (예: 직장염, 대장염)**:
- 일반적으로 **좌측 하복부**에 통증이 나타나며, **혈변**이나 **변비** 동반 가능.
2. **신장 결석**:
- **측복부 통증**과 **혈뇨**가 동반되며, **백혈구 증가**보다 **요로 검사 이상**이 더 중요.
3. **위장염/위장관염**:
- **전복통** 또는 **상복부 통증**이 주로 나타나며, **설사**나 **구토** 동반 가능.
4. **간염/담낭염**:
- **우상복부 통증**이 주 증상이며, **황달**이나 **담도 검사 이상**이 동반될 수 있음.
#### **3. 임상적 판단 기준**
- **맹장염**은 **우측 하복부 압통**, **발열**, **백혈구 증가**가 **동반될 경우** 가장 높은 가능성을 가짐.
- **고령 환자**의 경우, **증상이 약화되거나 확산**될 수 있으므로 **초음파** 또는 **CT** 검사가 추가적으로 필요할 수 있음.
- **즉시 치료**가 필요한 **급성 맹장염**은 **맹장 절제술**이 표준 치료법임.
---
### **최종 진단명**
**1. 맹장염 (Acute Appendicitis)**
- **설명**: 맹장이 염증을 일으켜 발생하는 급성 감염 질환. 고령 환자에서도 발생 가능하며, **우측 하복부 통증**, **발열**, **백혈구 증가**가 주요 증상.
- **주의**: 증상이 약화되거나 확산될 수 있으므로 **영상 검사** (초음파/CT)로 확진 필요.
**2. 차별 진단**:
- **결장염**, **신장 결석**, **위장염** 등은 증상 위치 및 동반 증상에 따라 구분 가능.