GotoAI-Inc commited on
Commit
3a1734b
·
verified ·
1 Parent(s): 9097f9e

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -33,3 +33,6 @@ 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
+ accuracy_plot.png filter=lfs diff=lfs merge=lfs -text
37
+ agentic_coding_benchmarks.png filter=lfs diff=lfs merge=lfs -text
38
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
LICENSE ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+
3
+ OpenMDW License Agreement, version 1.1 (OpenMDW-1.1)
4
+
5
+ By exercising rights granted to you under this agreement, you accept and agree
6
+ to its terms.
7
+
8
+ As used in this agreement, "Model Materials" means the materials provided to
9
+ you under this agreement, consisting of: (1) one or more machine learning
10
+ models (including architecture and parameters); and (2) all related artifacts
11
+ (including associated data, documentation and software) that are provided to
12
+ you hereunder.
13
+
14
+ Subject to your compliance with this agreement, permission is hereby granted,
15
+ free of charge, to deal in the Model Materials without restriction, including
16
+ under all copyright, patent, database, and trade secret rights included or
17
+ embodied therein.
18
+
19
+ If you distribute any portion of the Model Materials, you shall retain in your
20
+ distribution (1) a copy of this agreement, and (2) all copyright notices and
21
+ other notices of origin included in the Model Materials that are applicable to
22
+ your distribution.
23
+
24
+ If you file, maintain, or voluntarily participate in a lawsuit against any
25
+ person or entity asserting that the Model Materials directly or indirectly
26
+ infringe any patent or copyright, then all rights and grants made to you
27
+ hereunder are terminated, unless that lawsuit was in response to a
28
+ corresponding lawsuit first brought against you.
29
+
30
+ This agreement does not impose any restrictions or obligations with respect to
31
+ any use, modification, or sharing of any outputs generated by using the Model
32
+ Materials.
33
+
34
+ THE MODEL MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
35
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
36
+ FITNESS FOR A PARTICULAR PURPOSE, TITLE, NONINFRINGEMENT, ACCURACY, OR THE
37
+ ABSENCE OF LATENT OR OTHER DEFECTS OR ERRORS, WHETHER OR NOT DISCOVERABLE, ALL
38
+ TO THE GREATEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW.
39
+
40
+ YOU ARE SOLELY RESPONSIBLE FOR (1) CLEARING RIGHTS OF OTHER PERSONS THAT MAY
41
+ APPLY TO THE MODEL MATERIALS OR ANY USE THEREOF, INCLUDING WITHOUT LIMITATION
42
+ ANY PERSON'S COPYRIGHTS OR OTHER RIGHTS INCLUDED OR EMBODIED IN THE MODEL
43
+ MATERIALS; (2) OBTAINING ANY NECESSARY CONSENTS, PERMISSIONS OR OTHER RIGHTS
44
+ REQUIRED FOR ANY USE OF THE MODEL MATERIALS; OR (3) PERFORMING ANY DUE
45
+ DILIGENCE OR UNDERTAKING ANY OTHER INVESTIGATIONS INTO THE MODEL MATERIALS OR
46
+ ANYTHING INCORPORATED OR EMBODIED THEREIN.
47
+
48
+ IN NO EVENT SHALL THE PROVIDERS OF THE MODEL MATERIALS BE LIABLE FOR ANY CLAIM,
49
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
50
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MODEL MATERIALS, THE
51
+ USE THEREOF OR OTHER DEALINGS THEREIN.
README.md ADDED
@@ -0,0 +1,222 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: other
3
+ license_name: openmdw-1.1
4
+ license_link: https://openmdw.ai/license/1-1/
5
+ base_model: nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16
6
+ base_model_relation: quantized
7
+ pipeline_tag: text-generation
8
+ library_name: transformers
9
+ language:
10
+ - en
11
+ - es
12
+ - fr
13
+ - de
14
+ - it
15
+ - ja
16
+ tags:
17
+ - compressed-tensors
18
+ - w8a16
19
+ - int8
20
+ - vllm
21
+ - nemotron-3.5
22
+ - mamba
23
+ - moe
24
+ ---
25
+
26
+ # NVIDIA-Nemotron-3.5-Lightning-30B-A3B-W8A16
27
+
28
+ Int8 weight-only quantization of
29
+ [nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16](https://huggingface.co/nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16),
30
+ in compressed-tensors format for vLLM. **35.93 GB**, down from 65.83 GB — a 45% reduction.
31
+ Its KV cache is unusually cheap, so a 48 GB card serves it at the full native 256k context.
32
+
33
+ This is the fidelity-first build. Int8 round-to-nearest stays far closer to the bfloat16
34
+ weights than int4 does, at ~1.8x the footprint of the
35
+ [int4 W4A16 sibling](https://huggingface.co/GotoAI-Inc/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-W4A16)
36
+ (20.49 GB). If you are targeting a 24 or 32 GB card, use that one; use this one when you
37
+ have the VRAM and want the least quality loss quantization can give without calibration.
38
+ The gap matters more than usual here — see [Evaluation](#evaluation).
39
+
40
+ Unofficial and unaffiliated with NVIDIA. All model capabilities, evaluations and
41
+ limitations belong to the original model card — see the base model for those.
42
+
43
+ NVIDIA's own optimized deployment build is
44
+ [NVFP4](https://huggingface.co/nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-NVFP4), which
45
+ needs a **Blackwell** GPU. This repository is for everything else: int8 W8A16 runs on
46
+ Marlin kernels from compute capability 7.5 up, so Ampere, Ada and Hopper cards get a
47
+ weight-quantized build too. The base model card lists "building quantized variants" as one
48
+ of the BF16 repo's intended uses; this is that.
49
+
50
+ ## What was changed
51
+
52
+ Weights were quantized from bfloat16 to **int8, group size 64, symmetric, weight-only**
53
+ (activations stay 16-bit) using `llmcompressor.model_free_ptq`. No calibration data was
54
+ used and the model was never loaded — the quantizer operates directly on the safetensors.
55
+ Architecture, tokenizer and chat template are the vendor's, unmodified.
56
+
57
+ 6,004 Linear modules were converted, covering 88.6% of the output's bytes:
58
+
59
+ | component | precision | source | quantized |
60
+ |---|---|---|---|
61
+ | routed experts (128 per MoE layer × 23 layers) | int8 g64 | 58.75 GB | **30.29 GB** |
62
+ | Mamba in/out projections + attention (70 modules) | int8 g64 | 2.06 GB | 1.06 GB |
63
+ | shared expert (46 modules) | int8 g64 | 0.92 GB | 0.47 GB |
64
+ | MTP head (`mtp.*`) | bfloat16 | 2.67 GB | 2.67 GB |
65
+ | `backbone.embeddings` + `lm_head` (untied) | bfloat16 | 1.41 GB | 1.41 GB |
66
+ | MoE routers (`.gate`) | bfloat16 / fp32 | 0.02 GB | 0.02 GB |
67
+ | Mamba `conv1d`, norms, SSM params | bfloat16 | 0.001 GB | 0.001 GB |
68
+ | **total** | | **65.83 GB** | **35.93 GB** |
69
+
70
+ Of the quantized share, 30.86 GB is packed int8 and 0.96 GB is bf16 group scales. The
71
+ scales are the same count as in the W4A16 sibling — both builds use group size 64 and
72
+ convert the same 6,004 modules — so the int8 payload is almost exactly twice the int4 one
73
+ and everything else is unchanged.
74
+
75
+ **Group size 64, not the usual 128.** The expert `down_proj` takes an 1856-wide input, and
76
+ 128 does not divide it. At the default group size 2,944 expert tensors cannot be
77
+ quantized; at 64 nothing is misaligned.
78
+
79
+ Left at bfloat16:
80
+
81
+ - **`mtp.*`** — the multi-token-prediction head (one `attention` + one `moe` block,
82
+ `num_nextn_predict_layers: 1`). vLLM loads it through the speculative-decoding path
83
+ rather than the main stack. At 2.67 GB it is the largest 16-bit component here, so
84
+ there is real headroom for anyone who measures that vLLM accepts a quantized one.
85
+ - **`.gate`** — the 23 MoE routers plus their fp32 `e_score_correction_bias`. Routing
86
+ decides which experts run at all; 0.02 GB is not worth the risk.
87
+ - **`backbone.embeddings` and `lm_head`** — precision-sensitive, and untied in this model.
88
+ - **`conv1d`** — Mamba causal-convolution kernels, shape `(6144, 1, 4)`. Not Linear
89
+ layers, and quantizers reject them outright.
90
+ - **`backbone.norm_f`** and the Mamba `A_log` / `dt_bias` / `D` state-space parameters —
91
+ 1-D, never quantizable.
92
+
93
+ The architecture is a 52-block hybrid: **23 Mamba-2 blocks, 23 MoE blocks and 6 attention
94
+ blocks**. Only 6 blocks carry a KV cache, which is what makes long context cheap here (see
95
+ below). Of ~30B total parameters, ~3B are active per token — 6 of 128 routed experts plus
96
+ one shared expert.
97
+
98
+ ### Checkpoint layout
99
+
100
+ Experts ship as per-expert 2-D weights in the source already
101
+ (`…mixer.experts.{id}.up_proj`, `down_proj`), so no fused-3-D splitting was involved and
102
+ the naming carries straight through as `…experts.{id}.up_proj.weight_packed`. vLLM's
103
+ NemotronH loader builds its expert mapping with `ckpt_gate_proj_name="up_proj"` and
104
+ `ckpt_down_proj_name="down_proj"`, matching this layout.
105
+
106
+ ## Usage
107
+
108
+ Requires **vLLM >= 0.25.1**, where `NemotronHForCausalLM` and the `nemotron_v3` reasoning
109
+ parser are both present. No nightly build needed.
110
+
111
+ ```bash
112
+ vllm serve GotoAI-Inc/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-W8A16 \
113
+ --max-model-len 262144 \
114
+ --mamba-backend flashinfer \
115
+ --reasoning-parser nemotron_v3 \
116
+ --enable-auto-tool-choice --tool-call-parser qwen3_coder
117
+ ```
118
+
119
+ Do not pass `--quantization`; compressed-tensors is detected from `config.json`. The int8
120
+ W8A16 scheme uses Marlin kernels and runs on compute capability 7.5 and above.
121
+
122
+ - **`--tool-call-parser qwen3_coder`** is what the base model card specifies — Nemotron 3.5
123
+ emits the same XML tool-call framing as Qwen3-Coder. `qwen3_xml` is an alias for the same
124
+ parser class in current vLLM.
125
+ - **`--reasoning-parser nemotron_v3`** splits thinking into `reasoning_content`.
126
+ - **`--mamba-ssm-cache-dtype float16`** halves the Mamba state cache if you are tight on
127
+ memory; the base card pairs it with
128
+ `--enable-mamba-cache-stochastic-rounding --mamba-cache-philox-rounds 5`.
129
+ - **Speculative decoding**: the base card uses a separate DSpark checkpoint. This build
130
+ also still carries the vendor's MTP head, which vLLM can route through its
131
+ `nemotron_h_mtp` path — `--speculative-config '{"method": "mtp", "num_speculative_tokens": 1}'`.
132
+ Neither path is smoke-tested here.
133
+
134
+ ### Fitting the card
135
+
136
+ Only **6 of 52 blocks use attention**, with 2 KV heads at `head_dim` 128 — about
137
+ **6 KB/token**, an order of magnitude cheaper than a conventional 30B. The 23 Mamba blocks
138
+ hold a fixed-size recurrent state instead, roughly **48 MB per concurrent sequence** at the
139
+ default fp32 SSM cache (half that at float16), independent of sequence length.
140
+
141
+ | context | KV cache | + weights |
142
+ |---|---|---|
143
+ | 32k | ~0.2 GB | ~36.1 GB |
144
+ | 128k | ~0.8 GB | ~36.7 GB |
145
+ | 256k (native max) | ~1.6 GB | ~37.5 GB |
146
+
147
+ The weights, not the context, are the binding constraint on this build: going from 32k to
148
+ the full 256k costs only ~1.4 GB. A 48 GB card is comfortable at the native maximum with
149
+ room for concurrency. A 40 GB card fits but with little slack once activations and CUDA
150
+ graphs are counted — lower `--max-model-len` before lowering
151
+ `--gpu-memory-utilization`. On 32 GB or less, use the W4A16 sibling instead.
152
+
153
+ `max_position_embeddings` is 262144 — the base card's validated 1M-token configurations use
154
+ `VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 --max-model-len 1048576` on 8×H100 or GB200, which is not
155
+ what this single-card build is for. This is arithmetic from `config.json`, not a measured
156
+ deployment.
157
+
158
+ ## Reproducing this checkpoint
159
+
160
+ Built with [llm-quantizer](https://github.com/gotoai/llm-quantizer):
161
+
162
+ ```bash
163
+ ./llmq.py run --profile nemotron-3.5-lightning-30b-a3b --scheme W8A16
164
+ ```
165
+
166
+ which is equivalent to:
167
+
168
+ ```python
169
+ # llmcompressor==0.13.1a20260814, compressed-tensors==0.18.1a20260818,
170
+ # transformers==5.15.1, torch==2.13.0
171
+ from llmcompressor import model_free_ptq
172
+
173
+ model_free_ptq(
174
+ model_stub="NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16",
175
+ save_directory="NVIDIA-Nemotron-3.5-Lightning-30B-A3B-W8A16",
176
+ scheme="W8A16",
177
+ group_size=64,
178
+ ignore=["re:.*\\.gate$", "re:.*\\.conv1d$", "re:.*mtp.*",
179
+ "lm_head", "re:.*\\.embeddings$", "re:.*\\.norm_f$"],
180
+ device="cuda:0",
181
+ )
182
+ ```
183
+
184
+ The source ships as 14 shards of ~5 GB and a job holds one shard at a time, so no
185
+ re-sharding is needed and the build peaks at a few GB of VRAM — it took about a minute on
186
+ one consumer GPU.
187
+
188
+ Two of those ignore patterns are easy to miss. `re:.*\.embeddings$` is needed because this
189
+ model calls its embedding table `backbone.embeddings`, not `embed_tokens`. And
190
+ `re:.*\.norm_f$` is needed because compressed-tensors auto-skips norms with a literal
191
+ `module_name.endswith("norm")` test, which the final norm — `backbone.norm_f`, 1-D
192
+ `(2688,)` — misses; without it the run aborts with `expected 2D linear weight`.
193
+
194
+ ## Evaluation
195
+
196
+ **No benchmarks have been run.** Data-free round-to-nearest quantization degrades quality
197
+ more than a calibrated (GPTQ/AWQ) or QAT build; how much, for your task, is unmeasured
198
+ here. Int8 degrades far less than int4 — that is the reason this build exists — but "less"
199
+ is not "none". Treat the published Nemotron 3.5 Lightning numbers as describing the
200
+ bfloat16 model, not this one.
201
+
202
+ Two properties of this architecture are why the int8 build is worth its extra 15 GB. The
203
+ routers stay 16-bit, so expert *selection* is identical in both builds, but all 2,944
204
+ routed experts are quantized without calibration and rarely-activated experts get no more
205
+ attention than hot ones — with only 6 of 128 experts active per token, a cold expert's
206
+ error is never averaged away. And Mamba blocks carry state across the whole sequence, so
207
+ projection error has a longer path to accumulate than in a pure attention stack. Both are
208
+ error-accumulation stories, and int8's smaller per-weight error compounds less. Long-context
209
+ behaviour on your own traffic is still the thing worth checking.
210
+
211
+ ## License
212
+
213
+ **OpenMDW License Agreement, version 1.1**, inherited from the base model — the vendor's
214
+ `LICENSE` is included unmodified. OpenMDW is permissive: it grants use without restriction
215
+ and places no conditions on model outputs. It does require that any distribution retain a
216
+ copy of the agreement and all notices of origin, so NVIDIA's `LICENSE` and its
217
+ accompanying `safety.md`, `bias.md`, `privacy.md` and `explainability.md` are carried
218
+ through here. It also terminates the grant for anyone who brings patent or copyright
219
+ litigation over the model. Read it before redistributing a derivative.
220
+
221
+ "Nemotron" and "NVIDIA" are NVIDIA's marks; this repository is not endorsed by or
222
+ affiliated with NVIDIA.
accuracy_plot.png ADDED

Git LFS Details

  • SHA256: feecce07c67ac1ba7bf57f9d3b31bb819211b8da60f547287bdfce4376091ec4
  • Pointer size: 131 Bytes
  • Size of remote file: 140 kB
agentic_coding_benchmarks.png ADDED

Git LFS Details

  • SHA256: 06cf5486ae94ecd7cc6f91ae3b4bae21c7435253a294cb89f54f7ec42eda8847
  • Pointer size: 131 Bytes
  • Size of remote file: 220 kB
bias.md ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ | Field | Response |
2
+ | :---- | :---- |
3
+ | Participation considerations from adversely impacted groups [protected classes](https://www.senate.ca.gov/content/protected-classes) in model design and testing: | None |
4
+ | Bias Metric (If Measured): | [BBQ Accuracy Scores in Ambiguous Contexts](https://github.com/nyu-mll/BBQ/) |
5
+ | Which characteristic (feature) show(s) the greatest difference in performance?: | The model shows high variance in the characteristics when it is used with a high temperature. |
6
+ | Measures taken to mitigate against unwanted bias: | Supervised Fine-Tuning (SFT) and Reinforcement Learning from Human Feedback (RLHF) employed to calibrate the model’s reasoning capabilities to maintain logical consistency and appropriate complexity when interacting with or interpreting data from diverse age demographics. |
7
+ | If using internal data, description of methods implemented in data acquisition or processing, if any, to address the prevalence of identifiable biases in the training, testing, and validation data: | The training datasets contain a large amount of synthetic data generated by LLMs. We manually curated prompts. |
8
+ | Tools used to assess statistical imbalances and highlight patterns that may introduce bias into AI models: | [BBQ](https://github.com/nyu-mll/BBQ/) |
9
+ | Tools used to assess statistical imbalances and highlight patterns that may introduce bias into AI models: | These datasets, such as web-scraped finance reasoning data derived from SEC EDGAR filings, science and math problem datasets, OpenResearcher/source-document datasets, Common Crawl, CC-News, Wikimedia, and long-context document datasets, do not collectively or exhaustively represent all demographic groups (and proportionally therein). For instance, these datasets do not contain explicit mentions of demographic classes such as age, gender, or ethnicity in approximately 97% to 99.9% of finance reasoning samples and in over 85% of samples across the broader assessed datasets. In the subset where such terms are present, these datasets contain notable representational skews. For example, ethnicity mentions are often dominated by Middle Eastern contexts (found in finance documents) or "White," "Two or more," and "Black or African American" as the most frequent ethnic identifiers, while references categorized as male-only significantly outnumber those categorized as female-only. Furthermore, gender is explicitly mentioned in approximately 12% of samples across the broader dataset assessment, yet in only 0.9% of finance-specific samples. Dataset-level results vary by source type, with long-context/source-document datasets containing higher explicit demographic mention rates compared to certain web-scraped sources. To mitigate these imbalances, we recommend considering evaluation techniques such as bias audits, fine-tuning with demographically balanced datasets, and mitigation strategies such as counterfactual data augmentation to align with the desired model behavior. This evaluation used a 3,000-sample subset per dataset, identified as the optimal threshold for maximizing embedder accuracy. |
10
+ | Unwanted Bias Testing: | Constrained to English-language inputs. Multi-lingual parity is not currently claimed or guaranteed. |
chat_template.jinja ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {% macro render_extra_keys(json_dict, handled_keys) %}
2
+ {%- if json_dict is mapping %}
3
+ {%- for json_key in json_dict if json_key not in handled_keys %}
4
+ {%- if json_dict[json_key] is mapping or (json_dict[json_key] is sequence and json_dict[json_key] is not string) %}
5
+ {{- '\n<' ~ json_key ~ '>' ~ (json_dict[json_key] | tojson | safe) ~ '</' ~ json_key ~ '>' }}
6
+ {%- else %}
7
+ {{-'\n<' ~ json_key ~ '>' ~ (json_dict[json_key] | string) ~ '</' ~ json_key ~ '>' }}
8
+ {%- endif %}
9
+ {%- endfor %}
10
+ {%- endif %}
11
+ {% endmacro %}
12
+ {%- set enable_thinking = enable_thinking if enable_thinking is defined else True %}
13
+ {%- set truncate_history_thinking = truncate_history_thinking if truncate_history_thinking is defined else True %}
14
+ {%- set ns = namespace(last_user_idx = -1) %}
15
+ {%- set loop_messages = messages %}
16
+ {%- for m in loop_messages %}
17
+ {%- if m["role"] == "user" %}
18
+ {%- set ns.last_user_idx = loop.index0 %}
19
+ {%- endif %}
20
+ {%- endfor %}
21
+ {%- if messages[0]["role"] == "system" %}
22
+ {%- set system_message = messages[0]["content"] %}
23
+ {%- set loop_messages = messages[1:] %}
24
+ {%- else %}
25
+ {%- set system_message = "" %}
26
+ {%- set loop_messages = messages %}
27
+ {%- endif %}
28
+ {%- if not tools is defined %}
29
+ {%- set tools = [] %}
30
+ {%- endif %}
31
+ {%- set ns = namespace(last_user_idx = -1) %}
32
+ {%- for m in loop_messages %}
33
+ {%- if m["role"] == "user" %}
34
+ {%- set ns.last_user_idx = loop.index0 %}
35
+ {%- endif %}
36
+ {%- endfor %}
37
+ {%- if system_message is defined %}
38
+ {{- "<|im_start|>system\n" + system_message }}
39
+ {%- else %}
40
+ {%- if tools is iterable and tools | length > 0 %}
41
+ {{- "<|im_start|>system\n" }}
42
+ {%- endif %}
43
+ {%- endif %}
44
+ {%- if tools is iterable and tools | length > 0 %}
45
+ {%- if system_message is defined and system_message | length > 0 %}
46
+ {{- "\n\n" }}
47
+ {%- endif %}
48
+ {{- "# Tools\n\nYou have access to the following functions:\n\n" }}
49
+ {{- "<tools>" }}
50
+ {%- for tool in tools %}
51
+ {%- if tool.function is defined %}
52
+ {%- set tool = tool.function %}
53
+ {%- endif %}
54
+ {{- "\n<function>\n<name>" ~ tool.name ~ "</name>" }}
55
+ {%- if tool.description is defined %}
56
+ {{- '\n<description>' ~ (tool.description | trim) ~ '</description>' }}
57
+ {%- endif %}
58
+ {{- '\n<parameters>' }}
59
+ {%- if tool.parameters is defined and tool.parameters is mapping and tool.parameters.properties is defined and tool.parameters.properties is mapping %}
60
+ {%- for param_name, param_fields in tool.parameters.properties|items %}
61
+ {{- '\n<parameter>' }}
62
+ {{- '\n<name>' ~ param_name ~ '</name>' }}
63
+ {%- if param_fields.type is defined %}
64
+ {{- '\n<type>' ~ (param_fields.type | string) ~ '</type>' }}
65
+ {%- endif %}
66
+ {%- if param_fields.description is defined %}
67
+ {{- '\n<description>' ~ (param_fields.description | trim) ~ '</description>' }}
68
+ {%- endif %}
69
+ {%- if param_fields.enum is defined %}
70
+ {{- '\n<enum>' ~ (param_fields.enum | tojson | safe) ~ '</enum>' }}
71
+ {%- endif %}
72
+ {%- set handled_keys = ['name', 'type', 'description', 'enum'] %}
73
+ {{- render_extra_keys(param_fields, handled_keys) }}
74
+ {{- '\n</parameter>' }}
75
+ {%- endfor %}
76
+ {%- endif %}
77
+ {% set handled_keys = ['type', 'properties', 'required'] %}
78
+ {{- render_extra_keys(tool.parameters, handled_keys) }}
79
+ {%- if tool.parameters is defined and tool.parameters.required is defined %}
80
+ {{- '\n<required>' ~ (tool.parameters.required | tojson | safe) ~ '</required>' }}
81
+ {%- endif %}
82
+ {{- '\n</parameters>' }}
83
+ {%- set handled_keys = ['type', 'name', 'description', 'parameters'] %}
84
+ {{- render_extra_keys(tool, handled_keys) }}
85
+ {{- '\n</function>' }}
86
+ {%- endfor %}
87
+ {{- "\n</tools>" }}
88
+ {{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n<tool_call>\n<function=example_function_name>\n<parameter=example_parameter_1>\nvalue_1\n</parameter>\n<parameter=example_parameter_2>\nThis is the value for the second parameter\nthat can span\nmultiple lines\n</parameter>\n</function>\n</tool_call>\n\n<IMPORTANT>\nReminder:\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n</IMPORTANT>' }}
89
+ {%- endif %}
90
+ {%- if system_message is defined %}
91
+ {{- '<|im_end|>\n' }}
92
+ {%- else %}
93
+ {%- if tools is iterable and tools | length > 0 %}
94
+ {{- '<|im_end|>\n' }}
95
+ {%- endif %}
96
+ {%- endif %}
97
+ {%- for message in loop_messages %}
98
+ {%- if message.role == "assistant" %}
99
+ {%- if message.reasoning_content is defined and message.reasoning_content is string and message.reasoning_content | trim | length > 0 %}
100
+ {%- set content = "<think>\n" ~ message.reasoning_content ~ "</think>" ~ (message.content | default('', true)) %}
101
+ {%- else %}
102
+ {%- set content = message.content | default('', true) %}
103
+ {%- if content is string -%}
104
+ {%- if '<think>' not in content and '</think>' not in content -%}
105
+ {%- set content = "<think></think>" ~ content -%}
106
+ {%- endif -%}
107
+ {%- else -%}
108
+ {%- set content = content -%}
109
+ {%- endif -%}
110
+ {%- endif %}
111
+ {%- if message.tool_calls is defined and message.tool_calls is iterable and message.tool_calls | length > 0 %}
112
+ {{- '<|im_start|>assistant\n' }}
113
+ {%- set include_content = not (truncate_history_thinking and loop.index0 < ns.last_user_idx) %}
114
+ {%- if content is string and content | trim | length > 0 %}
115
+ {%- if include_content %}
116
+ {{- (content | trim) ~ '\n' -}}
117
+ {%- else %}
118
+ {%- set c = (content | string) %}
119
+ {%- if '</think>' in c %}
120
+ {%- set c = c.split('</think>')[-1] %}
121
+ {%- elif '<think>' in c %}
122
+ {%- set c = c.split('<think>')[0] %}
123
+ {%- endif %}
124
+ {%- set c = "<think></think>" ~ c %}
125
+ {%- if c | length > 0 %}
126
+ {{- c ~ '\n' -}}
127
+ {%- endif %}
128
+ {%- endif %}
129
+ {%- else %}
130
+ {{- "<think></think>" -}}
131
+ {%- endif %}
132
+ {%- for tool_call in message.tool_calls %}
133
+ {%- if tool_call.function is defined %}
134
+ {%- set tool_call = tool_call.function %}
135
+ {%- endif %}
136
+ {{- '<tool_call>\n<function=' ~ tool_call.name ~ '>\n' -}}
137
+ {%- if tool_call.arguments is defined %}
138
+ {%- for args_name, args_value in tool_call.arguments|items %}
139
+ {{- '<parameter=' ~ args_name ~ '>\n' -}}
140
+ {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}
141
+ {{- args_value ~ '\n</parameter>\n' -}}
142
+ {%- endfor %}
143
+ {%- endif %}
144
+ {{- '</function>\n</tool_call>\n' -}}
145
+ {%- endfor %}
146
+ {{- '<|im_end|>\n' }}
147
+ {%- else %}
148
+ {%- if not (truncate_history_thinking and loop.index0 < ns.last_user_idx) %}
149
+ {{- '<|im_start|>assistant\n' ~ (content | default('', true) | string | trim) ~ '<|im_end|>\n' }}
150
+ {%- else %}
151
+ {%- set c = (content | default('', true) | string) %}
152
+ {%- if '<think>' in c and '</think>' in c %}
153
+ {%- set c = "<think></think>" ~ c.split('</think>')[-1] %}
154
+ {%- endif %}
155
+ {%- set c = c | trim %}
156
+ {%- if c | length > 0 %}
157
+ {{- '<|im_start|>assistant\n' ~ c ~ '<|im_end|>\n' }}
158
+ {%- else %}
159
+ {{- '<|im_start|>assistant\n<|im_end|>\n' }}
160
+ {%- endif %}
161
+ {%- endif %}
162
+ {%- endif %}
163
+ {%- elif message.role == "user" or message.role == "system" %}
164
+ {{- '<|im_start|>' + message.role + '\n' }}
165
+ {%- set content = message.content | string %}
166
+ {{- content }}
167
+ {{- '<|im_end|>\n' }}
168
+ {%- elif message.role == "tool" %}
169
+ {%- if loop.previtem and loop.previtem.role != "tool" %}
170
+ {{- '<|im_start|>user\n' }}
171
+ {%- endif %}
172
+ {{- '<tool_response>\n' }}
173
+ {{- message.content }}
174
+ {{- '\n</tool_response>\n' }}
175
+ {%- if not loop.last and loop.nextitem.role != "tool" %}
176
+ {{- '<|im_end|>\n' }}
177
+ {%- elif loop.last %}
178
+ {{- '<|im_end|>\n' }}
179
+ {%- endif %}
180
+ {%- else %}
181
+ {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>\n' }}
182
+ {%- endif %}
183
+ {%- endfor %}
184
+ {%- if add_generation_prompt %}
185
+ {%- if enable_thinking %}
186
+ {{- '<|im_start|>assistant\n<think>\n' }}
187
+ {%- else %}
188
+ {{- '<|im_start|>assistant\n<think></think>' }}
189
+ {%- endif %}
190
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,162 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "NemotronHForCausalLM"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0.0,
7
+ "bos_token_id": 1,
8
+ "chunk_size": 128,
9
+ "conv_kernel": 4,
10
+ "dtype": "bfloat16",
11
+ "eos_token_id": 2,
12
+ "expand": 2,
13
+ "head_dim": 128,
14
+ "hidden_dropout": 0.0,
15
+ "hidden_size": 2688,
16
+ "initializer_range": 0.02,
17
+ "intermediate_size": 1856,
18
+ "layer_norm_epsilon": 1e-05,
19
+ "layers_block_type": [
20
+ "mamba",
21
+ "moe",
22
+ "mamba",
23
+ "moe",
24
+ "mamba",
25
+ "attention",
26
+ "moe",
27
+ "mamba",
28
+ "moe",
29
+ "mamba",
30
+ "moe",
31
+ "mamba",
32
+ "attention",
33
+ "moe",
34
+ "mamba",
35
+ "moe",
36
+ "mamba",
37
+ "moe",
38
+ "mamba",
39
+ "attention",
40
+ "moe",
41
+ "mamba",
42
+ "moe",
43
+ "mamba",
44
+ "moe",
45
+ "mamba",
46
+ "attention",
47
+ "moe",
48
+ "mamba",
49
+ "moe",
50
+ "mamba",
51
+ "moe",
52
+ "mamba",
53
+ "attention",
54
+ "moe",
55
+ "mamba",
56
+ "moe",
57
+ "mamba",
58
+ "moe",
59
+ "mamba",
60
+ "moe",
61
+ "mamba",
62
+ "attention",
63
+ "moe",
64
+ "mamba",
65
+ "moe",
66
+ "mamba",
67
+ "moe",
68
+ "mamba",
69
+ "moe",
70
+ "mamba",
71
+ "moe"
72
+ ],
73
+ "mamba_head_dim": 64,
74
+ "mamba_hidden_act": "silu",
75
+ "mamba_num_heads": 64,
76
+ "mamba_proj_bias": false,
77
+ "mamba_ssm_cache_dtype": "float32",
78
+ "max_position_embeddings": 262144,
79
+ "mlp_bias": false,
80
+ "mlp_hidden_act": "relu2",
81
+ "model_type": "nemotron_h",
82
+ "moe_intermediate_size": 1856,
83
+ "moe_latent_size": null,
84
+ "moe_shared_expert_intermediate_size": 3712,
85
+ "moe_shared_expert_overlap": true,
86
+ "mtp_layers_block_type": [
87
+ "attention",
88
+ "moe"
89
+ ],
90
+ "n_group": 1,
91
+ "n_groups": 8,
92
+ "n_routed_experts": 128,
93
+ "n_shared_experts": 1,
94
+ "norm_eps": 1e-05,
95
+ "norm_topk_prob": true,
96
+ "num_attention_heads": 32,
97
+ "num_experts_per_tok": 6,
98
+ "num_hidden_layers": 52,
99
+ "num_key_value_heads": 2,
100
+ "num_logits_to_keep": 1,
101
+ "num_nextn_predict_layers": 1,
102
+ "pad_token_id": 0,
103
+ "partial_rotary_factor": 1.0,
104
+ "quantization_config": {
105
+ "config_groups": {
106
+ "config_group_0": {
107
+ "format": "pack-quantized",
108
+ "input_activations": null,
109
+ "output_activations": null,
110
+ "targets": [
111
+ "Linear"
112
+ ],
113
+ "weights": {
114
+ "actorder": null,
115
+ "block_structure": null,
116
+ "dynamic": false,
117
+ "group_size": 64,
118
+ "num_bits": 8,
119
+ "observer": "memoryless_minmax",
120
+ "observer_kwargs": {},
121
+ "scale_dtype": null,
122
+ "strategy": "group",
123
+ "symmetric": true,
124
+ "type": "int",
125
+ "zp_dtype": null
126
+ }
127
+ }
128
+ },
129
+ "format": "pack-quantized",
130
+ "global_compression_ratio": null,
131
+ "ignore": [
132
+ "re:.*\\.gate$",
133
+ "re:.*\\.conv1d$",
134
+ "re:.*mtp.*",
135
+ "lm_head",
136
+ "re:.*\\.embeddings$",
137
+ "re:.*\\.norm_f$"
138
+ ],
139
+ "kv_cache_scheme": null,
140
+ "quant_method": "compressed-tensors",
141
+ "quantization_status": "compressed",
142
+ "transform_config": {},
143
+ "version": "0.18.1.a20260818"
144
+ },
145
+ "rescale_prenorm_residual": true,
146
+ "residual_in_fp32": false,
147
+ "rope_theta": 10000,
148
+ "routed_scaling_factor": 2.5,
149
+ "sliding_window": null,
150
+ "ssm_state_size": 128,
151
+ "tie_word_embeddings": false,
152
+ "time_step_floor": 0.0001,
153
+ "time_step_max": 0.1,
154
+ "time_step_min": 0.001,
155
+ "topk_group": 1,
156
+ "transformers_version": "4.57.6",
157
+ "use_bias": false,
158
+ "use_cache": true,
159
+ "use_conv_bias": true,
160
+ "use_mamba_kernels": true,
161
+ "vocab_size": 131072
162
+ }
explainability.md ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ | Field | Response |
2
+ | :---- | :---- |
3
+ | Intended Task/Domain: | Text generation, reasoning, and chat |
4
+ | Model Type: | Text-to-text Mamba2-Transformer Hybrid |
5
+ | Intended Users: | Generative AI creators working with conversational AI models and image content. |
6
+ | Output: | Text |
7
+ | Tools used to evaluate datasets to identify synthetic data and ensure data authenticity. | We used a Gemma-3 4B-based filtering model fine-tuned on [Nemotron Content Safety Dataset v2](https://huggingface.co/datasets/nvidia/Aegis-AI-Content-Safety-Dataset-2.0) to ensure the quality of synthetic data. |
8
+ | Describe how the model works: | Generates text by predicting the next word or token based on the context provided in the input sequence using multiple self-attention layers. |
9
+ | Name the adversely impacted groups this has been tested to deliver comparable outcomes regardless of: | Age, Disability Status, Gender Identity, Nationality, Physical Appearance, Ethnicity, Socioeconomic Status, Sexual Orientation, Religion |
10
+ | Technical Limitations & Mitigation: | This model performs particularly well in instruction following regimes, as such may be strongly influenced by untrusted inputs and should be paired with appropriate guardrails and data filtering to better align use-case behaviors when exposed to such data. |
11
+ | Verified to have met prescribed NVIDIA quality standards: | Yes |
12
+ | Performance Metrics: | Accuracy, Throughput, and User-side throughput |
13
+ | Potential Known Risks: | The model was optimized explicitly for instruction following and as such is more susceptible to prompt injection and jailbreaking in various forms as a result of its instruction tuning. This means that the model should be paired with additional rails or system filtering to limit exposure to instructions from malicious sources -- either directly or indirectly by retrieval (e.g. via visiting a website) -- as they may yield outputs that can lead to harmful, system-level outcomes up to and including remote code execution in agentic systems when effective security controls including guardrails are not in place. The model may generate answers that may be inaccurate, omit key information, include irrelevant or redundant text, or produce socially unacceptable or undesirable text, even if the prompt itself does not include anything explicitly offensive. The model may exhibit self-anthropomorphism (e.g., displaying human-like characteristics in dialogue, such as expressing preferences and emotions). |
14
+ | Licensing: | Use of this model is governed by the [OpenMDW License Agreement, version 1.1](https://raw.githubusercontent.com/OpenMDW/OpenMDW/refs/heads/main/1.1/LICENSE.OpenMDW-1.1) (OpenMDW-1.1). |
generation_config.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "bos_token_id": 1,
4
+ "do_sample": true,
5
+ "eos_token_id": [
6
+ 2,
7
+ 11
8
+ ],
9
+ "pad_token_id": 0,
10
+ "top_p": 0.95,
11
+ "transformers_version": "4.57.6",
12
+ "temperature": 1.0
13
+ }
model-00001-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:79c9ef6cddd3779fec55991c07d954543084656ae96635b8a1f82e92a911f29a
3
+ size 2915453848
model-00002-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3740c71bc76b18a4b8013c8bc97e5dd06d871ffb0e0fa0169c01c638abf343ab
3
+ size 2575218432
model-00003-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b933d41543434ed4e802aad2f910bf2c798410059b5789192c04335bce4c0644
3
+ size 2575219440
model-00004-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:39ab7ff029bb0d743c740983ac11238bdce5a39af72f2a9526b40a5928ded615
3
+ size 2576811656
model-00005-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:19d03020dfcc47fa5377159933bdde2f38dd2f61ff4fdd782ed4bb5079f788ed
3
+ size 2569005224
model-00006-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c2ead9f0aa074d3a9fd40efad24a3d0e6a5fd2f6c6811d99eeced896082f295e
3
+ size 2573210456
model-00007-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:28bcb1b29ca06282b89bbb012f065c54685eb68c2a3ef9369f5d8f3978a27a51
3
+ size 2575219816
model-00008-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b9458cae347dea65c34e1ed202a0b773965f872b307ae8d6137791352708f396
3
+ size 2575219904
model-00009-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3daf90edb5e0de300242854ad55f533a9d3605fc59c719e2bb65ae68e521483f
3
+ size 2576811656
model-00010-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a871d444acfc8285a011a43ca2720af25cfdbb9752c5b20575d6abd32cd49674
3
+ size 2575219904
model-00011-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c351426be56cee7adf20e76b75114034c01df7079014d949025bd233b7d382ee
3
+ size 2576811664
model-00012-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:29c93fd77b3fe9c93a858916324ae3b7b5a89f3928c066a549dba3297d92a01f
3
+ size 2576811680
model-00013-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9618c85646c96977a8a0a5b307dec07315c81653c72f08a2480633202eea18f0
3
+ size 2017370440
model-00014-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:64577b275ca4e7e5266eae0903674f7f46ec2a8cbf4f4f1a3207f80d503cd1d0
3
+ size 2670685240
model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
privacy.md ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ | Privacy Information |
2
+ | :--- |
3
+ | Nemotron 3.5 Lightning was trained on large-scale publicly available data that may contain images, audio-video, and text relating to people. NVIDIA collected and used this data in compliance with applicable data protection and privacy laws. This model was not designed to derive insights or otherwise learn from any personal data contained in the datasets. |
4
+ | NVIDIA uses a combination of filters, data minimization techniques, and other guardrails to help prevent personal data from being recited by our models. We employ automated tools and data processing techniques during pre-training or training to identify and filter certain categories of personal data. |
5
+ | Please review NVIDIA's [Privacy Policy](https://www.nvidia.com/en-us/about-nvidia/privacy-policy/) for more information. |
safety.md ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ | Field | Response |
2
+ | :---- | :---- |
3
+ | Model Application Field(s): | Chat, Instruction Following, Chatbot Development, Code Generation, Reasoning, Customer Service |
4
+ | Describe the life critical impact (if present). | Not Applicable |
5
+ | Description of methods implemented in data acquisition or processing, if any, to address other types of potentially harmful data in the training, testing, and validation data: | We used a guard model for content safety to exclude potentially harmful data from training. |
6
+ | Description of any methods implemented in data acquisition or processing, if any, to address illegal or harmful content in the training data, including, but not limited to, child sexual abuse material (CSAM) and non-consensual intimate imagery (NCII) | We used a Gemma-3 4B-based guard model trained on [Nemotron Content Safety Dataset v2](https://huggingface.co/datasets/nvidia/Aegis-AI-Content-Safety-Dataset-2.0) for content safety to exclude potentially illegal or harmful content from the training. |
7
+ | Use Case Restrictions: | Use of this model is governed by the [OpenMDW License Agreement, version 1.1](https://raw.githubusercontent.com/OpenMDW/OpenMDW/refs/heads/main/1.1/LICENSE.OpenMDW-1.1) (OpenMDW-1.1).|
8
+ | Model and dataset restrictions: | The Principle of least privilege (PoLP) is applied limiting access for dataset generation and model development. Restrictions enforce dataset access during training, and dataset license constraints adhered to. |
9
+ | This AI model was developed based on our policies to ensure responsible data handling and risk mitigation. The datasets used for training have been scanned for harmful content and illegal content, consistent with our policies including scanning for Child Sexual Abuse Material (CSAM). Ongoing review and monitoring mechanisms are in place based on our policies and to maintain data integrity. | True. We use [Nemotron Content Safety Dataset V2](https://huggingface.co/datasets/nvidia/Aegis-AI-Content-Safety-Dataset-2.0) and an internal safety dataset specialized for minority sexuality for content safety evaluation to ensure the safety of this model. |
special_tokens_map.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": {
3
+ "content": "<s>",
4
+ "lstrip": false,
5
+ "normalized": false,
6
+ "rstrip": false,
7
+ "single_word": false
8
+ },
9
+ "eos_token": {
10
+ "content": "<|im_end|>",
11
+ "lstrip": false,
12
+ "normalized": false,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "pad_token": {
17
+ "content": "<|im_end|>",
18
+ "lstrip": false,
19
+ "normalized": false,
20
+ "rstrip": false,
21
+ "single_word": false
22
+ },
23
+ "unk_token": {
24
+ "content": "<unk>",
25
+ "lstrip": false,
26
+ "normalized": false,
27
+ "rstrip": false,
28
+ "single_word": false
29
+ }
30
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:623c34567aebb18582765289fbe23d901c62704d6518d71866e0e58db892b5b7
3
+ size 17077484
tokenizer_config.json ADDED
The diff for this file is too large to render. See raw diff