Instructions to use nraptisss/Qwen3-8B-TMF921-Intent-QLoRA-qwen3-8b-qlora-20260501-083834 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use nraptisss/Qwen3-8B-TMF921-Intent-QLoRA-qwen3-8b-qlora-20260501-083834 with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-8B") model = PeftModel.from_pretrained(base_model, "nraptisss/Qwen3-8B-TMF921-Intent-QLoRA-qwen3-8b-qlora-20260501-083834") - Notebooks
- Google Colab
- Kaggle
Qwen3-8B TMF921 Intent-to-Configuration QLoRA Adapter
This is the primary stage-1 QLoRA adapter for multi-standard telecom intent-to-configuration translation.
Base model:
Training dataset:
Training/evaluation repository:
Intended task
The model translates natural-language 5G/6G telecom/network-slicing intents into structured JSON configuration-like outputs across target families including:
- TMF921 intent objects,
- 3GPP intent-style objects,
- ETSI ZSM intent-style objects,
- CAMARA network-slice booking-style objects,
- O-RAN A1 policy-style objects,
- O1 NRM-style objects,
- TMF921 lifecycle operations,
- adversarial/rejection responses.
This is a research baseline, not a production-certified network-management system.
Training recipe
| Item | Value |
|---|---|
| Base model | Qwen/Qwen3-8B |
| Method | QLoRA SFT |
| Quantization | 4-bit NF4 + double quantization |
| LoRA target modules | all-linear |
| LoRA rank | 64 |
| LoRA alpha | 16 |
| LoRA dropout | 0.05 |
| Max length | 2048 |
| Loss | assistant-only SFT loss |
| Training split | train_sota |
| Learning rate | 2e-4 |
| Scheduler | constant |
| Optimizer | paged AdamW 32-bit |
| Hardware | NVIDIA RTX 6000 Ada 48/50GB |
| Framework | TRL SFTTrainer + PEFT |
The dataset was audited with the Qwen3 chat template; all source rows fit within 2048 tokens.
Main evaluation results
Stage-1 raw metrics:
| Split | JSON parse | Exact match | Field F1 | KPI presence |
|---|---|---|---|---|
test_in_distribution |
1.0000 | 0.0227 | 0.6868 | 0.7973 |
test_template_ood |
1.0000 | 0.0014 | 0.6790 | 0.8062 |
test_use_case_ood |
0.9998 | 0.0122 | 0.6825 | 0.7883 |
test_sector_ood |
1.0000 | 0.0166 | 0.6610 | 0.7733 |
test_adversarial |
1.0000 | 0.9697 | 0.9697 | 1.0000 |
Stage-1 normalized metrics:
| Split | JSON parse | Normalized field F1 | Normalized key F1 | Normalized exact |
|---|---|---|---|---|
test_in_distribution |
1.0000 | 0.7956 | 0.9811 | 0.0351 |
test_template_ood |
1.0000 | 0.7865 | 0.9801 | 0.0177 |
test_use_case_ood |
0.9998 | 0.7907 | 0.9805 | 0.0253 |
test_sector_ood |
1.0000 | 0.7697 | 0.9818 | 0.0293 |
test_adversarial |
1.0000 | 0.9697 | 1.0000 | 0.9697 |
Normalization removes volatile/generated fields such as IDs, hrefs, timestamps, schema links, descriptions, and generated identifiers before computing field/key metrics.
Layer-level findings
Strong layers:
tmf921: normalized field F1 around 0.93β0.94.camara: normalized field F1 around 0.81β0.87.intent_3gpp: normalized field F1 around 0.80β0.82.etsi_zsm: normalized field F1 around 0.75β0.79.
Weak layers:
o1_nrm: normalized field F1 around 0.39β0.40.a1_policy: normalized field F1 around 0.67β0.68.tmf921_lifecycle_report: normalized field F1 around 0.15β0.18.tmf921_lifecycle_monitor: normalized field F1 around 0.39β0.52.
A stage-2 weak-layer continuation experiment was performed but is not promoted because it did not materially improve O1/A1 and slightly reduced adversarial robustness. Stage 1 remains the primary model.
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import torch
base = "Qwen/Qwen3-8B"
adapter = "nraptisss/Qwen3-8B-TMF921-Intent-QLoRA-qwen3-8b-qlora-20260501-083834"
tokenizer = AutoTokenizer.from_pretrained(adapter, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(base, torch_dtype=torch.bfloat16, device_map="auto", trust_remote_code=True)
model = PeftModel.from_pretrained(model, adapter)
model.eval()
messages = [
{"role": "system", "content": "You are a telecom intent-to-configuration assistant. Return valid JSON only."},
{"role": "user", "content": "Create a URLLC slice for remote robotic surgery in Hospital Campus with 1 ms latency, 99.9999% reliability, 100 Mbps downlink, 50 Mbps uplink, and 20 UEs."},
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
with torch.no_grad():
out = model.generate(**inputs, max_new_tokens=1536, do_sample=False)
print(tokenizer.decode(out[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True))
Limitations
- This model is trained on synthetic research data, not real operator logs.
- It is not certified against official TMF921/3GPP/ETSI/CAMARA/O-RAN schemas.
- It should not be used to deploy real network configurations without expert review and validators.
- O1 NRM and A1 policy value fidelity remain open challenges.
- Raw exact match is low because many outputs contain volatile/generated fields.
- Normalized metrics are a research proxy, not proof of production standards compliance.
Recommended citation
@model{raptis_qwen3_tmf921_qlora_2026,
title = {Qwen3-8B TMF921 Intent-to-Configuration QLoRA Adapter},
author = {Raptis, Nikolaos},
year = {2026},
publisher = {Hugging Face},
url = {https://huggingface.co/nraptisss/Qwen3-8B-TMF921-Intent-QLoRA-qwen3-8b-qlora-20260501-083834}
}
Related resources
- Dataset: https://huggingface.co/datasets/nraptisss/TMF921-intent-to-config-research-sota
- Training/evaluation repo: https://huggingface.co/nraptisss/tmf921-intent-training
- Results: https://huggingface.co/nraptisss/tmf921-intent-training/tree/main/results
- Qualitative examples: https://huggingface.co/nraptisss/tmf921-intent-training/tree/main/analysis
- Downloads last month
- 53