1from peft import PeftModel
2from transformers import AutoModelForCausalLM, AutoTokenizer
3import torch
4
5base_model = AutoModelForCausalLM.from_pretrained(
6 "Qwen/Qwen3-32B",
7 torch_dtype=torch.bfloat16,
8 device_map="auto",
9 trust_remote_code=True,
10)
11model = PeftModel.from_pretrained(base_model, "shaunak1234/qwen3-32b-telecom-expert")
12tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-32B", trust_remote_code=True)
13
14# Example prompt
15messages = [
16 {"role": "system", "content": "You are a senior 5G RAN engineer with expertise in network optimization."},
17 {"role": "user", "content": "Our gNB is showing high RACH failure rate in a dense urban cell. What's your troubleshooting approach?"}
18]
19
20text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
21inputs = tokenizer(text, return_tensors="pt").to(model.device)
22outputs = model.generate(**inputs, max_new_tokens=1024, temperature=0.7, top_p=0.9)
23print(tokenizer.decode(outputs[0], skip_special_tokens=True))
1# First merge the adapter for faster inference
2from peft import PeftModel
3from transformers import AutoModelForCausalLM
4
5base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-32B", torch_dtype=torch.bfloat16)
6model = PeftModel.from_pretrained(base, "shaunak1234/qwen3-32b-telecom-expert")
7merged = model.merge_and_unload()
8merged.save_pretrained("qwen3-32b-telecom-merged")
9
10# Then serve with vLLM
11# vllm serve qwen3-32b-telecom-merged --dtype bfloat16