Views
No views yet
<think> tags prior to delivering a final medical conclusion.<think>...</think> tags for explainable medical reasoning.<think>\n</think>).Qwen/Qwen3.5-9BFreedomIntelligence/medical-o1-reasoning-SFT (Subset: -EM, Split: Train)<|im_start|>, <|im_end|>)1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer
3
4MODEL_ID = "Kerassy/Qwen3.5-9B-Medical-Reasoning"
5
6tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
7model = AutoModelForCausalLM.from_pretrained(
8 MODEL_ID,
9 torch_dtype=torch.bfloat16 if torch.cuda.is_bf16_supported() else torch.float16,
10 device_map="auto"
11)
12
13system_prompt = "You are a clinical expert. Think step-by-step inside <think> tags before providing your final medical answer."
14user_prompt = "A 45-year-old male presents with sudden chest pain, diaphoresis, and radiation to the left jaw. What is the most likely diagnosis?"
15
16prompt = (
17 f"<|im_start|>system\n{system_prompt}<|im_end|>\n"
18 f"<|im_start|>user\n{user_prompt}<|im_end|>\n"
19 f"<|im_start|>assistant\n"
20)
21
22inputs = tokenizer([prompt], return_tensors="pt").to("cuda")
23
24outputs = model.generate(
25 **inputs,
26 max_tokens=1024,
27 use_cache=True,
28 temperature=0.7,
29 top_p=0.9,
30 eos_token_id=tokenizer.eos_token_id
31)
32
33decoded = tokenizer.batch_decode(outputs, skip_special_tokens=False)[0]
34response = decoded.split("<|im_start|>assistant\n")[-1].replace("<|im_end|>", "").strip()
35
36print(response)1prompt_direct = (
2 f"<|im_start|>system\nYou are a succinct medical assistant.<|im_end|>\n"
3 f"<|im_start|>user\n{user_prompt}<|im_end|>\n"
4 f"<|im_start|>assistant\n<think>\n</think>\n"
5)
6
7inputs_direct = tokenizer([prompt_direct], return_tensors="pt").to("cuda")
8
9outputs_direct = model.generate(
10 **inputs_direct,
11 max_tokens=1024,
12 eos_token_id=tokenizer.eos_token_id
13)
14
15decoded_direct = tokenizer.batch_decode(outputs_direct, skip_special_tokens=False)[0]
16response_direct = decoded_direct.split("<think>\n</think>\n")[-1].replace("<|im_end|>", "").strip()
17
18print(response_direct)