Copy of farbodtavakkoli/OTel-LLM-8.3B-Classification at ee00910
Browse files- .gitattributes +1 -0
- README.md +154 -0
- chat_template.jinja +128 -0
- config.json +141 -0
- model.safetensors +3 -0
- tokenizer.json +3 -0
- tokenizer_config.json +14 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
language:
|
| 4 |
+
- en
|
| 5 |
+
base_model: EssentialAI/rnj-1
|
| 6 |
+
tags:
|
| 7 |
+
- classification
|
| 8 |
+
- telecom
|
| 9 |
+
- 5g
|
| 10 |
+
- root-cause-analysis
|
| 11 |
+
- telelogs
|
| 12 |
+
datasets:
|
| 13 |
+
- netop/TeleLogs
|
| 14 |
+
pipeline_tag: text-classification
|
| 15 |
+
---
|
| 16 |
+
|
| 17 |
+
# OTel-LLM-8.3B-Classification
|
| 18 |
+
|
| 19 |
+
**OTel-LLM-8.3B-Classification** is a telecom-specialized classification model fine-tuned for **5G network root cause analysis (RCA)**, achieving **~99% accuracy** on the [TeleLogs benchmark](https://huggingface.co/datasets/netop/TeleLogs). It is part of the [OTel Family of Models](https://huggingface.co/collections/farbodtavakkoli/otel-llm), an open-source initiative to build industry-standard AI models for the global telecommunications sector.
|
| 20 |
+
|
| 21 |
+
## Model Details
|
| 22 |
+
|
| 23 |
+
| Attribute | Value |
|
| 24 |
+
|---|---|
|
| 25 |
+
| **Base Model** | [EssentialAI/rnj-1](https://huggingface.co/EssentialAI/rnj-1) |
|
| 26 |
+
| **Parameters** | 8.3B |
|
| 27 |
+
| **Training Method** | Full parameter fine-tuning with classification head |
|
| 28 |
+
| **Task** | Multi-class sequence classification (8 root cause classes) |
|
| 29 |
+
| **Language** | English |
|
| 30 |
+
| **License** | Apache 2.0 |
|
| 31 |
+
|
| 32 |
+
## Benchmark Results
|
| 33 |
+
|
| 34 |
+
This model achieves **~99% accuracy** on the TeleLogs test set, higher than the published baselines in the TeleLogs paper shown below, including the reasoning-augmented models. It is reported as an auxiliary experiment in the OTel paper (NeurIPS 2026) and is not part of the paper's 30-model baseline table.
|
| 35 |
+
|
| 36 |
+
| Model | Reasoning | Test pass@1 | Test maj@4 |
|
| 37 |
+
|---|---|---|---|
|
| 38 |
+
| Qwen2.5-32B-Instruct | ❌ | 18.85% | 19.60% |
|
| 39 |
+
| DeepSeek-R1-Distill-Llama-70B | ✅ | 29.42% | 34.84% |
|
| 40 |
+
| QwQ-32B | ✅ | 33.62% | 39.00% |
|
| 41 |
+
| Qwen3-32B | ✅ | 33.77% | 37.04% |
|
| 42 |
+
| Qwen2.5-RCA-1.5B | ✅ | 87.56% | 87.73% |
|
| 43 |
+
| Qwen2.5-RCA-7B | ✅ | 87.01% | 88.89% |
|
| 44 |
+
| Qwen2.5-RCA-32B | ✅ | 95.86% | 96.18% |
|
| 45 |
+
| **OTel-LLM-8.3B-Classification** | ❌ | **~99%** | — |
|
| 46 |
+
|
| 47 |
+
## TeleLogs Dataset
|
| 48 |
+
|
| 49 |
+
[TeleLogs](https://huggingface.co/datasets/netop/TeleLogs) is a synthetic dataset designed to advance research on root cause analysis in 5G networks. It simulates drive-test scenarios involving a user equipment (UE) moving through a region covered by multiple 5G base stations (gNodeBs). Each instance includes a symptom (throughput degradation below 600 Mbps) and one or more root causes from 8 predefined classes:
|
| 50 |
+
|
| 51 |
+
1. Test vehicle speed exceeds 40 km/h, impacting user throughput
|
| 52 |
+
2. Downtilt angle of the serving cell is too large, causing weak coverage at the far end
|
| 53 |
+
3. Serving cell coverage distance exceeds 1 km, resulting in poor RSRP
|
| 54 |
+
4. Non-colocated co-frequency neighboring cells cause severe interference
|
| 55 |
+
5. Neighbor cell and serving cell have the same PCI mod 30, causing reference signal overlap
|
| 56 |
+
6. Frequent handovers degrading user performance
|
| 57 |
+
7. Misconfigured handover thresholds degrading user performance
|
| 58 |
+
8. Average scheduled resource blocks (RBs) of the serving cell are below 160
|
| 59 |
+
|
| 60 |
+
For more details, see the [TeleLogs paper](https://arxiv.org/abs/2507.21974).
|
| 61 |
+
|
| 62 |
+
## Training Details
|
| 63 |
+
|
| 64 |
+
### Approach
|
| 65 |
+
|
| 66 |
+
The model was trained as a **sequence classification** model. The classification head consists of a **Dropout(0.1) layer followed by a Linear projection** from the model's hidden dimension to the 8 root cause classes.
|
| 67 |
+
|
| 68 |
+
### Hyperparameters
|
| 69 |
+
|
| 70 |
+
| Parameter | Value |
|
| 71 |
+
|---|---|
|
| 72 |
+
| **Learning Rate** | 7e-6 |
|
| 73 |
+
| **LR Scheduler** | Cosine |
|
| 74 |
+
| **Warmup Steps** | 150 |
|
| 75 |
+
| **Batch Size (per device)** | 4 |
|
| 76 |
+
| **Gradient Accumulation Steps** | 2 |
|
| 77 |
+
| **Effective Batch Size** | 64 (4 × 2 × 8 GPUs) |
|
| 78 |
+
| **Epochs** | 25 |
|
| 79 |
+
| **Weight Decay** | 0.01 |
|
| 80 |
+
| **Label Smoothing** | 0.1 |
|
| 81 |
+
| **Max Gradient Norm** | 0.5 |
|
| 82 |
+
| **Max Sequence Length** | 5000 tokens |
|
| 83 |
+
| **Precision** | BF16 |
|
| 84 |
+
| **Attention** | Flash Attention 2 |
|
| 85 |
+
| **Distributed Training** | FSDP |
|
| 86 |
+
| **Gradient Checkpointing** | Enabled |
|
| 87 |
+
|
| 88 |
+
### Classification Head
|
| 89 |
+
|
| 90 |
+
```
|
| 91 |
+
Dropout(0.1) → Linear(hidden_size, 8, bias=False)
|
| 92 |
+
```
|
| 93 |
+
|
| 94 |
+
Weight initialization: Normal distribution with mean=0.0, std=0.01.
|
| 95 |
+
|
| 96 |
+
## Intended Use
|
| 97 |
+
|
| 98 |
+
This model is optimized for:
|
| 99 |
+
|
| 100 |
+
- **5G network root cause analysis** — classifying network log data into specific fault categories
|
| 101 |
+
- **Telecom troubleshooting** — automated diagnosis of throughput degradation causes from drive-test measurements
|
| 102 |
+
|
| 103 |
+
## Related Models
|
| 104 |
+
|
| 105 |
+
### Language Models
|
| 106 |
+
- [OTel LLM Collection](https://huggingface.co/collections/farbodtavakkoli/otel-llm)
|
| 107 |
+
|
| 108 |
+
### Embedding Models
|
| 109 |
+
- [OTel Embedding Collection](https://huggingface.co/collections/farbodtavakkoli/otel-embedding)
|
| 110 |
+
|
| 111 |
+
### Reranker Models
|
| 112 |
+
- [OTel Reranker Collection](https://huggingface.co/collections/farbodtavakkoli/otel-reranker)
|
| 113 |
+
|
| 114 |
+
## Related Datasets
|
| 115 |
+
|
| 116 |
+
- [TeleLogs](https://huggingface.co/datasets/netop/TeleLogs) — 5G RCA benchmark
|
| 117 |
+
- [OTel-Embedding](https://huggingface.co/datasets/farbodtavakkoli/OTel-Embedding)
|
| 118 |
+
- [OTel-Safety](https://huggingface.co/datasets/farbodtavakkoli/OTel-Safety)
|
| 119 |
+
- [OTel-LLM](https://huggingface.co/datasets/farbodtavakkoli/OTel-LLM)
|
| 120 |
+
- [OTel-Reranker](https://huggingface.co/datasets/farbodtavakkoli/OTel-Reranker)
|
| 121 |
+
|
| 122 |
+
## Training Infrastructure
|
| 123 |
+
|
| 124 |
+
- **Framework**: ScalarLM (GPU-agnostic)
|
| 125 |
+
- **Compute**: TensorWave with AMD GPUs and Azure with NVIDIA GPUs
|
| 126 |
+
- **Training Code**: [github.com/farbodtavakkoli/OTel](https://github.com/farbodtavakkoli/OTel)
|
| 127 |
+
|
| 128 |
+
## Citation
|
| 129 |
+
|
| 130 |
+
```bibtex
|
| 131 |
+
@inproceedings{tavakkoli2026otel,
|
| 132 |
+
title = {OTel: Open Telco AI Datasets, Benchmarks, and Models},
|
| 133 |
+
author = {Tavakkoli, Farbod and Diamos, Gregory and Church, Kenneth and Kanter, David and Austin, Mark and Karim, Imtiaz and Rahman, Mirza Masfiqur and Debbah, Merouane Abdelkader and Nezami, Zeinab and Maatouk, Ali and Tassiulas, Leandros and Ying, Rex and Sorros, Nick and Powell, Louis and Vasiloglou, Nikolaos and Vaswani, Ashish and Singla, Somanshu and Chaluvaraju, Adarsh},
|
| 134 |
+
booktitle = {Advances in Neural Information Processing Systems (NeurIPS), Evaluations and Datasets Track},
|
| 135 |
+
year = {2026},
|
| 136 |
+
url = {https://github.com/farbodtavakkoli/OTel}
|
| 137 |
+
}
|
| 138 |
+
```
|
| 139 |
+
|
| 140 |
+
If you use the TeleLogs dataset, please also cite:
|
| 141 |
+
|
| 142 |
+
```bibtex
|
| 143 |
+
@article{sana2025reasoning,
|
| 144 |
+
title={{Reasoning Language Models for Root Cause Analysis in 5G Wireless Networks}},
|
| 145 |
+
author={Mohamed Sana and Nicola Piovesan and Antonio De Domenico and Yibin Kang and Haozhe Zhang and Merouane Debbah and Fadhel Ayed},
|
| 146 |
+
year={2025},
|
| 147 |
+
eprint={arXiv:2507.21974},
|
| 148 |
+
url={https://arxiv.org/abs/2507.21974}
|
| 149 |
+
}
|
| 150 |
+
```
|
| 151 |
+
|
| 152 |
+
## Contact
|
| 153 |
+
|
| 154 |
+
If you have any technical questions, please feel free to reach out to [farbod.tavakkoli@att.com](mailto:farbod.tavakkoli@att.com) or [farbodtavakoli@gmail.com](mailto:farbodtavakoli@gmail.com)
|
chat_template.jinja
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) -%}
|
| 2 |
+
{%- set emit = namespace(started=false) -%}
|
| 3 |
+
|
| 4 |
+
{# ---------- Build base system message (always emitted) ---------- #}
|
| 5 |
+
{%- set base_system = 'You are rnj-1, a foundation model trained by Essential AI.\n' -%}
|
| 6 |
+
|
| 7 |
+
{# ---------- Default system prompt if user system is absent ---------- #}
|
| 8 |
+
{%- set default_system = 'You are a helpful assistant.' -%}
|
| 9 |
+
|
| 10 |
+
{# Detect whether the first message is a user-provided system message #}
|
| 11 |
+
{%- set has_user_system = (messages
|
| 12 |
+
and messages[0].role == 'system'
|
| 13 |
+
and (messages[0].content is string)) -%}
|
| 14 |
+
|
| 15 |
+
{# The system instruction that should apply (user system wins; else default) #}
|
| 16 |
+
{%- set effective_system = (has_user_system and messages[0].content) or default_system -%}
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
{# ---------- Optional tools preface as a synthetic system message ---------- #}
|
| 20 |
+
{%- if tools %}
|
| 21 |
+
{%- set sys_preamble -%}
|
| 22 |
+
# Tools
|
| 23 |
+
|
| 24 |
+
You may call one or more functions to assist with the user query.
|
| 25 |
+
|
| 26 |
+
You are provided with function signatures within <tools></tools> XML tags:
|
| 27 |
+
<tools>
|
| 28 |
+
{%- for tool in tools %}
|
| 29 |
+
{{ "\n" ~ (tool | tojson) }}
|
| 30 |
+
{% endfor %}
|
| 31 |
+
</tools>
|
| 32 |
+
|
| 33 |
+
For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:
|
| 34 |
+
<tool_call>
|
| 35 |
+
{"name": <function-name>, "arguments": <args-json-object>}
|
| 36 |
+
</tool_call>
|
| 37 |
+
{%- endset -%}
|
| 38 |
+
|
| 39 |
+
{# Always include effective_system; user system prevails over default #}
|
| 40 |
+
{%- set sys_content = effective_system ~ "\n\n" ~ sys_preamble -%}
|
| 41 |
+
|
| 42 |
+
{%- set content = '<|start_header_id|>system<|end_header_id|>\n'
|
| 43 |
+
~ base_system ~ '\n' ~ sys_content ~ '<|eot_id|>' -%}
|
| 44 |
+
{%- if not emit.started -%}{%- set content = bos_token ~ content -%}{%- set emit.started = true -%}{%- endif -%}
|
| 45 |
+
{{- content -}}
|
| 46 |
+
{%- else %}
|
| 47 |
+
{# No tools: always emit base_system + effective_system #}
|
| 48 |
+
{%- set content = '<|start_header_id|>system<|end_header_id|>\n'
|
| 49 |
+
~ base_system ~ '\n' ~ effective_system ~ '<|eot_id|>' -%}
|
| 50 |
+
{%- if not emit.started -%}{%- set content = bos_token ~ content -%}{%- set emit.started = true -%}{%- endif -%}
|
| 51 |
+
{{- content -}}
|
| 52 |
+
{%- endif -%}
|
| 53 |
+
|
| 54 |
+
{# ---------- Locate last user query for multi-step tool behavior ---------- #}
|
| 55 |
+
{%- for message in messages[::-1] %}
|
| 56 |
+
{%- set index = (messages|length - 1) - loop.index0 -%}
|
| 57 |
+
{%- if ns.multi_step_tool
|
| 58 |
+
and message.role == "user"
|
| 59 |
+
and message.content is string
|
| 60 |
+
and not (message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) -%}
|
| 61 |
+
{%- set ns.multi_step_tool = false -%}
|
| 62 |
+
{%- set ns.last_query_index = index -%}
|
| 63 |
+
{%- endif -%}
|
| 64 |
+
{%- endfor -%}
|
| 65 |
+
|
| 66 |
+
{# ---------- Walk all messages and emit in Llama-3 format ---------- #}
|
| 67 |
+
{%- for message in messages %}
|
| 68 |
+
{%- if message.content is string -%}
|
| 69 |
+
{%- set content = message.content -%}
|
| 70 |
+
{%- else -%}
|
| 71 |
+
{%- set content = '' -%}
|
| 72 |
+
{%- endif -%}
|
| 73 |
+
|
| 74 |
+
{# Skip the FIRST system message if it existed, since we already embedded it in effective_system #}
|
| 75 |
+
{%- if loop.first and message.role == "system" -%}
|
| 76 |
+
{# no-op #}
|
| 77 |
+
|
| 78 |
+
{%- elif (message.role == "user") or (message.role == "system") -%}
|
| 79 |
+
{%- set block = '<|start_header_id|>' ~ message.role ~ '<|end_header_id|>\n' ~ content ~ '<|eot_id|>' -%}
|
| 80 |
+
{%- if not emit.started -%}{%- set block = bos_token ~ block -%}{%- set emit.started = true -%}{%- endif -%}
|
| 81 |
+
{{- block -}}
|
| 82 |
+
|
| 83 |
+
{%- elif message.role == "assistant" -%}
|
| 84 |
+
{%- set body = content -%}
|
| 85 |
+
{%- set header = '<|start_header_id|>assistant<|end_header_id|>\n' -%}
|
| 86 |
+
{%- if not emit.started -%}{{ bos_token }}{%- set emit.started = true -%}{%- endif -%}
|
| 87 |
+
{{- header -}}
|
| 88 |
+
{% generation %}
|
| 89 |
+
{{- body -}}
|
| 90 |
+
{%- if message.tool_calls -%}
|
| 91 |
+
{%- for tool_call in message.tool_calls -%}
|
| 92 |
+
{%- if tool_call.function -%}{%- set tc = tool_call.function -%}{%- else -%}{%- set tc = tool_call -%}{%- endif -%}
|
| 93 |
+
{%- set args_json = (tc.arguments if (tc.arguments is string) else (tc.arguments | tojson)) -%}
|
| 94 |
+
{%- if loop.first -%}
|
| 95 |
+
{{- '<tool_call>\n{"name": "' ~ tc.name ~ '", "arguments": ' ~ args_json ~ '}\n</tool_call>' -}}
|
| 96 |
+
{%- else -%}
|
| 97 |
+
{{- '\n<tool_call>\n{"name": "' ~ tc.name ~ '", "arguments": ' ~ args_json ~ '}\n</tool_call>' -}}
|
| 98 |
+
{%- endif -%}
|
| 99 |
+
{%- endfor -%}
|
| 100 |
+
{%- endif -%}
|
| 101 |
+
{{- '<|eot_id|>' -}}{%- endgeneration -%}
|
| 102 |
+
|
| 103 |
+
{%- elif message.role == "tool" -%}
|
| 104 |
+
{%- set open_user = (loop.first or (loop.index0 > 0 and messages[loop.index0 - 1].role != "tool")) -%}
|
| 105 |
+
{%- set close_user = (loop.last or (loop.index0 < messages|length - 1 and messages[loop.index0 + 1].role != "tool")) -%}
|
| 106 |
+
|
| 107 |
+
{%- if open_user -%}
|
| 108 |
+
{%- set header = '<|start_header_id|>user<|end_header_id|>\n' -%}
|
| 109 |
+
{%- if not emit.started -%}{%- set header = bos_token ~ header -%}{%- set emit.started = true -%}{%- endif -%}
|
| 110 |
+
{{- header -}}
|
| 111 |
+
{%- endif -%}
|
| 112 |
+
{%- if open_user -%}
|
| 113 |
+
{{- '<tool_response>\n' -}}
|
| 114 |
+
{%- else -%}
|
| 115 |
+
{{- '\n<tool_response>\n' -}}
|
| 116 |
+
{%- endif -%}
|
| 117 |
+
{{- content -}}
|
| 118 |
+
{{- '\n</tool_response>' -}}
|
| 119 |
+
|
| 120 |
+
{%- if close_user -%}
|
| 121 |
+
{{- '<|eot_id|>' -}}
|
| 122 |
+
{%- endif -%}
|
| 123 |
+
{%- endif -%}
|
| 124 |
+
{%- endfor -%}
|
| 125 |
+
|
| 126 |
+
{%- if add_generation_prompt -%}
|
| 127 |
+
{{- '<|start_header_id|>assistant<|end_header_id|>\n' -}}
|
| 128 |
+
{%- endif -%}
|
config.json
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_sliding_window_pattern": 1,
|
| 3 |
+
"architectures": [
|
| 4 |
+
"Gemma3TextForSequenceClassification"
|
| 5 |
+
],
|
| 6 |
+
"attention_bias": false,
|
| 7 |
+
"attention_dropout": 0.0,
|
| 8 |
+
"attn_logit_softcapping": null,
|
| 9 |
+
"bos_token_id": 2,
|
| 10 |
+
"cache_implementation": "hybrid",
|
| 11 |
+
"dtype": "bfloat16",
|
| 12 |
+
"eos_token_id": 1,
|
| 13 |
+
"final_logit_softcapping": 30.0,
|
| 14 |
+
"head_dim": 128,
|
| 15 |
+
"hidden_act": "gelu_pytorch_tanh",
|
| 16 |
+
"hidden_activation": "gelu_pytorch_tanh",
|
| 17 |
+
"hidden_size": 4096,
|
| 18 |
+
"id2label": {
|
| 19 |
+
"0": "C1",
|
| 20 |
+
"1": "C2",
|
| 21 |
+
"2": "C3",
|
| 22 |
+
"3": "C4",
|
| 23 |
+
"4": "C5",
|
| 24 |
+
"5": "C6",
|
| 25 |
+
"6": "C7",
|
| 26 |
+
"7": "C8"
|
| 27 |
+
},
|
| 28 |
+
"initializer_range": 0.02,
|
| 29 |
+
"intermediate_size": 16384,
|
| 30 |
+
"label2id": {
|
| 31 |
+
"C1": 0,
|
| 32 |
+
"C2": 1,
|
| 33 |
+
"C3": 2,
|
| 34 |
+
"C4": 3,
|
| 35 |
+
"C5": 4,
|
| 36 |
+
"C6": 5,
|
| 37 |
+
"C7": 6,
|
| 38 |
+
"C8": 7
|
| 39 |
+
},
|
| 40 |
+
"layer_type": [
|
| 41 |
+
"full_attention",
|
| 42 |
+
"full_attention",
|
| 43 |
+
"full_attention",
|
| 44 |
+
"full_attention",
|
| 45 |
+
"full_attention",
|
| 46 |
+
"full_attention",
|
| 47 |
+
"full_attention",
|
| 48 |
+
"full_attention",
|
| 49 |
+
"full_attention",
|
| 50 |
+
"full_attention",
|
| 51 |
+
"full_attention",
|
| 52 |
+
"full_attention",
|
| 53 |
+
"full_attention",
|
| 54 |
+
"full_attention",
|
| 55 |
+
"full_attention",
|
| 56 |
+
"full_attention",
|
| 57 |
+
"full_attention",
|
| 58 |
+
"full_attention",
|
| 59 |
+
"full_attention",
|
| 60 |
+
"full_attention",
|
| 61 |
+
"full_attention",
|
| 62 |
+
"full_attention",
|
| 63 |
+
"full_attention",
|
| 64 |
+
"full_attention",
|
| 65 |
+
"full_attention",
|
| 66 |
+
"full_attention",
|
| 67 |
+
"full_attention",
|
| 68 |
+
"full_attention",
|
| 69 |
+
"full_attention",
|
| 70 |
+
"full_attention",
|
| 71 |
+
"full_attention",
|
| 72 |
+
"full_attention"
|
| 73 |
+
],
|
| 74 |
+
"layer_types": [
|
| 75 |
+
"full_attention",
|
| 76 |
+
"full_attention",
|
| 77 |
+
"full_attention",
|
| 78 |
+
"full_attention",
|
| 79 |
+
"full_attention",
|
| 80 |
+
"full_attention",
|
| 81 |
+
"full_attention",
|
| 82 |
+
"full_attention",
|
| 83 |
+
"full_attention",
|
| 84 |
+
"full_attention",
|
| 85 |
+
"full_attention",
|
| 86 |
+
"full_attention",
|
| 87 |
+
"full_attention",
|
| 88 |
+
"full_attention",
|
| 89 |
+
"full_attention",
|
| 90 |
+
"full_attention",
|
| 91 |
+
"full_attention",
|
| 92 |
+
"full_attention",
|
| 93 |
+
"full_attention",
|
| 94 |
+
"full_attention",
|
| 95 |
+
"full_attention",
|
| 96 |
+
"full_attention",
|
| 97 |
+
"full_attention",
|
| 98 |
+
"full_attention",
|
| 99 |
+
"full_attention",
|
| 100 |
+
"full_attention",
|
| 101 |
+
"full_attention",
|
| 102 |
+
"full_attention",
|
| 103 |
+
"full_attention",
|
| 104 |
+
"full_attention",
|
| 105 |
+
"full_attention",
|
| 106 |
+
"full_attention"
|
| 107 |
+
],
|
| 108 |
+
"max_position_embeddings": 32768,
|
| 109 |
+
"model_type": "gemma3_text",
|
| 110 |
+
"num_attention_heads": 32,
|
| 111 |
+
"num_hidden_layers": 32,
|
| 112 |
+
"num_key_value_heads": 8,
|
| 113 |
+
"pad_token_id": 128001,
|
| 114 |
+
"query_pre_attn_scalar": 128,
|
| 115 |
+
"rms_norm_eps": 1e-06,
|
| 116 |
+
"rope_parameters": {
|
| 117 |
+
"full_attention": {
|
| 118 |
+
"attn_factor": 1.0,
|
| 119 |
+
"beta_fast": 64.0,
|
| 120 |
+
"beta_slow": 1.0,
|
| 121 |
+
"extrapolation_factor": 1.0,
|
| 122 |
+
"factor": 4.0,
|
| 123 |
+
"original_max_position_embeddings": 8192,
|
| 124 |
+
"rope_theta": 10000,
|
| 125 |
+
"rope_type": "yarn"
|
| 126 |
+
},
|
| 127 |
+
"rope_theta": null,
|
| 128 |
+
"rope_type": "default",
|
| 129 |
+
"sliding_attention": {
|
| 130 |
+
"rope_theta": 10000,
|
| 131 |
+
"rope_type": "default"
|
| 132 |
+
}
|
| 133 |
+
},
|
| 134 |
+
"sliding_window": 32768,
|
| 135 |
+
"sliding_window_pattern": 1,
|
| 136 |
+
"tie_word_embeddings": true,
|
| 137 |
+
"transformers_version": "5.2.0",
|
| 138 |
+
"use_bidirectional_attention": false,
|
| 139 |
+
"use_cache": false,
|
| 140 |
+
"vocab_size": 128256
|
| 141 |
+
}
|
model.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:61272c9f48ee08baa3f1761bf3403b2535eafbda150ca41dfb0619ab7b4be3ed
|
| 3 |
+
size 16621117448
|
tokenizer.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:96a2db531b75969ce3aeaaf126eb7957f7e07a28c7e770705787ef035f19d9da
|
| 3 |
+
size 17209795
|
tokenizer_config.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"backend": "tokenizers",
|
| 3 |
+
"bos_token": "<|begin_of_text|>",
|
| 4 |
+
"clean_up_tokenization_spaces": true,
|
| 5 |
+
"eos_token": "<|end_of_text|>",
|
| 6 |
+
"is_local": false,
|
| 7 |
+
"model_input_names": [
|
| 8 |
+
"input_ids",
|
| 9 |
+
"attention_mask"
|
| 10 |
+
],
|
| 11 |
+
"model_max_length": 1000000000000000019884624838656,
|
| 12 |
+
"pad_token": "<|end_of_text|>",
|
| 13 |
+
"tokenizer_class": "TokenizersBackend"
|
| 14 |
+
}
|