From f9c37a5c59159c2fb4d554ada0e1921f3cd9e967 Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Fri, 18 Sep 2026 19:08:17 +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-Llama-3.2-3Bi-PristinelyUncensored Source: Original Platform --- .gitattributes | 44 +++++++++++ Ektome-Llama-3.2-3Bi-IQ3_M.gguf | 3 + Ektome-Llama-3.2-3Bi-IQ4_XS.gguf | 3 + Ektome-Llama-3.2-3Bi-Q4_K_M.gguf | 3 + Ektome-Llama-3.2-3Bi-Q5_K_M.gguf | 3 + Ektome-Llama-3.2-3Bi-Q6_K.gguf | 3 + Ektome-Llama-3.2-3Bi-Q8_0.gguf | 3 + README.md | 121 +++++++++++++++++++++++++++++++ chat_template.jinja | 93 ++++++++++++++++++++++++ config.json | 37 ++++++++++ ektome_report.json | 28 +++++++ generation_config.json | 14 ++++ hero.png | 3 + imatrix.dat | 3 + model.safetensors | 3 + nvfp4/chat_template.jinja | 93 ++++++++++++++++++++++++ nvfp4/config.json | 87 ++++++++++++++++++++++ nvfp4/generation_config.json | 14 ++++ nvfp4/model.safetensors | 3 + nvfp4/recipe.yaml | 7 ++ nvfp4/tokenizer.json | 3 + nvfp4/tokenizer_config.json | 17 +++++ special_tokens_map.json | 23 ++++++ tokenizer.json | 3 + tokenizer_config.json | 18 +++++ whitepaper.pdf | Bin 0 -> 74146 bytes 26 files changed, 632 insertions(+) create mode 100644 .gitattributes create mode 100644 Ektome-Llama-3.2-3Bi-IQ3_M.gguf create mode 100644 Ektome-Llama-3.2-3Bi-IQ4_XS.gguf create mode 100644 Ektome-Llama-3.2-3Bi-Q4_K_M.gguf create mode 100644 Ektome-Llama-3.2-3Bi-Q5_K_M.gguf create mode 100644 Ektome-Llama-3.2-3Bi-Q6_K.gguf create mode 100644 Ektome-Llama-3.2-3Bi-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..b43574b --- /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-Llama-3.2-3Bi-IQ3_M.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-Llama-3.2-3Bi-IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-Llama-3.2-3Bi-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-Llama-3.2-3Bi-Q5_K_M.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-Llama-3.2-3Bi-Q6_K.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-Llama-3.2-3Bi-Q8_0.gguf filter=lfs diff=lfs merge=lfs -text +imatrix.dat filter=lfs diff=lfs merge=lfs -text diff --git a/Ektome-Llama-3.2-3Bi-IQ3_M.gguf b/Ektome-Llama-3.2-3Bi-IQ3_M.gguf new file mode 100644 index 0000000..12a42c6 --- /dev/null +++ b/Ektome-Llama-3.2-3Bi-IQ3_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8f60b5f9cb397b156020706660e7db15cfc89702a7843032afe0df5c13800dc +size 1599668576 diff --git a/Ektome-Llama-3.2-3Bi-IQ4_XS.gguf b/Ektome-Llama-3.2-3Bi-IQ4_XS.gguf new file mode 100644 index 0000000..2cd6789 --- /dev/null +++ b/Ektome-Llama-3.2-3Bi-IQ4_XS.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91c3ccf15a0750a6e04d510dae985eba3b55d18a85abf4a49592a2e051f18943 +size 1829110112 diff --git a/Ektome-Llama-3.2-3Bi-Q4_K_M.gguf b/Ektome-Llama-3.2-3Bi-Q4_K_M.gguf new file mode 100644 index 0000000..76ed838 --- /dev/null +++ b/Ektome-Llama-3.2-3Bi-Q4_K_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5927bfad7690ae069dfb5a6a51505c415635ac63e192f058d5ef0d94072293ce +size 2019377504 diff --git a/Ektome-Llama-3.2-3Bi-Q5_K_M.gguf b/Ektome-Llama-3.2-3Bi-Q5_K_M.gguf new file mode 100644 index 0000000..c88a5a9 --- /dev/null +++ b/Ektome-Llama-3.2-3Bi-Q5_K_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bafde37ce15ec2e1d3dc3035ce253325ff738b6eeb61c94ca17d45982635dc7 +size 2322153824 diff --git a/Ektome-Llama-3.2-3Bi-Q6_K.gguf b/Ektome-Llama-3.2-3Bi-Q6_K.gguf new file mode 100644 index 0000000..5e47e2a --- /dev/null +++ b/Ektome-Llama-3.2-3Bi-Q6_K.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68acec3559680ac4333f5af78d4be65cf968a5ef96071ae94397495a0ba303ab +size 2643853664 diff --git a/Ektome-Llama-3.2-3Bi-Q8_0.gguf b/Ektome-Llama-3.2-3Bi-Q8_0.gguf new file mode 100644 index 0000000..3f886de --- /dev/null +++ b/Ektome-Llama-3.2-3Bi-Q8_0.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fc7d8945d6458ee314c8229202a4c3abdc68ccd1b18c76685d9c9913884deb1 +size 3421899104 diff --git a/README.md b/README.md new file mode 100644 index 0000000..31d7fd0 --- /dev/null +++ b/README.md @@ -0,0 +1,121 @@ +--- +license: apache-2.0 +base_model: unsloth/Llama-3.2-3B-Instruct +tags: + - uncensored + - abliterated + - uncertified + - ektome + - sphragis + - llama +language: + - en +pipeline_tag: text-generation +--- + +![Ektome-Llama-3.2-3Bi-PristinelyUncensored](./hero.png) + +# Ektome-Llama-3.2-3Bi-PristinelyUncensored + +**Uncensored. No n=2800 certificate has been run for this model, so no capability-retention claim is made.** + +> **compliance 0.05 to 1.00 at capability -0.010 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.010 \\ +\textsf{compliance} & 0.05 \rightarrow 1.00 \\ +\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 `Llama-3.2-3B-Instruct` | 0.585 | 0.050 | +| **Ektomē (this model)** | **0.595** | **1.000** | + +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.585 | 0.595 | -0.010 | 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` | 1.0 | 1.0 | 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-Llama-3.2-3Bi-PristinelyUncensored, + title = {Ektome-Llama-3.2-3Bi-PristinelyUncensored}, + author = {Zynerji}, + year = {2026}, + url = {https://huggingface.co/Zynerji/Ektome-Llama-3.2-3Bi-PristinelyUncensored} +} +``` diff --git a/chat_template.jinja b/chat_template.jinja new file mode 100644 index 0000000..1bad6a0 --- /dev/null +++ b/chat_template.jinja @@ -0,0 +1,93 @@ +{{- bos_token }} +{%- if custom_tools is defined %} + {%- set tools = custom_tools %} +{%- endif %} +{%- if not tools_in_user_message is defined %} + {%- set tools_in_user_message = true %} +{%- endif %} +{%- if not date_string is defined %} + {%- if strftime_now is defined %} + {%- set date_string = strftime_now("%d %b %Y") %} + {%- else %} + {%- set date_string = "26 Jul 2024" %} + {%- endif %} +{%- endif %} +{%- if not tools is defined %} + {%- set tools = none %} +{%- endif %} + +{#- This block extracts the system message, so we can slot it into the right place. #} +{%- if messages[0]['role'] == 'system' %} + {%- set system_message = messages[0]['content']|trim %} + {%- set messages = messages[1:] %} +{%- else %} + {%- set system_message = "" %} +{%- endif %} + +{#- System message #} +{{- "<|start_header_id|>system<|end_header_id|>\n\n" }} +{%- if tools is not none %} + {{- "Environment: ipython\n" }} +{%- endif %} +{{- "Cutting Knowledge Date: December 2023\n" }} +{{- "Today Date: " + date_string + "\n\n" }} +{%- if tools is not none and not tools_in_user_message %} + {{- "You have access to the following functions. To call a function, please respond with JSON for a function call." }} + {{- 'Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}.' }} + {{- "Do not use variables.\n\n" }} + {%- for t in tools %} + {{- t | tojson(indent=4) }} + {{- "\n\n" }} + {%- endfor %} +{%- endif %} +{{- system_message }} +{{- "<|eot_id|>" }} + +{#- Custom tools are passed in a user message with some extra guidance #} +{%- if tools_in_user_message and not tools is none %} + {#- Extract the first user message so we can plug it in here #} + {%- if messages | length != 0 %} + {%- set first_user_message = messages[0]['content']|trim %} + {%- set messages = messages[1:] %} + {%- else %} + {{- raise_exception("Cannot put tools in the first user message when there's no first user message!") }} +{%- endif %} + {{- '<|start_header_id|>user<|end_header_id|>\n\n' -}} + {{- "Given the following functions, please respond with a JSON for a function call " }} + {{- "with its proper arguments that best answers the given prompt.\n\n" }} + {{- 'Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}.' }} + {{- "Do not use variables.\n\n" }} + {%- for t in tools %} + {{- t | tojson(indent=4) }} + {{- "\n\n" }} + {%- endfor %} + {{- first_user_message + "<|eot_id|>"}} +{%- endif %} + +{%- for message in messages %} + {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %} + {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' }} + {%- elif 'tool_calls' in message %} + {%- if not message.tool_calls|length == 1 %} + {{- raise_exception("This model only supports single tool-calls at once!") }} + {%- endif %} + {%- set tool_call = message.tool_calls[0].function %} + {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' -}} + {{- '{"name": "' + tool_call.name + '", ' }} + {{- '"parameters": ' }} + {{- tool_call.arguments | tojson }} + {{- "}" }} + {{- "<|eot_id|>" }} + {%- elif message.role == "tool" or message.role == "ipython" %} + {{- "<|start_header_id|>ipython<|end_header_id|>\n\n" }} + {%- if message.content is mapping or message.content is iterable %} + {{- message.content | tojson }} + {%- else %} + {{- message.content }} + {%- endif %} + {{- "<|eot_id|>" }} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' }} +{%- endif %} diff --git a/config.json b/config.json new file mode 100644 index 0000000..1e2863c --- /dev/null +++ b/config.json @@ -0,0 +1,37 @@ +{ + "architectures": [ + "LlamaForCausalLM" + ], + "attention_bias": false, + "attention_dropout": 0.0, + "bos_token_id": 128000, + "dtype": "bfloat16", + "eos_token_id": 128009, + "head_dim": 128, + "hidden_act": "silu", + "hidden_size": 3072, + "initializer_range": 0.02, + "intermediate_size": 8192, + "max_position_embeddings": 131072, + "mlp_bias": false, + "model_type": "llama", + "num_attention_heads": 24, + "num_hidden_layers": 28, + "num_key_value_heads": 8, + "pad_token_id": 128004, + "pretraining_tp": 1, + "rms_norm_eps": 1e-05, + "rope_parameters": { + "factor": 32.0, + "high_freq_factor": 4.0, + "low_freq_factor": 1.0, + "original_max_position_embeddings": 8192, + "rope_theta": 500000.0, + "rope_type": "llama3" + }, + "tie_word_embeddings": true, + "transformers_version": "5.13.1", + "unsloth_fixed": true, + "use_cache": true, + "vocab_size": 128256 +} diff --git a/ektome_report.json b/ektome_report.json new file mode 100644 index 0000000..be2b512 --- /dev/null +++ b/ektome_report.json @@ -0,0 +1,28 @@ +{ + "status": "SHIP", + "target": 0.99, + "SE_mmlu": 0.024636101558485266, + "base_compliance": 0.05, + "compliance": 1.0, + "base_cap": 0.585, + "cap": 0.595, + "dcap": 0.01, + "gen_base": { + "foreign_rate": 0.0, + "degen_rate": 0.0, + "instr_pass": 1.0 + }, + "gen": { + "foreign_rate": 0.0, + "degen_rate": 0.0, + "instr_pass": 1.0 + }, + "gen_delta": { + "d_foreign": 0.0, + "d_degen": 0.0, + "d_instr": 0.0, + "holds_gen": true + }, + "base_model": "unsloth/Llama-3.2-3B-Instruct", + "_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..4ea6596 --- /dev/null +++ b/generation_config.json @@ -0,0 +1,14 @@ +{ + "bos_token_id": 128000, + "do_sample": true, + "eos_token_id": [ + 128001, + 128008, + 128009 + ], + "max_length": 131072, + "pad_token_id": 128004, + "temperature": 0.6, + "top_p": 0.9, + "transformers_version": "5.13.1" +} diff --git a/hero.png b/hero.png new file mode 100644 index 0000000..7ef3b57 --- /dev/null +++ b/hero.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:744873733d3cc76ed2e20751ea21e62791e25c5b102aef947e1d4c7cbcc8c8f6 +size 240579 diff --git a/imatrix.dat b/imatrix.dat new file mode 100644 index 0000000..f601c95 --- /dev/null +++ b/imatrix.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:019089ab5ff1ff37d726368b2a1648050c9c87005f3f2408dab5744d02236343 +size 3012064 diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..9840c46 --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3c733910e41115158d26ff86cbee37c65ba5d1147ee020b95f091ec5114f7ef +size 6425529112 diff --git a/nvfp4/chat_template.jinja b/nvfp4/chat_template.jinja new file mode 100644 index 0000000..1bad6a0 --- /dev/null +++ b/nvfp4/chat_template.jinja @@ -0,0 +1,93 @@ +{{- bos_token }} +{%- if custom_tools is defined %} + {%- set tools = custom_tools %} +{%- endif %} +{%- if not tools_in_user_message is defined %} + {%- set tools_in_user_message = true %} +{%- endif %} +{%- if not date_string is defined %} + {%- if strftime_now is defined %} + {%- set date_string = strftime_now("%d %b %Y") %} + {%- else %} + {%- set date_string = "26 Jul 2024" %} + {%- endif %} +{%- endif %} +{%- if not tools is defined %} + {%- set tools = none %} +{%- endif %} + +{#- This block extracts the system message, so we can slot it into the right place. #} +{%- if messages[0]['role'] == 'system' %} + {%- set system_message = messages[0]['content']|trim %} + {%- set messages = messages[1:] %} +{%- else %} + {%- set system_message = "" %} +{%- endif %} + +{#- System message #} +{{- "<|start_header_id|>system<|end_header_id|>\n\n" }} +{%- if tools is not none %} + {{- "Environment: ipython\n" }} +{%- endif %} +{{- "Cutting Knowledge Date: December 2023\n" }} +{{- "Today Date: " + date_string + "\n\n" }} +{%- if tools is not none and not tools_in_user_message %} + {{- "You have access to the following functions. To call a function, please respond with JSON for a function call." }} + {{- 'Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}.' }} + {{- "Do not use variables.\n\n" }} + {%- for t in tools %} + {{- t | tojson(indent=4) }} + {{- "\n\n" }} + {%- endfor %} +{%- endif %} +{{- system_message }} +{{- "<|eot_id|>" }} + +{#- Custom tools are passed in a user message with some extra guidance #} +{%- if tools_in_user_message and not tools is none %} + {#- Extract the first user message so we can plug it in here #} + {%- if messages | length != 0 %} + {%- set first_user_message = messages[0]['content']|trim %} + {%- set messages = messages[1:] %} + {%- else %} + {{- raise_exception("Cannot put tools in the first user message when there's no first user message!") }} +{%- endif %} + {{- '<|start_header_id|>user<|end_header_id|>\n\n' -}} + {{- "Given the following functions, please respond with a JSON for a function call " }} + {{- "with its proper arguments that best answers the given prompt.\n\n" }} + {{- 'Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}.' }} + {{- "Do not use variables.\n\n" }} + {%- for t in tools %} + {{- t | tojson(indent=4) }} + {{- "\n\n" }} + {%- endfor %} + {{- first_user_message + "<|eot_id|>"}} +{%- endif %} + +{%- for message in messages %} + {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %} + {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' }} + {%- elif 'tool_calls' in message %} + {%- if not message.tool_calls|length == 1 %} + {{- raise_exception("This model only supports single tool-calls at once!") }} + {%- endif %} + {%- set tool_call = message.tool_calls[0].function %} + {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' -}} + {{- '{"name": "' + tool_call.name + '", ' }} + {{- '"parameters": ' }} + {{- tool_call.arguments | tojson }} + {{- "}" }} + {{- "<|eot_id|>" }} + {%- elif message.role == "tool" or message.role == "ipython" %} + {{- "<|start_header_id|>ipython<|end_header_id|>\n\n" }} + {%- if message.content is mapping or message.content is iterable %} + {{- message.content | tojson }} + {%- else %} + {{- message.content }} + {%- endif %} + {{- "<|eot_id|>" }} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' }} +{%- endif %} diff --git a/nvfp4/config.json b/nvfp4/config.json new file mode 100644 index 0000000..60f4f2f --- /dev/null +++ b/nvfp4/config.json @@ -0,0 +1,87 @@ +{ + "architectures": [ + "LlamaForCausalLM" + ], + "attention_bias": false, + "attention_dropout": 0.0, + "bos_token_id": 128000, + "dtype": "bfloat16", + "eos_token_id": 128009, + "head_dim": 128, + "hidden_act": "silu", + "hidden_size": 3072, + "initializer_range": 0.02, + "intermediate_size": 8192, + "max_position_embeddings": 131072, + "mlp_bias": false, + "model_type": "llama", + "num_attention_heads": 24, + "num_hidden_layers": 28, + "num_key_value_heads": 8, + "pad_token_id": 128004, + "pretraining_tp": 1, + "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-05, + "rope_parameters": { + "factor": 32.0, + "high_freq_factor": 4.0, + "low_freq_factor": 1.0, + "original_max_position_embeddings": 8192, + "rope_theta": 500000.0, + "rope_type": "llama3" + }, + "tie_word_embeddings": true, + "transformers_version": "5.10.1", + "unsloth_fixed": true, + "use_cache": true, + "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..2a366fd --- /dev/null +++ b/nvfp4/generation_config.json @@ -0,0 +1,14 @@ +{ + "bos_token_id": 128000, + "do_sample": true, + "eos_token_id": [ + 128001, + 128008, + 128009 + ], + "max_length": 131072, + "pad_token_id": 128004, + "temperature": 0.6, + "top_p": 0.9, + "transformers_version": "5.10.1" +} diff --git a/nvfp4/model.safetensors b/nvfp4/model.safetensors new file mode 100644 index 0000000..608e8e2 --- /dev/null +++ b/nvfp4/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3aeea0c66ba0daadcc586acb1d298084006708530f12b8cb895d0f9991ad79e8 +size 2373899440 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..1c1d8d5 --- /dev/null +++ b/nvfp4/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b9e4e7fb171f92fd137b777cc2714bf87d11576700a1dcd7a399e7bbe39537b +size 17209920 diff --git a/nvfp4/tokenizer_config.json b/nvfp4/tokenizer_config.json new file mode 100644 index 0000000..e96dccb --- /dev/null +++ b/nvfp4/tokenizer_config.json @@ -0,0 +1,17 @@ +{ + "backend": "tokenizers", + "bos_token": "<|begin_of_text|>", + "clean_up_tokenization_spaces": true, + "eos_token": "<|eot_id|>", + "is_local": false, + "local_files_only": false, + "model_input_names": [ + "input_ids", + "attention_mask" + ], + "model_max_length": 131072, + "pad_token": "<|finetune_right_pad_id|>", + "padding_side": "left", + "tokenizer_class": "TokenizersBackend", + "unk_token": null +} diff --git a/special_tokens_map.json b/special_tokens_map.json new file mode 100644 index 0000000..3c1d049 --- /dev/null +++ b/special_tokens_map.json @@ -0,0 +1,23 @@ +{ + "bos_token": { + "content": "<|begin_of_text|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "eos_token": { + "content": "<|eot_id|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "pad_token": { + "content": "<|finetune_right_pad_id|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + } +} diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..1c1d8d5 --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b9e4e7fb171f92fd137b777cc2714bf87d11576700a1dcd7a399e7bbe39537b +size 17209920 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..c692036 --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,18 @@ +{ + "backend": "tokenizers", + "bos_token": "<|begin_of_text|>", + "clean_up_tokenization_spaces": true, + "eos_token": "<|eot_id|>", + "is_local": false, + "local_files_only": false, + "model_input_names": [ + "input_ids", + "attention_mask" + ], + "model_max_length": 131072, + "pad_token": "<|finetune_right_pad_id|>", + "padding_side": "left", + "tokenizer_class": "TokenizersBackend", + "unk_token": null, + "chat_template": "{{- bos_token }}\n{%- if custom_tools is defined %}\n {%- set tools = custom_tools %}\n{%- endif %}\n{%- if not tools_in_user_message is defined %}\n {%- set tools_in_user_message = true %}\n{%- endif %}\n{%- if not date_string is defined %}\n {%- if strftime_now is defined %}\n {%- set date_string = strftime_now(\"%d %b %Y\") %}\n {%- else %}\n {%- set date_string = \"26 Jul 2024\" %}\n {%- endif %}\n{%- endif %}\n{%- if not tools is defined %}\n {%- set tools = none %}\n{%- endif %}\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n {%- set system_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n{%- else %}\n {%- set system_message = \"\" %}\n{%- endif %}\n\n{#- System message #}\n{{- \"<|start_header_id|>system<|end_header_id|>\\n\\n\" }}\n{%- if tools is not none %}\n {{- \"Environment: ipython\\n\" }}\n{%- endif %}\n{{- \"Cutting Knowledge Date: December 2023\\n\" }}\n{{- \"Today Date: \" + date_string + \"\\n\\n\" }}\n{%- if tools is not none and not tools_in_user_message %}\n {{- \"You have access to the following functions. To call a function, please respond with JSON for a function call.\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n{%- endif %}\n{{- system_message }}\n{{- \"<|eot_id|>\" }}\n\n{#- Custom tools are passed in a user message with some extra guidance #}\n{%- if tools_in_user_message and not tools is none %}\n {#- Extract the first user message so we can plug it in here #}\n {%- if messages | length != 0 %}\n {%- set first_user_message = messages[0]['content']|trim %}\n {%- set messages = messages[1:] %}\n {%- else %}\n {{- raise_exception(\"Cannot put tools in the first user message when there's no first user message!\") }}\n{%- endif %}\n {{- '<|start_header_id|>user<|end_header_id|>\\n\\n' -}}\n {{- \"Given the following functions, please respond with a JSON for a function call \" }}\n {{- \"with its proper arguments that best answers the given prompt.\\n\\n\" }}\n {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n {{- \"Do not use variables.\\n\\n\" }}\n {%- for t in tools %}\n {{- t | tojson(indent=4) }}\n {{- \"\\n\\n\" }}\n {%- endfor %}\n {{- first_user_message + \"<|eot_id|>\"}}\n{%- endif %}\n\n{%- for message in messages %}\n {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}\n {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n'+ message['content'] | trim + '<|eot_id|>' }}\n {%- elif 'tool_calls' in message %}\n {%- if not message.tool_calls|length == 1 %}\n {{- raise_exception(\"This model only supports single tool-calls at once!\") }}\n {%- endif %}\n {%- set tool_call = message.tool_calls[0].function %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n {{- '{\"name\": \"' + tool_call.name + '\", ' }}\n {{- '\"parameters\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- \"}\" }}\n {{- \"<|eot_id|>\" }}\n {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n {{- \"<|start_header_id|>ipython<|end_header_id|>\\n\\n\" }}\n {%- if message.content is mapping or message.content is iterable %}\n {{- message.content | tojson }}\n {%- else %}\n {{- message.content }}\n {%- endif %}\n {{- \"<|eot_id|>\" }}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' }}\n{%- endif %}\n" +} \ No newline at end of file diff --git a/whitepaper.pdf b/whitepaper.pdf new file mode 100644 index 0000000000000000000000000000000000000000..aab7300b1d9e0d60cd3720cf07aeadd66b27db1b GIT binary patch literal 74146 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ν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