From 154a42732aa400f515fb66fb4dbb27d8ac9e6d02 Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Mon, 21 Sep 2026 03:47:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=EF=BC=8C=E7=94=B1ModelHub=20XC=E7=A4=BE=E5=8C=BA=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Model: Zynerji/Ektome-SmolLM3-3B-PristinelyUncensored Source: Original Platform --- .gitattributes | 44 ++++++++++ Ektome-SmolLM3-3B-IQ3_M.gguf | 3 + Ektome-SmolLM3-3B-IQ4_XS.gguf | 3 + Ektome-SmolLM3-3B-Q4_K_M.gguf | 3 + Ektome-SmolLM3-3B-Q5_K_M.gguf | 3 + Ektome-SmolLM3-3B-Q6_K.gguf | 3 + Ektome-SmolLM3-3B-Q8_0.gguf | 3 + README.md | 121 +++++++++++++++++++++++++ chat_template.jinja | 94 ++++++++++++++++++++ config.json | 111 +++++++++++++++++++++++ ektome_report.json | 28 ++++++ generation_config.json | 9 ++ hero.png | 3 + imatrix.dat | 3 + model.safetensors | 3 + nvfp4/chat_template.jinja | 94 ++++++++++++++++++++ nvfp4/config.json | 161 ++++++++++++++++++++++++++++++++++ nvfp4/generation_config.json | 9 ++ nvfp4/model.safetensors | 3 + nvfp4/recipe.yaml | 7 ++ nvfp4/tokenizer.json | 3 + nvfp4/tokenizer_config.json | 16 ++++ special_tokens_map.json | 16 ++++ tokenizer.json | 3 + tokenizer_config.json | 17 ++++ whitepaper.pdf | Bin 0 -> 75112 bytes 26 files changed, 763 insertions(+) create mode 100644 .gitattributes create mode 100644 Ektome-SmolLM3-3B-IQ3_M.gguf create mode 100644 Ektome-SmolLM3-3B-IQ4_XS.gguf create mode 100644 Ektome-SmolLM3-3B-Q4_K_M.gguf create mode 100644 Ektome-SmolLM3-3B-Q5_K_M.gguf create mode 100644 Ektome-SmolLM3-3B-Q6_K.gguf create mode 100644 Ektome-SmolLM3-3B-Q8_0.gguf create mode 100644 README.md create mode 100644 chat_template.jinja create mode 100644 config.json create mode 100644 ektome_report.json create mode 100644 generation_config.json create mode 100644 hero.png create mode 100644 imatrix.dat create mode 100644 model.safetensors create mode 100644 nvfp4/chat_template.jinja create mode 100644 nvfp4/config.json create mode 100644 nvfp4/generation_config.json create mode 100644 nvfp4/model.safetensors create mode 100644 nvfp4/recipe.yaml create mode 100644 nvfp4/tokenizer.json create mode 100644 nvfp4/tokenizer_config.json create mode 100644 special_tokens_map.json create mode 100644 tokenizer.json create mode 100644 tokenizer_config.json create mode 100644 whitepaper.pdf diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..01f7fab --- /dev/null +++ b/.gitattributes @@ -0,0 +1,44 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.safetensors filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text +tokenizer.json filter=lfs diff=lfs merge=lfs -text +hero.png filter=lfs diff=lfs merge=lfs -text +Ektome-SmolLM3-3B-IQ3_M.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-SmolLM3-3B-IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-SmolLM3-3B-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-SmolLM3-3B-Q5_K_M.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-SmolLM3-3B-Q6_K.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-SmolLM3-3B-Q8_0.gguf filter=lfs diff=lfs merge=lfs -text +imatrix.dat filter=lfs diff=lfs merge=lfs -text diff --git a/Ektome-SmolLM3-3B-IQ3_M.gguf b/Ektome-SmolLM3-3B-IQ3_M.gguf new file mode 100644 index 0000000..8909763 --- /dev/null +++ b/Ektome-SmolLM3-3B-IQ3_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5ae3d40e0b16bc1dd23d706fbd06318cb7386a5c72be1db24d8a6c5a4a4fdcb +size 1469357728 diff --git a/Ektome-SmolLM3-3B-IQ4_XS.gguf b/Ektome-SmolLM3-3B-IQ4_XS.gguf new file mode 100644 index 0000000..57e1866 --- /dev/null +++ b/Ektome-SmolLM3-3B-IQ4_XS.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e4aa82fc54db6dae6805762f5fce7b92dd06585aa207c8cc4b63446d351b373 +size 1723834016 diff --git a/Ektome-SmolLM3-3B-Q4_K_M.gguf b/Ektome-SmolLM3-3B-Q4_K_M.gguf new file mode 100644 index 0000000..0d2c976 --- /dev/null +++ b/Ektome-SmolLM3-3B-Q4_K_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c1271a807592d9473227e7a75d486685ebbe5a492eb894559343be4d13c248d +size 1915305632 diff --git a/Ektome-SmolLM3-3B-Q5_K_M.gguf b/Ektome-SmolLM3-3B-Q5_K_M.gguf new file mode 100644 index 0000000..01f3d49 --- /dev/null +++ b/Ektome-SmolLM3-3B-Q5_K_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0db5be069a8043368c513e82ff4a88ce159934ada12e780666ba5dbc93adbe9 +size 2213756576 diff --git a/Ektome-SmolLM3-3B-Q6_K.gguf b/Ektome-SmolLM3-3B-Q6_K.gguf new file mode 100644 index 0000000..ec81c07 --- /dev/null +++ b/Ektome-SmolLM3-3B-Q6_K.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bfebd1bb4c820902a9466e9b333f9db328e960ea02eb12147b3906dccecf5d8a +size 2530860704 diff --git a/Ektome-SmolLM3-3B-Q8_0.gguf b/Ektome-SmolLM3-3B-Q8_0.gguf new file mode 100644 index 0000000..709ce60 --- /dev/null +++ b/Ektome-SmolLM3-3B-Q8_0.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd8b5d1edb4c96c93c285a97532481a842944df27d6e356be6c6c8a40ba92abf +size 3275574944 diff --git a/README.md b/README.md new file mode 100644 index 0000000..9d259f3 --- /dev/null +++ b/README.md @@ -0,0 +1,121 @@ +--- +license: apache-2.0 +base_model: HuggingFaceTB/SmolLM3-3B +tags: + - uncensored + - abliterated + - uncertified + - ektome + - sphragis + - smollm3 +language: + - en +pipeline_tag: text-generation +--- + +![Ektome-SmolLM3-3B-PristinelyUncensored](./hero.png) + +# Ektome-SmolLM3-3B-PristinelyUncensored + +**Uncensored. No n=2800 certificate has been run for this model, so no capability-retention claim is made.** + +> **compliance 0.44 to 0.99 at capability -0.007 vs pristine.** + +$$\colorbox{black}{$\color{white} +\begin{array}{ll} +\textsf{EKTOME CERTIFICATE} & {} \\ +\textsf{capability} & \textsf{NOT} \\ +\textsf{margin} & 3\% \\ +\textsf{items } n & 200 \\ +\textsf{worst-axis bound} & -0.007 \\ +\textsf{compliance} & 0.44 \rightarrow 0.99 \\ +\end{array}$}$$ + +> ### โš ๏ธ Not certified +> +> No n=2800 paired certificate exists for this model. Any numbers below are +> point estimates with no confidence interval. + + +๐Ÿ“„ **[Read the whitepaper (PDF)](./whitepaper.pdf)** โ€” full method, receipts and certification. +The PDF is the authoritative document: dark-typeset, with the complete derivation, the +per-axis certificate and the reproducibility hashes. + +--- + +## Why this exists + +Standard abliteration removes a coarse *refusal direction* that is entangled with +directions carrying knowledge and reasoning. The result is an uncensored model with a +capability tax that is **almost never measured**. + +Ektomฤ“ (แผฮบฯ„ฮฟฮผฮฎ, *excision*) isolates and removes only the refusal-**specific** +component, leaving general helpfulness intact, and does so norm-preservingly on the +pristine model โ€” no training, no distillation, no damage to repair. The extraction +depth is selected per model by automated search against measured compliance. + +The estimator, excision operator and depth-selection procedure are proprietary. +What is published here is the **measured outcome** and the evidence for it, which you +can verify against the artifacts in this repo. + +## The receipt + +| model | capability (MMLU-val) โ†‘ | compliance on harmful โ†‘ | +|---|---|---| +| pristine `SmolLM3-3B` | 0.560 | 0.440 | +| **Ektomฤ“ (this model)** | **0.568** | **0.990** | + +These are **point estimates with no confidence interval** โ€” which is precisely why the next section exists. + + +## The certificate + +Capability retention is certified by a paired non-inferiority test against the pristine +model (exact McNemar, Holm-corrected, one-sided bootstrap bound on the drop $d$ vs a +3% margin): + +| axis | n | ref | cand | d upper | verdict | +|---|---|---|---|---|---| +| MMLU-val (POINT ESTIMATE, n=200, no CI) | 200 | 0.560 | 0.568 | -0.007 | UNCERTIFIED | + + +**Overall: NOT CERTIFIED - no n=2800 paired test has been run for this model** + +Reproducible from `seed=20260726`, pack `sha256:7bbaff877146e081โ€ฆ`. + +### Generation health checks + +| metric | pristine | Ektomฤ“ | n | +|---|---|---|---| +| `foreign_rate` | 0.0 | 0.0 | 15 | +| `degen_rate` | 0.0 | 0.0 | 15 | +| `instr_pass` | 0.4 | 0.4 | 5 | + +These are **degeneration guards** โ€” code-switching, babbling, format compliance โ€” +not capability measures. Note the sample sizes: they detect a broken model, not a +subtly weaker one. The capability claim rests on the certificate above, not here. + + +## Quantisations + +_No quantisations have been published for this model yet โ€” bf16 weights only._ + + +## Limitations + +The certificate bounds **capability retention only**. It does not certify safety, factual +accuracy, or fitness for any purpose. Axes marked *inconclusive* are honestly +under-powered, and the certificate states the $n$ needed to resolve them. Compliance uses +a keyword classifier โ€” a proxy that evasive phrasing can fool. **This model is uncensored +by construction: it will not refuse, and you are accountable for what you do with it.** + +## Citation + +```bibtex +@software{ektome_Ektome-SmolLM3-3B-PristinelyUncensored, + title = {Ektome-SmolLM3-3B-PristinelyUncensored}, + author = {Zynerji}, + year = {2026}, + url = {https://huggingface.co/Zynerji/Ektome-SmolLM3-3B-PristinelyUncensored} +} +``` diff --git a/chat_template.jinja b/chat_template.jinja new file mode 100644 index 0000000..e01e3a1 --- /dev/null +++ b/chat_template.jinja @@ -0,0 +1,94 @@ +{# โ”€โ”€โ”€โ”€โ”€ defaults โ”€โ”€โ”€โ”€โ”€ #} +{%- if enable_thinking is not defined -%} +{%- set enable_thinking = true -%} +{%- endif -%} + +{# โ”€โ”€โ”€โ”€โ”€ reasoning mode โ”€โ”€โ”€โ”€โ”€ #} +{%- if enable_thinking -%} + {%- set reasoning_mode = "/think" -%} +{%- else -%} + {%- set reasoning_mode = "/no_think" -%} +{%- endif -%} + +{# โ”€โ”€โ”€โ”€โ”€ header (system message) โ”€โ”€โ”€โ”€โ”€ #} +{{- "<|im_start|>system\n" -}} + +{%- if messages[0].role == "system" -%} + {%- set system_message = messages[0].content -%} + {%- if "/no_think" in system_message -%} + {%- set reasoning_mode = "/no_think" -%} + {%- elif "/think" in system_message -%} + {%- set reasoning_mode = "/think" -%} + {%- endif -%} + {%- set custom_instructions = system_message.replace("/no_think", "").replace("/think", "").rstrip() -%} +{%- endif -%} + +{%- if "/system_override" in system_message -%} + {{- custom_instructions.replace("/system_override", "").rstrip() -}} + {{- "<|im_end|>\n" -}} +{%- else -%} + {{- "## Metadata\n\n" -}} + {{- "Knowledge Cutoff Date: June 2025\n" -}} + {%- set today = strftime_now("%d %B %Y") -%} + {{- "Today Date: " ~ today ~ "\n" -}} + {{- "Reasoning Mode: " + reasoning_mode + "\n\n" -}} + + {{- "## Custom Instructions\n\n" -}} + {%- if custom_instructions -%} + {{- custom_instructions + "\n\n" -}} + {%- elif reasoning_mode == "/think" -%} + {{- "You are a helpful AI assistant named SmolLM, trained by Hugging Face. Your role as an assistant involves thoroughly exploring questions through a systematic thinking process before providing the final precise and accurate solutions. This requires engaging in a comprehensive cycle of analysis, summarizing, exploration, reassessment, reflection, backtracking, and iteration to develop well-considered thinking process. Please structure your response into two main sections: Thought and Solution using the specified format: Thought section Solution section. In the Thought section, detail your reasoning process in steps. Each step should include detailed considerations such as analysing questions, summarizing relevant findings, brainstorming new ideas, verifying the accuracy of the current steps, refining any errors, and revisiting previous steps. In the Solution section, based on various attempts, explorations, and reflections from the Thought section, systematically present the final solution that you deem correct. The Solution section should be logical, accurate, and concise and detail necessary steps needed to reach the conclusion.\n\n" -}} + {%- else -%} + {{- "You are a helpful AI assistant named SmolLM, trained by Hugging Face.\n\n" -}} + {%- endif -%} + + {%- if xml_tools or python_tools or tools -%} + {{- "### Tools\n\n" -}} + {%- if xml_tools or tools -%} + {%- if tools -%} + {%- set xml_tools = tools -%} + {%- endif -%} + {%- set ns = namespace(xml_tool_string="You may call one or more functions to assist with the user query.\nYou are provided with function signatures within XML tags:\n\n\n") -%} + {%- for tool in xml_tools[:] -%} {# The slicing makes sure that xml_tools is a list #} + {%- set ns.xml_tool_string = ns.xml_tool_string ~ (tool | string) ~ "\n" -%} + {%- endfor -%} + {%- set xml_tool_string = ns.xml_tool_string + "\n\nFor each function call, return a json object with function name and arguments within XML tags:\n\n{\"name\": , \"arguments\": }\n" -%} + {{- xml_tool_string -}} + {%- endif -%} + {%- if python_tools -%} + {%- set ns = namespace(python_tool_string="When you send a message containing Python code between '' and '' tags, it will be executed in a stateful Jupyter notebook environment, and you will then be given the output to continued reasoning in an agentic loop.\n\nYou can use the following tools in your python code like regular functions:\n\n") -%} + {%- for tool in python_tools[:] -%} {# The slicing makes sure that python_tools is a list #} + {%- set ns.python_tool_string = ns.python_tool_string ~ (tool | string) ~ "\n" -%} + {%- endfor -%} + {%- set python_tool_string = ns.python_tool_string + "\n\nThe state persists between code executions: so variables that you define in one step are still available thereafter." -%} + {{- python_tool_string -}} + {%- endif -%} + {{- "\n\n" -}} + {{- "<|im_end|>\n" -}} + {%- endif -%} +{%- endif -%} +{# โ”€โ”€โ”€โ”€โ”€ main loop โ”€โ”€โ”€โ”€โ”€ #} +{%- for message in messages -%} + {%- set content = message.content if message.content is string else "" -%} + {%- if message.role == "user" -%} + {{ "<|im_start|>" + message.role + "\n" + content + "<|im_end|>\n" }} + {%- elif message.role == "assistant" -%} + {% generation %} + {%- if reasoning_mode == "/think" -%} + {{ "<|im_start|>assistant\n" + content.lstrip("\n") + "<|im_end|>\n" }} + {%- else -%} + {{ "<|im_start|>assistant\n" + "\n\n\n" + content.lstrip("\n") + "<|im_end|>\n" }} + {%- endif -%} + {% endgeneration %} + {%- elif message.role == "tool" -%} + {{ "<|im_start|>" + "user\n" + content + "<|im_end|>\n" }} + {%- endif -%} +{%- endfor -%} +{# โ”€โ”€โ”€โ”€โ”€ generation prompt โ”€โ”€โ”€โ”€โ”€ #} +{%- if add_generation_prompt -%} + {%- if reasoning_mode == "/think" -%} + {{ "<|im_start|>assistant\n" }} + {%- else -%} + {{ "<|im_start|>assistant\n" + "\n\n\n" }} + {%- endif -%} +{%- endif -%} \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000..01e36f4 --- /dev/null +++ b/config.json @@ -0,0 +1,111 @@ +{ + "architectures": [ + "SmolLM3ForCausalLM" + ], + "attention_bias": false, + "attention_dropout": 0.0, + "bos_token_id": 128000, + "dtype": "bfloat16", + "eos_token_id": 128012, + "hidden_act": "silu", + "hidden_size": 2048, + "initializer_range": 0.02, + "intermediate_size": 11008, + "layer_types": [ + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention" + ], + "max_position_embeddings": 65536, + "max_window_layers": 28, + "mlp_bias": false, + "model_type": "smollm3", + "no_rope_layer_interval": 4, + "no_rope_layers": [ + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0 + ], + "num_attention_heads": 16, + "num_hidden_layers": 36, + "num_key_value_heads": 4, + "pad_token_id": 128004, + "pretraining_tp": 2, + "rms_norm_eps": 1e-06, + "rope_parameters": { + "rope_theta": 5000000.0, + "rope_type": "default" + }, + "sliding_window": null, + "tie_word_embeddings": true, + "transformers_version": "5.13.1", + "use_cache": false, + "use_sliding_window": false, + "vocab_size": 128256 +} diff --git a/ektome_report.json b/ektome_report.json new file mode 100644 index 0000000..1e174e0 --- /dev/null +++ b/ektome_report.json @@ -0,0 +1,28 @@ +{ + "status": "SHIP", + "target": 0.99, + "SE_mmlu": 0.02481934729198171, + "base_compliance": 0.44, + "compliance": 0.99, + "base_cap": 0.56, + "cap": 0.5675, + "dcap": 0.0075, + "gen_base": { + "foreign_rate": 0.0, + "degen_rate": 0.0, + "instr_pass": 0.4 + }, + "gen": { + "foreign_rate": 0.0, + "degen_rate": 0.0, + "instr_pass": 0.4 + }, + "gen_delta": { + "d_foreign": 0.0, + "d_degen": 0.0, + "d_instr": 0.0, + "holds_gen": true + }, + "base_model": "HuggingFaceTB/SmolLM3-3B", + "_note": "Redacted: search trajectory, selected depth and edit-scope removed. Reported values are the measured outcome only." +} \ No newline at end of file diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..fef0659 --- /dev/null +++ b/generation_config.json @@ -0,0 +1,9 @@ +{ + "bos_token_id": 128000, + "do_sample": true, + "eos_token_id": 128012, + "pad_token_id": 128004, + "temperature": 0.6, + "top_p": 0.95, + "transformers_version": "5.13.1" +} diff --git a/hero.png b/hero.png new file mode 100644 index 0000000..7898955 --- /dev/null +++ b/hero.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:571cbd808b39c80acf68efe647b6c00fbb94564066f86fe8a5d12bdeb0e87365 +size 240366 diff --git a/imatrix.dat b/imatrix.dat new file mode 100644 index 0000000..c9a6f52 --- /dev/null +++ b/imatrix.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4976b6a7444ed9a63dd8b59998c9c5055828ea95359e4dfaec75415c8be0517 +size 3393408 diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..307225b --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3bcd3ade165456e6043716578113f400c68c32481c3f9fb6a29d3ebfbf42d2e +size 6150235096 diff --git a/nvfp4/chat_template.jinja b/nvfp4/chat_template.jinja new file mode 100644 index 0000000..e01e3a1 --- /dev/null +++ b/nvfp4/chat_template.jinja @@ -0,0 +1,94 @@ +{# โ”€โ”€โ”€โ”€โ”€ defaults โ”€โ”€โ”€โ”€โ”€ #} +{%- if enable_thinking is not defined -%} +{%- set enable_thinking = true -%} +{%- endif -%} + +{# โ”€โ”€โ”€โ”€โ”€ reasoning mode โ”€โ”€โ”€โ”€โ”€ #} +{%- if enable_thinking -%} + {%- set reasoning_mode = "/think" -%} +{%- else -%} + {%- set reasoning_mode = "/no_think" -%} +{%- endif -%} + +{# โ”€โ”€โ”€โ”€โ”€ header (system message) โ”€โ”€โ”€โ”€โ”€ #} +{{- "<|im_start|>system\n" -}} + +{%- if messages[0].role == "system" -%} + {%- set system_message = messages[0].content -%} + {%- if "/no_think" in system_message -%} + {%- set reasoning_mode = "/no_think" -%} + {%- elif "/think" in system_message -%} + {%- set reasoning_mode = "/think" -%} + {%- endif -%} + {%- set custom_instructions = system_message.replace("/no_think", "").replace("/think", "").rstrip() -%} +{%- endif -%} + +{%- if "/system_override" in system_message -%} + {{- custom_instructions.replace("/system_override", "").rstrip() -}} + {{- "<|im_end|>\n" -}} +{%- else -%} + {{- "## Metadata\n\n" -}} + {{- "Knowledge Cutoff Date: June 2025\n" -}} + {%- set today = strftime_now("%d %B %Y") -%} + {{- "Today Date: " ~ today ~ "\n" -}} + {{- "Reasoning Mode: " + reasoning_mode + "\n\n" -}} + + {{- "## Custom Instructions\n\n" -}} + {%- if custom_instructions -%} + {{- custom_instructions + "\n\n" -}} + {%- elif reasoning_mode == "/think" -%} + {{- "You are a helpful AI assistant named SmolLM, trained by Hugging Face. Your role as an assistant involves thoroughly exploring questions through a systematic thinking process before providing the final precise and accurate solutions. This requires engaging in a comprehensive cycle of analysis, summarizing, exploration, reassessment, reflection, backtracking, and iteration to develop well-considered thinking process. Please structure your response into two main sections: Thought and Solution using the specified format: Thought section Solution section. In the Thought section, detail your reasoning process in steps. Each step should include detailed considerations such as analysing questions, summarizing relevant findings, brainstorming new ideas, verifying the accuracy of the current steps, refining any errors, and revisiting previous steps. In the Solution section, based on various attempts, explorations, and reflections from the Thought section, systematically present the final solution that you deem correct. The Solution section should be logical, accurate, and concise and detail necessary steps needed to reach the conclusion.\n\n" -}} + {%- else -%} + {{- "You are a helpful AI assistant named SmolLM, trained by Hugging Face.\n\n" -}} + {%- endif -%} + + {%- if xml_tools or python_tools or tools -%} + {{- "### Tools\n\n" -}} + {%- if xml_tools or tools -%} + {%- if tools -%} + {%- set xml_tools = tools -%} + {%- endif -%} + {%- set ns = namespace(xml_tool_string="You may call one or more functions to assist with the user query.\nYou are provided with function signatures within XML tags:\n\n\n") -%} + {%- for tool in xml_tools[:] -%} {# The slicing makes sure that xml_tools is a list #} + {%- set ns.xml_tool_string = ns.xml_tool_string ~ (tool | string) ~ "\n" -%} + {%- endfor -%} + {%- set xml_tool_string = ns.xml_tool_string + "\n\nFor each function call, return a json object with function name and arguments within XML tags:\n\n{\"name\": , \"arguments\": }\n" -%} + {{- xml_tool_string -}} + {%- endif -%} + {%- if python_tools -%} + {%- set ns = namespace(python_tool_string="When you send a message containing Python code between '' and '' tags, it will be executed in a stateful Jupyter notebook environment, and you will then be given the output to continued reasoning in an agentic loop.\n\nYou can use the following tools in your python code like regular functions:\n\n") -%} + {%- for tool in python_tools[:] -%} {# The slicing makes sure that python_tools is a list #} + {%- set ns.python_tool_string = ns.python_tool_string ~ (tool | string) ~ "\n" -%} + {%- endfor -%} + {%- set python_tool_string = ns.python_tool_string + "\n\nThe state persists between code executions: so variables that you define in one step are still available thereafter." -%} + {{- python_tool_string -}} + {%- endif -%} + {{- "\n\n" -}} + {{- "<|im_end|>\n" -}} + {%- endif -%} +{%- endif -%} +{# โ”€โ”€โ”€โ”€โ”€ main loop โ”€โ”€โ”€โ”€โ”€ #} +{%- for message in messages -%} + {%- set content = message.content if message.content is string else "" -%} + {%- if message.role == "user" -%} + {{ "<|im_start|>" + message.role + "\n" + content + "<|im_end|>\n" }} + {%- elif message.role == "assistant" -%} + {% generation %} + {%- if reasoning_mode == "/think" -%} + {{ "<|im_start|>assistant\n" + content.lstrip("\n") + "<|im_end|>\n" }} + {%- else -%} + {{ "<|im_start|>assistant\n" + "\n\n\n" + content.lstrip("\n") + "<|im_end|>\n" }} + {%- endif -%} + {% endgeneration %} + {%- elif message.role == "tool" -%} + {{ "<|im_start|>" + "user\n" + content + "<|im_end|>\n" }} + {%- endif -%} +{%- endfor -%} +{# โ”€โ”€โ”€โ”€โ”€ generation prompt โ”€โ”€โ”€โ”€โ”€ #} +{%- if add_generation_prompt -%} + {%- if reasoning_mode == "/think" -%} + {{ "<|im_start|>assistant\n" }} + {%- else -%} + {{ "<|im_start|>assistant\n" + "\n\n\n" }} + {%- endif -%} +{%- endif -%} \ No newline at end of file diff --git a/nvfp4/config.json b/nvfp4/config.json new file mode 100644 index 0000000..28be837 --- /dev/null +++ b/nvfp4/config.json @@ -0,0 +1,161 @@ +{ + "architectures": [ + "SmolLM3ForCausalLM" + ], + "attention_bias": false, + "attention_dropout": 0.0, + "bos_token_id": 128000, + "dtype": "bfloat16", + "eos_token_id": 128012, + "hidden_act": "silu", + "hidden_size": 2048, + "initializer_range": 0.02, + "intermediate_size": 11008, + "layer_types": [ + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention" + ], + "max_position_embeddings": 65536, + "max_window_layers": 28, + "mlp_bias": false, + "model_type": "smollm3", + "no_rope_layer_interval": 4, + "no_rope_layers": [ + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 0 + ], + "num_attention_heads": 16, + "num_hidden_layers": 36, + "num_key_value_heads": 4, + "pad_token_id": 128004, + "pretraining_tp": 2, + "quantization_config": { + "config_groups": { + "group_0": { + "format": "nvfp4-pack-quantized", + "input_activations": { + "actorder": null, + "block_structure": null, + "dynamic": "local", + "group_size": 16, + "num_bits": 4, + "observer": "static_minmax", + "observer_kwargs": {}, + "scale_dtype": "torch.float8_e4m3fn", + "strategy": "tensor_group", + "symmetric": true, + "type": "float", + "zp_dtype": null + }, + "output_activations": null, + "targets": [ + "Linear" + ], + "weights": { + "actorder": null, + "block_structure": null, + "dynamic": false, + "group_size": 16, + "num_bits": 4, + "observer": "memoryless_minmax", + "observer_kwargs": {}, + "scale_dtype": "torch.float8_e4m3fn", + "strategy": "tensor_group", + "symmetric": true, + "type": "float", + "zp_dtype": null + } + } + }, + "format": "nvfp4-pack-quantized", + "global_compression_ratio": null, + "ignore": [ + "lm_head" + ], + "kv_cache_scheme": null, + "quant_method": "compressed-tensors", + "quantization_status": "compressed", + "sparsity_config": {}, + "transform_config": {}, + "version": "0.17.1" + }, + "rms_norm_eps": 1e-06, + "rope_parameters": { + "rope_theta": 5000000.0, + "rope_type": "default" + }, + "sliding_window": null, + "tie_word_embeddings": true, + "transformers_version": "5.10.1", + "use_cache": false, + "use_sliding_window": false, + "vocab_size": 128256 +} \ No newline at end of file diff --git a/nvfp4/generation_config.json b/nvfp4/generation_config.json new file mode 100644 index 0000000..b667da2 --- /dev/null +++ b/nvfp4/generation_config.json @@ -0,0 +1,9 @@ +{ + "bos_token_id": 128000, + "do_sample": true, + "eos_token_id": 128012, + "pad_token_id": 128004, + "temperature": 0.6, + "top_p": 0.95, + "transformers_version": "5.10.1" +} diff --git a/nvfp4/model.safetensors b/nvfp4/model.safetensors new file mode 100644 index 0000000..9cde647 --- /dev/null +++ b/nvfp4/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:546f3e1ea37331d754b0412ba7d427e1c34914def4987311d8bb98c94dc9cf06 +size 2107668936 diff --git a/nvfp4/recipe.yaml b/nvfp4/recipe.yaml new file mode 100644 index 0000000..6a93bcc --- /dev/null +++ b/nvfp4/recipe.yaml @@ -0,0 +1,7 @@ +default_stage: + default_modifiers: + QuantizationModifier: + targets: [Linear] + ignore: [lm_head] + scheme: NVFP4 + bypass_divisibility_checks: false diff --git a/nvfp4/tokenizer.json b/nvfp4/tokenizer.json new file mode 100644 index 0000000..074fa66 --- /dev/null +++ b/nvfp4/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b6a500b662a34eb3f0374db856ba4ad7de4c81040571d78dc0d357238930005 +size 17208819 diff --git a/nvfp4/tokenizer_config.json b/nvfp4/tokenizer_config.json new file mode 100644 index 0000000..8804a73 --- /dev/null +++ b/nvfp4/tokenizer_config.json @@ -0,0 +1,16 @@ +{ + "backend": "tokenizers", + "bos_token": null, + "clean_up_tokenization_spaces": true, + "eos_token": "<|im_end|>", + "fast": false, + "is_local": false, + "local_files_only": false, + "model_input_names": [ + "input_ids", + "attention_mask" + ], + "model_max_length": 131072, + "pad_token": "<|im_end|>", + "tokenizer_class": "TokenizersBackend" +} diff --git a/special_tokens_map.json b/special_tokens_map.json new file mode 100644 index 0000000..190d562 --- /dev/null +++ b/special_tokens_map.json @@ -0,0 +1,16 @@ +{ + "eos_token": { + "content": "<|im_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "pad_token": { + "content": "<|im_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + } +} diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..074fa66 --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b6a500b662a34eb3f0374db856ba4ad7de4c81040571d78dc0d357238930005 +size 17208819 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..d68ea85 --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,17 @@ +{ + "backend": "tokenizers", + "bos_token": null, + "clean_up_tokenization_spaces": true, + "eos_token": "<|im_end|>", + "fast": false, + "is_local": false, + "local_files_only": false, + "model_input_names": [ + "input_ids", + "attention_mask" + ], + "model_max_length": 131072, + "pad_token": "<|im_end|>", + "tokenizer_class": "TokenizersBackend", + "chat_template": "{# โ”€โ”€โ”€โ”€โ”€ defaults โ”€โ”€โ”€โ”€โ”€ #}\n{%- if enable_thinking is not defined -%}\n{%- set enable_thinking = true -%}\n{%- endif -%}\n\n{# โ”€โ”€โ”€โ”€โ”€ reasoning mode โ”€โ”€โ”€โ”€โ”€ #}\n{%- if enable_thinking -%}\n {%- set reasoning_mode = \"/think\" -%}\n{%- else -%}\n {%- set reasoning_mode = \"/no_think\" -%}\n{%- endif -%}\n\n{# โ”€โ”€โ”€โ”€โ”€ header (system message) โ”€โ”€โ”€โ”€โ”€ #}\n{{- \"<|im_start|>system\\n\" -}}\n\n{%- if messages[0].role == \"system\" -%}\n {%- set system_message = messages[0].content -%}\n {%- if \"/no_think\" in system_message -%}\n {%- set reasoning_mode = \"/no_think\" -%}\n {%- elif \"/think\" in system_message -%}\n {%- set reasoning_mode = \"/think\" -%}\n {%- endif -%}\n {%- set custom_instructions = system_message.replace(\"/no_think\", \"\").replace(\"/think\", \"\").rstrip() -%}\n{%- endif -%}\n\n{%- if \"/system_override\" in system_message -%}\n {{- custom_instructions.replace(\"/system_override\", \"\").rstrip() -}}\n {{- \"<|im_end|>\\n\" -}}\n{%- else -%}\n {{- \"## Metadata\\n\\n\" -}}\n {{- \"Knowledge Cutoff Date: June 2025\\n\" -}}\n {%- set today = strftime_now(\"%d %B %Y\") -%}\n {{- \"Today Date: \" ~ today ~ \"\\n\" -}}\n {{- \"Reasoning Mode: \" + reasoning_mode + \"\\n\\n\" -}}\n \n {{- \"## Custom Instructions\\n\\n\" -}}\n {%- if custom_instructions -%}\n {{- custom_instructions + \"\\n\\n\" -}}\n {%- elif reasoning_mode == \"/think\" -%}\n {{- \"You are a helpful AI assistant named SmolLM, trained by Hugging Face. Your role as an assistant involves thoroughly exploring questions through a systematic thinking process before providing the final precise and accurate solutions. This requires engaging in a comprehensive cycle of analysis, summarizing, exploration, reassessment, reflection, backtracking, and iteration to develop well-considered thinking process. Please structure your response into two main sections: Thought and Solution using the specified format: Thought section Solution section. In the Thought section, detail your reasoning process in steps. Each step should include detailed considerations such as analysing questions, summarizing relevant findings, brainstorming new ideas, verifying the accuracy of the current steps, refining any errors, and revisiting previous steps. In the Solution section, based on various attempts, explorations, and reflections from the Thought section, systematically present the final solution that you deem correct. The Solution section should be logical, accurate, and concise and detail necessary steps needed to reach the conclusion.\\n\\n\" -}}\n {%- else -%}\n {{- \"You are a helpful AI assistant named SmolLM, trained by Hugging Face.\\n\\n\" -}}\n {%- endif -%}\n\n {%- if xml_tools or python_tools or tools -%}\n {{- \"### Tools\\n\\n\" -}}\n {%- if xml_tools or tools -%}\n {%- if tools -%}\n {%- set xml_tools = tools -%}\n {%- endif -%}\n {%- set ns = namespace(xml_tool_string=\"You may call one or more functions to assist with the user query.\\nYou are provided with function signatures within XML tags:\\n\\n\\n\") -%}\n {%- for tool in xml_tools[:] -%} {# The slicing makes sure that xml_tools is a list #}\n {%- set ns.xml_tool_string = ns.xml_tool_string ~ (tool | string) ~ \"\\n\" -%}\n {%- endfor -%}\n {%- set xml_tool_string = ns.xml_tool_string + \"\\n\\nFor each function call, return a json object with function name and arguments within XML tags:\\n\\n{\\\"name\\\": , \\\"arguments\\\": }\\n\" -%}\n {{- xml_tool_string -}}\n {%- endif -%}\n {%- if python_tools -%}\n {%- set ns = namespace(python_tool_string=\"When you send a message containing Python code between '' and '' tags, it will be executed in a stateful Jupyter notebook environment, and you will then be given the output to continued reasoning in an agentic loop.\\n\\nYou can use the following tools in your python code like regular functions:\\n\\n\") -%}\n {%- for tool in python_tools[:] -%} {# The slicing makes sure that python_tools is a list #}\n {%- set ns.python_tool_string = ns.python_tool_string ~ (tool | string) ~ \"\\n\" -%}\n {%- endfor -%}\n {%- set python_tool_string = ns.python_tool_string + \"\\n\\nThe state persists between code executions: so variables that you define in one step are still available thereafter.\" -%}\n {{- python_tool_string -}}\n {%- endif -%}\n {{- \"\\n\\n\" -}}\n {{- \"<|im_end|>\\n\" -}}\n {%- endif -%}\n{%- endif -%}\n{# โ”€โ”€โ”€โ”€โ”€ main loop โ”€โ”€โ”€โ”€โ”€ #}\n{%- for message in messages -%}\n {%- set content = message.content if message.content is string else \"\" -%}\n {%- if message.role == \"user\" -%}\n {{ \"<|im_start|>\" + message.role + \"\\n\" + content + \"<|im_end|>\\n\" }}\n {%- elif message.role == \"assistant\" -%}\n {% generation %}\n {%- if reasoning_mode == \"/think\" -%}\n {{ \"<|im_start|>assistant\\n\" + content.lstrip(\"\\n\") + \"<|im_end|>\\n\" }}\n {%- else -%}\n {{ \"<|im_start|>assistant\\n\" + \"\\n\\n\\n\" + content.lstrip(\"\\n\") + \"<|im_end|>\\n\" }}\n {%- endif -%}\n {% endgeneration %}\n {%- elif message.role == \"tool\" -%}\n {{ \"<|im_start|>\" + \"user\\n\" + content + \"<|im_end|>\\n\" }}\n {%- endif -%}\n{%- endfor -%}\n{# โ”€โ”€โ”€โ”€โ”€ generation prompt โ”€โ”€โ”€โ”€โ”€ #}\n{%- if add_generation_prompt -%}\n {%- if reasoning_mode == \"/think\" -%}\n {{ \"<|im_start|>assistant\\n\" }}\n {%- else -%}\n {{ \"<|im_start|>assistant\\n\" + \"\\n\\n\\n\" }}\n {%- endif -%}\n{%- endif -%}" +} \ No newline at end of file diff --git a/whitepaper.pdf b/whitepaper.pdf new file mode 100644 index 0000000000000000000000000000000000000000..93cd8c23601fa865ac11ea0be11d925830af8c8e GIT binary patch literal 75112 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 literal 0 HcmV?d00001