Tapask commited on
Commit
d29f587
·
verified ·
1 Parent(s): 1065e78

Add model card: license attribution, training data lineage, usage snippet, limitations

Browse files
Files changed (1) hide show
  1. README.md +174 -0
README.md ADDED
@@ -0,0 +1,174 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ base_model: AliMaatouk/LLama-3-8B-Tele
3
+ license: llama3
4
+ language:
5
+ - en
6
+ tags:
7
+ - telecom
8
+ - oss
9
+ - bss
10
+ - tmf
11
+ - tmforum
12
+ - etom
13
+ - sid
14
+ - llama-3
15
+ - merged
16
+ pipeline_tag: text-generation
17
+ library_name: transformers
18
+ ---
19
+
20
+ # Telecom OSS/BSS Domain LLM (Merged Standalone)
21
+
22
+ **Built with Meta Llama 3.**
23
+
24
+ A standalone 8B model merging the [`Tapask/telecom-oss-8b`](https://huggingface.co/Tapask/telecom-oss-8b) LoRA adapter into its base [`AliMaatouk/LLama-3-8B-Tele`](https://huggingface.co/AliMaatouk/LLama-3-8B-Tele). Specialised for **TMF Frameworx** (eTOM, SID, Open APIs) and OSS/BSS telecom operations. No PEFT runtime required — load and use like any Llama-3 model.
25
+
26
+ Two flavours of the same fine-tune:
27
+ - **Standalone (this repo)** — single load, simpler for inference
28
+ - **[Adapter-only](https://huggingface.co/Tapask/telecom-oss-8b)** — 670 MB, needs the base model at load time (smaller download)
29
+
30
+ ## Model summary
31
+
32
+ | | |
33
+ |---|---|
34
+ | **Architecture** | Llama-3 8B (transformers-native, fp16 safetensors) |
35
+ | **Origin** | `AliMaatouk/LLama-3-8B-Tele` + QLoRA fine-tune (r=64, α=128, dropout=0.05) |
36
+ | **Fine-tune target modules** | `q_proj`, `k_proj`, `v_proj`, `o_proj`, `gate_proj`, `up_proj`, `down_proj` |
37
+ | **Training data** | 18,779 synthetic instruction–response pairs across 8 TMF-aligned categories |
38
+ | **Training config** | 3 epochs · effective batch 16 · seq 4096 · cosine LR (peak 2e-4) · bf16 · gradient checkpointing |
39
+ | **Training hardware** | NVIDIA A100 SXM4 80GB · ~8.3 h wall time |
40
+ | **Best eval loss** | **0.8438** (epoch 2.56) — `load_best_model_at_end=True` |
41
+ | **Sharded safetensors** | 5 × ~3-4 GB files (~16.1 GB total) |
42
+
43
+ ## Intended use
44
+
45
+ Domain-specialised completions for:
46
+
47
+ - **TMF Open API** payload generation (TMF620–TMF700 suite)
48
+ - **eTOM** process decomposition (Fulfillment / Assurance / Billing end-to-end flows)
49
+ - **SID** entity relationship reasoning (ProductOffering → Service → Resource hierarchies, Party/Role patterns, characteristic specifications)
50
+ - **Inventory reconciliation** (discovery–inventory mismatches, phantom/orphan resources)
51
+ - **OSS/BSS architecture** decisions (ODA components, build-vs-buy, MANO choices)
52
+ - **Fault-to-inventory correlation** (service impact from topology traversal)
53
+ - **TMF spec Q&A** (technical knowledge retrieval)
54
+ - **Integration code** (TMF-compliant Python clients)
55
+
56
+ ### How to use
57
+
58
+ ```python
59
+ from transformers import AutoModelForCausalLM, AutoTokenizer
60
+
61
+ model_id = "Tapask/telecom-oss-8b-merged"
62
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
63
+ model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype="auto", device_map="auto")
64
+ model.eval()
65
+
66
+ prompt = """Below is an instruction that describes a task related to telecom OSS/BSS systems, TMF Frameworx, or network operations. Write a response that appropriately completes the request.
67
+
68
+ ### Instruction:
69
+ Generate a TMF641 service order payload for a 5G network slice with URLLC characteristics targeting an enterprise IoT customer.
70
+
71
+ ### Response:
72
+ """
73
+
74
+ inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
75
+ output = model.generate(**inputs, max_new_tokens=1024, temperature=0.3, do_sample=True)
76
+ print(tokenizer.decode(output[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))
77
+ ```
78
+
79
+ Uses the **Alpaca prompt template** the model was trained with. Keep the `### Instruction: / ### Response:` markers exactly.
80
+
81
+ ### Deploying with Ollama / llama.cpp
82
+
83
+ This repo is fp16 safetensors. For Ollama/llama.cpp, convert to GGUF:
84
+
85
+ ```bash
86
+ git clone https://github.com/ggerganov/llama.cpp && cd llama.cpp
87
+ pip install -r requirements/requirements-convert_hf_to_gguf.txt
88
+ python convert_hf_to_gguf.py /path/to/downloaded/telecom-oss-8b-merged \
89
+ --outfile telecom-oss-8b.f16.gguf --outtype f16
90
+ ./llama-quantize telecom-oss-8b.f16.gguf telecom-oss-8b.Q4_K_M.gguf Q4_K_M
91
+ ```
92
+
93
+ Then create an Ollama Modelfile with the Llama-3 chat template and `FROM ./telecom-oss-8b.Q4_K_M.gguf`.
94
+
95
+ ## Training data
96
+
97
+ 18,779 instruction–response pairs generated programmatically via [Claude API](https://www.anthropic.com/), [Kimi K2.5 on Ollama Cloud](https://ollama.com/), and [GLM-5 on Ollama Cloud](https://ollama.com/), prompted with 8 category-specific TMF expert personas (system prompts + 4–5 batch variants each). Distribution:
98
+
99
+ | # | Category | Pairs | Primary model |
100
+ |---|---|---:|---|
101
+ | 1 | TMF Open API Payloads | 2,962 | GLM-5 |
102
+ | 2 | eTOM Process Decomposition | 1,967 | GLM-5 |
103
+ | 3 | SID Entity Reasoning | 1,963 | Kimi K2.5 |
104
+ | 4 | Inventory Reconciliation | 2,962 | Kimi K2.5 |
105
+ | 5 | OSS/BSS Architecture | 1,893 | Kimi K2.5 |
106
+ | 6 | Fault-to-Inventory Correlation | 1,929 | GLM-5 |
107
+ | 7 | TMF Spec Q&A | 2,875 | Kimi K2.5 (after GLM-5 hit 54% dedup rate) |
108
+ | 8 | TMF Integration Code Generation | 2,228 | GLM-5 |
109
+
110
+ Splits (seed 42): **16,901 train / 939 val / 939 test.**
111
+
112
+ Quality passes applied:
113
+ - MD5-hash deduplication on `instruction` field
114
+ - Category-aware soft validators (TMF API reference presence, SID entity coverage, eTOM term coverage, JSON validity for payload categories)
115
+ - Refusal-pattern scrubbing (`I cannot`, `As an AI`, etc. removed)
116
+ - Type coercion for 297 pairs where source models emitted `output` as nested JSON objects instead of JSON strings
117
+
118
+ ## Evaluation loss trajectory
119
+
120
+ | Epoch | Eval loss |
121
+ |---|---|
122
+ | 2.27 | 0.8545 |
123
+ | 2.37 | 0.8440 |
124
+ | 2.46 | 0.8447 |
125
+ | **2.56** | **0.8438** ← best, used for merge |
126
+ | 2.65 | 0.8479 |
127
+ | 2.75 | 0.8478 |
128
+
129
+ Loss plateaued and began ticking up after epoch 2.56 — classic mild overfitting signal. `load_best_model_at_end=True` ensured the merged model corresponds to the epoch 2.56 region.
130
+
131
+ ## Limitations
132
+
133
+ - **Synthetic data provenance** — training pairs were generated by LLMs (Claude, Kimi K2.5, GLM-5) prompted with TMF expert personas. Content is stylistically consistent with TMF specs but **not validated line-by-line against official TMF Open API documents**. Treat outputs as starting points, not canonical.
134
+ - **Inner-JSON flaws** — ~15% of category-1 pairs had minor inner-JSON issues (unescaped quotes inside payload strings). Not filtered out for training.
135
+ - **Category 8 undertrained** — TMF Code Generation category ended at 74% of its 3,000-pair target due to narrow topic space and dedup loss. Code-generation quality is the weakest axis.
136
+ - **Domain scope** — the model is narrow. General-purpose conversation, math, or code outside TMF integration will be no better (and often worse) than the base.
137
+ - **Standards currency** — trained against TMF Open API versions current as of the prompt design (~v4/v5 dominant). May cite outdated endpoint paths for newer TMF releases.
138
+
139
+ ## Intended use — restrictions
140
+
141
+ Follows the [Llama 3 Community License](https://llama.meta.com/llama3/license/) and [Acceptable Use Policy](https://llama.meta.com/llama3/use-policy/). Intended for:
142
+
143
+ - Domain research, prototyping, and educational use
144
+ - Assistant-style answers to TMF/OSS/BSS engineering questions
145
+ - Starter payload generation (to be reviewed before use in production)
146
+
147
+ Not suitable for:
148
+ - Generating production systems config without human review
149
+ - Compliance-sensitive deployments (TMF spec accuracy is not guaranteed)
150
+ - Any of the prohibited uses in the Llama 3 AUP
151
+
152
+ ## License
153
+
154
+ - Model weights: inherit **Llama 3 Community License** from the base model `meta-llama/Meta-Llama-3-8B`
155
+ - "Built with Meta Llama 3" attribution required (see top of this card)
156
+ - Note that Llama 3 license restricts some commercial uses (700M+ MAU clause) and prohibited use cases — consult the license before redistribution
157
+
158
+ ## Acknowledgements
159
+
160
+ - **Meta AI** — Llama 3 base model
161
+ - **Ali Maatouk** — telecom-pretrained continuation [`AliMaatouk/LLama-3-8B-Tele`](https://huggingface.co/AliMaatouk/LLama-3-8B-Tele)
162
+ - **Anthropic, Moonshot AI, Zhipu AI** — Claude, Kimi K2.5, GLM-5 (used to generate synthetic training data)
163
+ - **TMForum** — the eTOM, SID, and Open API standards this model targets
164
+
165
+ ## Citation
166
+
167
+ ```
168
+ @misc{tapask_telecom_oss_8b_merged_2026,
169
+ title = {Telecom OSS/BSS Domain LLM (Merged, based on LLama-3-8B-Tele)},
170
+ author = {Tapas},
171
+ year = {2026},
172
+ howpublished = {\url{https://huggingface.co/Tapask/telecom-oss-8b-merged}},
173
+ }
174
+ ```