shaunak1234/telecom-agentic-dataset
Updated β’ 18 β’ 1
How to use shaunak1234/qwen3-32b-telecom-expert with PEFT:
from peft import PeftModel
from transformers import AutoModelForCausalLM
base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-32B")
model = PeftModel.from_pretrained(base_model, "shaunak1234/qwen3-32b-telecom-expert")A domain-specialized telecom AI model fine-tuned from Qwen3-32B using LoRA on 2000 curated telecom agentic samples. Built for network engineering, 5G/LTE troubleshooting, automation, and telecom operations.
| Domain | Description |
|---|---|
| 5G RAN | gNB configuration, beamforming, MIMO, cell planning |
| 5G Core | AMF/SMF/UPF operations, network slicing, NRF management |
| Transport | MPLS, segment routing, fronthaul/backhaul optimization |
| Security | IPsec, SUPI/SUCI encryption, network access control |
| Automation | Ansible/Terraform for network, closed-loop operations |
| VoLTE/IMS | SIP call flows, QoS, VoNR migration |
| Cloud Native | CNF deployment, Kubernetes for telco, service mesh |
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
base_model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3-32B",
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True,
)
model = PeftModel.from_pretrained(base_model, "shaunak1234/qwen3-32b-telecom-expert")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-32B", trust_remote_code=True)
# Example prompt
messages = [
{"role": "system", "content": "You are a senior 5G RAN engineer with expertise in network optimization."},
{"role": "user", "content": "Our gNB is showing high RACH failure rate in a dense urban cell. What's your troubleshooting approach?"}
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=1024, temperature=0.7, top_p=0.9)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
# First merge the adapter for faster inference
from peft import PeftModel
from transformers import AutoModelForCausalLM
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-32B", torch_dtype=torch.bfloat16)
model = PeftModel.from_pretrained(base, "shaunak1234/qwen3-32b-telecom-expert")
merged = model.merge_and_unload()
merged.save_pretrained("qwen3-32b-telecom-merged")
# Then serve with vLLM
# vllm serve qwen3-32b-telecom-merged --dtype bfloat16
| Parameter | Value |
|---|---|
| LoRA rank (r) | 64 |
| LoRA alpha | 128 |
| LoRA dropout | 0.05 |
| Target modules | all-linear |
| Batch size | 2 |
| Gradient accumulation | 16 |
| Effective batch size | 32 |
| Learning rate | 2e-4 |
| LR scheduler | Cosine |
| Warmup ratio | 0.05 |
| Weight decay | 0.01 |
| Max sequence length | 2048 |
| Epochs | 3 |
| Total steps | 186 |
| Precision | bfloat16 |
| Gradient checkpointing | Yes (non-reentrant) |
| Component | Details |
|---|---|
| GPU | AMD Instinct MI300X (192GB HBM3) |
| Platform | AMD DevCloud |
| Software | PyTorch 2.5.1 + ROCm 6.2 |
| Framework | Transformers 4.52.4, PEFT 0.19.1 |
| Training speed | ~58 seconds/step |
| Total training time | ~3 hours |
| Cost | ~$6 (at $2/hr) |
Apache 2.0 (following Qwen3-32B base model license)
Base model
Qwen/Qwen3-32B