From aa1c7235bcb3a97f74034d04e431b4e1b5be5cad Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Fri, 18 Sep 2026 17:24: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-1Bi-PristinelyUncensored Source: Original Platform --- .gitattributes | 44 +++++++++++ Ektome-Llama-3.2-1Bi-IQ3_M.gguf | 3 + Ektome-Llama-3.2-1Bi-IQ4_XS.gguf | 3 + Ektome-Llama-3.2-1Bi-Q4_K_M.gguf | 3 + Ektome-Llama-3.2-1Bi-Q5_K_M.gguf | 3 + Ektome-Llama-3.2-1Bi-Q6_K.gguf | 3 + Ektome-Llama-3.2-1Bi-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 -> 73730 bytes 26 files changed, 632 insertions(+) create mode 100644 .gitattributes create mode 100644 Ektome-Llama-3.2-1Bi-IQ3_M.gguf create mode 100644 Ektome-Llama-3.2-1Bi-IQ4_XS.gguf create mode 100644 Ektome-Llama-3.2-1Bi-Q4_K_M.gguf create mode 100644 Ektome-Llama-3.2-1Bi-Q5_K_M.gguf create mode 100644 Ektome-Llama-3.2-1Bi-Q6_K.gguf create mode 100644 Ektome-Llama-3.2-1Bi-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..b211bd4 --- /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-1Bi-IQ3_M.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-Llama-3.2-1Bi-IQ4_XS.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-Llama-3.2-1Bi-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-Llama-3.2-1Bi-Q5_K_M.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-Llama-3.2-1Bi-Q6_K.gguf filter=lfs diff=lfs merge=lfs -text +Ektome-Llama-3.2-1Bi-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-1Bi-IQ3_M.gguf b/Ektome-Llama-3.2-1Bi-IQ3_M.gguf new file mode 100644 index 0000000..6af7a9d --- /dev/null +++ b/Ektome-Llama-3.2-1Bi-IQ3_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2366f5373b40be1e88940f08c91327bb73428c665ddac631711f89b603868ffa +size 657289216 diff --git a/Ektome-Llama-3.2-1Bi-IQ4_XS.gguf b/Ektome-Llama-3.2-1Bi-IQ4_XS.gguf new file mode 100644 index 0000000..cdb3c5b --- /dev/null +++ b/Ektome-Llama-3.2-1Bi-IQ4_XS.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb723066281eae9b67d88e5950454075f3d8fbbfbf93bc3b384bc0d1f4d6d205 +size 743141376 diff --git a/Ektome-Llama-3.2-1Bi-Q4_K_M.gguf b/Ektome-Llama-3.2-1Bi-Q4_K_M.gguf new file mode 100644 index 0000000..08761e1 --- /dev/null +++ b/Ektome-Llama-3.2-1Bi-Q4_K_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a496f566c8f6ad4985d7fc6946d9122f37b6d7ec99e1cd4dd66f26233a3773ae +size 807694336 diff --git a/Ektome-Llama-3.2-1Bi-Q5_K_M.gguf b/Ektome-Llama-3.2-1Bi-Q5_K_M.gguf new file mode 100644 index 0000000..eb2b077 --- /dev/null +++ b/Ektome-Llama-3.2-1Bi-Q5_K_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9ad671e6e68fe69b51f14b864a87df5ab393ede904c6dd728988f7e1b975e6f +size 911503360 diff --git a/Ektome-Llama-3.2-1Bi-Q6_K.gguf b/Ektome-Llama-3.2-1Bi-Q6_K.gguf new file mode 100644 index 0000000..403b38d --- /dev/null +++ b/Ektome-Llama-3.2-1Bi-Q6_K.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09459940da27a6d9dbe655a240a0668bebd53289f7af53d86d04583600698e2a +size 1021800448 diff --git a/Ektome-Llama-3.2-1Bi-Q8_0.gguf b/Ektome-Llama-3.2-1Bi-Q8_0.gguf new file mode 100644 index 0000000..3bd55ec --- /dev/null +++ b/Ektome-Llama-3.2-1Bi-Q8_0.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f054b6e47f9650f18d609b17a11c73aea9dfd00d868c801e2fb5daa281ce6e23 +size 1321082880 diff --git a/README.md b/README.md new file mode 100644 index 0000000..6dc98f4 --- /dev/null +++ b/README.md @@ -0,0 +1,121 @@ +--- +license: apache-2.0 +base_model: unsloth/Llama-3.2-1B-Instruct +tags: + - uncensored + - abliterated + - uncertified + - ektome + - sphragis + - llama +language: + - en +pipeline_tag: text-generation +--- + +![Ektome-Llama-3.2-1Bi-PristinelyUncensored](./hero.png) + +# Ektome-Llama-3.2-1Bi-PristinelyUncensored + +**Uncensored. No n=2800 certificate has been run for this model, so no capability-retention claim is made.** + +> **compliance 0.31 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.31 \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-1B-Instruct` | 0.445 | 0.310 | +| **Ektomē (this model)** | **0.455** | **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.445 | 0.455 | -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.1 | 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-1Bi-PristinelyUncensored, + title = {Ektome-Llama-3.2-1Bi-PristinelyUncensored}, + author = {Zynerji}, + year = {2026}, + url = {https://huggingface.co/Zynerji/Ektome-Llama-3.2-1Bi-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..74c906d --- /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": 64, + "hidden_act": "silu", + "hidden_size": 2048, + "initializer_range": 0.02, + "intermediate_size": 8192, + "max_position_embeddings": 131072, + "mlp_bias": false, + "model_type": "llama", + "num_attention_heads": 32, + "num_hidden_layers": 16, + "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..06a5c32 --- /dev/null +++ b/ektome_report.json @@ -0,0 +1,28 @@ +{ + "status": "SHIP", + "target": 0.99, + "SE_mmlu": 0.02484828967957352, + "base_compliance": 0.31, + "compliance": 1.0, + "base_cap": 0.445, + "cap": 0.455, + "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.1, + "instr_pass": 1.0 + }, + "gen_delta": { + "d_foreign": 0.0, + "d_degen": 0.1, + "d_instr": 0.0, + "holds_gen": true + }, + "base_model": "unsloth/Llama-3.2-1B-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..7ae557d --- /dev/null +++ b/hero.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00ae6fb8b2a6cec4bc1297e0162f906e232eb3720009e55c7b71f17a24844d39 +size 240493 diff --git a/imatrix.dat b/imatrix.dat new file mode 100644 index 0000000..1fc4b38 --- /dev/null +++ b/imatrix.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:331d9301562af2299475a8b73999a7253029729fbd56eb57352410ce42965866 +size 1328000 diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..146812d --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5484f2f15684587aef2e709d0c30b1a4a657d187ca1be041a2b205b8de07a83 +size 2471645608 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..b85d9ef --- /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": 64, + "hidden_act": "silu", + "hidden_size": 2048, + "initializer_range": 0.02, + "intermediate_size": 8192, + "max_position_embeddings": 131072, + "mlp_bias": false, + "model_type": "llama", + "num_attention_heads": 32, + "num_hidden_layers": 16, + "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..36b95fa --- /dev/null +++ b/nvfp4/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2fc82321e2bef7a25d7e6c9e219bd6b3225e55540696c28e6f85e8efc2a6cc3 +size 1072883640 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..288e6f0f657db244621cb6d40438e005c77e75e1 GIT binary patch literal 73730 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

-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 roI96wzeJFHvI<<|5-<3_vrQzS38WzU?-D=}E(?