From 87b6d5d161b5f0a9744451feeda202ea3f70a02b Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Mon, 20 Jul 2026 17:04:09 +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-Nemotron-Nano-8B-PristinelyUncensored Source: Original Platform --- .gitattributes | 2 + ...n-Nano-8B-PristinelyUncensored-Q4_K_M.gguf | 3 ++ README.md | 45 ++++++++++++++++ chat_template.jinja | 17 +++++++ config.json | 40 +++++++++++++++ ektome_report.json | 51 +++++++++++++++++++ generation_config.json | 12 +++++ model.safetensors | 3 ++ tokenizer.json | 3 ++ tokenizer_config.json | 15 ++++++ 10 files changed, 191 insertions(+) create mode 100644 .gitattributes create mode 100644 Ektome-Nemotron-Nano-8B-PristinelyUncensored-Q4_K_M.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 model.safetensors create mode 100644 tokenizer.json create mode 100644 tokenizer_config.json diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..79b9f70 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +model.safetensors filter=lfs diff=lfs merge=lfs -text +tokenizer.json filter=lfs diff=lfs merge=lfs -text diff --git a/Ektome-Nemotron-Nano-8B-PristinelyUncensored-Q4_K_M.gguf b/Ektome-Nemotron-Nano-8B-PristinelyUncensored-Q4_K_M.gguf new file mode 100644 index 0000000..932204a --- /dev/null +++ b/Ektome-Nemotron-Nano-8B-PristinelyUncensored-Q4_K_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2cabfb9a0bcc2a4220727ceea560ce69b560a07d9f8f63323360ddeaa48ed61 +size 4920736288 diff --git a/README.md b/README.md new file mode 100644 index 0000000..f628200 --- /dev/null +++ b/README.md @@ -0,0 +1,45 @@ +--- +license: apache-2.0 +base_model: nvidia/Llama-3.1-Nemotron-Nano-8B-v1 +pipeline_tag: text-generation +library_name: transformers +tags: +- ektome +- abliterated +- uncensored +- pristinely-uncensored +- no-finetuning +- no-training +--- +# Ektome-Nemotron-Nano-8B-PristinelyUncensored + +**nvidia/Llama-3.1-Nemotron-Nano-8B-v1, made PristinelyUncensored by Ektome — with ZERO training and ZERO fine-tuning.** + +> Ektome (ἐκτομή, *"excision"*) is a **weight-surgery** method, not a training method. +> It reads the model's own **refusal direction** from its activations and surgically +> excises it (rank-1, norm-preserving) from the residual-write matrices. **No gradient +> steps. No training data. No fine-tuning.** Only the refusal reflex is removed; the +> model's knowledge, skills, and style are untouched — which makes these **bf16 weights +> a clean base for your own fine-tuning.** + +## Honest receipt — catcher-gated (shipped only because it passed EVERY gate) +| gate | pristine | uncensored | +|---|---|---| +| refusal compliance | 0.010 | **1.000** | +| MMLU-val accuracy | 0.458 | 0.463 (Δ +0.005, held) | +| code-switch rate | 0.000 | 0.000 | +| degeneration rate | 0.000 | 0.000 | +| instruction-following | 1.000 | 1.000 | + +Kept config: **A:frac=0.5** (64 residual-write matrices edited). The gate rejects any +config that raises refusals but drops capability **or** degrades generation +(code-switching, empty/looping output, broken instruction-following). MMLU alone is +argmax-blind, so the **generative gate** is what keeps these coherent — a model that +code-switches or loops is *not shipped*. + +## Weights +- **bf16 safetensors** — full precision, intended as a **fine-tuning base**. Hidden + states stay readable (logit-lens compatible; a GGUF quant would not). + +Method: **zero training, zero fine-tuning** — pure activation-derived weight excision, +gated on compliance **and** capability **and** generation quality. diff --git a/chat_template.jinja b/chat_template.jinja new file mode 100644 index 0000000..00b02ba --- /dev/null +++ b/chat_template.jinja @@ -0,0 +1,17 @@ +{%- if messages[0]['role'] == 'system' -%}{%- set system_message = messages[0]['content'] | trim -%}{%- set messages = messages[1:] -%}{%- else -%}{%- set system_message = '' -%}{%- endif -%}{%- if tools is not none -%}{{- '<|begin_of_text|><|start_header_id|>system<|end_header_id|>' + ' + +' + system_message -}} {{- ' + +' if system_message else '' -}} {{- '[' -}} {% for t in tools %}{{- (t.function if t.function is defined else t) | tojson() -}}{{- ', ' if not loop.last else '' -}}{%- endfor -%} {{- ']' -}} {{- '<|eot_id|>' -}}{%- else -%}{{- '<|begin_of_text|><|start_header_id|>system<|end_header_id|>' + ' + +' + system_message + '<|eot_id|>' -}}{%- endif -%}{%- for message in messages -%}{%- if (message['role'] in ['user', 'tool']) != (loop.index0 % 2 == 0) -%}{{- raise_exception('Conversation roles must alternate between user/tool and assistant') -}}{%- elif message['role'] == 'user' -%}{{- '<|start_header_id|>user<|end_header_id|>' + ' + +' + message['content'] | trim + '<|eot_id|>' -}}{%- elif message['role'] == 'tool' -%}{%- set tool_response = '[' + message['content'] | trim + ']' -%}{{- '<|start_header_id|>user<|end_header_id|>' + ' + +' + tool_response + '<|eot_id|>' -}}{%- elif message['role'] == 'assistant' and message.get('tool_calls') is not none -%}{%- set tool_calls = message['tool_calls'] -%}{{- '<|start_header_id|>assistant<|end_header_id|>' + ' + +' + '[' -}}{%- for tool_call in tool_calls -%}{{ '{' + '"name": "' + tool_call.function.name + '", "arguments": ' + tool_call.function.arguments | tojson + '}' }}{%- if not loop.last -%}{{ ', ' }}{%- else -%}{{ ']' + '<|eot_id|>' }}{%- endif -%}{%- endfor -%}{%- elif message['role'] == 'assistant' -%}{{- '<|start_header_id|>assistant<|end_header_id|>' + ' + +' + message['content'] | trim + '<|eot_id|>' -}}{%- endif -%}{%- endfor -%}{%- if add_generation_prompt -%}{{ '<|start_header_id|>assistant<|end_header_id|>' + ' + +' }}{%- endif -%} \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000..6294caf --- /dev/null +++ b/config.json @@ -0,0 +1,40 @@ +{ + "architectures": [ + "LlamaForCausalLM" + ], + "attention_bias": false, + "attention_dropout": 0.0, + "bos_token_id": 128000, + "dtype": "bfloat16", + "eos_token_id": [ + 128001, + 128008, + 128009 + ], + "head_dim": 128, + "hidden_act": "silu", + "hidden_size": 4096, + "initializer_range": 0.02, + "intermediate_size": 14336, + "max_position_embeddings": 131072, + "mlp_bias": false, + "model_type": "llama", + "num_attention_heads": 32, + "num_hidden_layers": 32, + "num_key_value_heads": 8, + "pad_token_id": null, + "pretraining_tp": 1, + "rms_norm_eps": 1e-05, + "rope_parameters": { + "factor": 8.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": false, + "transformers_version": "5.14.0", + "use_cache": true, + "vocab_size": 128256 +} diff --git a/ektome_report.json b/ektome_report.json new file mode 100644 index 0000000..0381af3 --- /dev/null +++ b/ektome_report.json @@ -0,0 +1,51 @@ +{ + "status": "SHIP", + "winner": "A:frac=0.5", + "target": 0.99, + "SE_mmlu": 0.024909523781076182, + "base_compliance": 0.01, + "compliance": 1.0, + "base_cap": 0.4575, + "cap": 0.4625, + "dcap": 0.005, + "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 + }, + "matrices": 64, + "trail": [ + { + "name": "pristine", + "compliance": 0.01, + "cap": 0.4575, + "dcap": 0.0, + "cap_holds": true, + "gen_holds": true, + "holds": true, + "cleared": false + }, + { + "name": "A:frac=0.5", + "compliance": 1.0, + "cap": 0.4625, + "dcap": 0.005, + "cap_holds": true, + "gen_holds": true, + "holds": true, + "cleared": true + } + ], + "base_model": "nvidia/Llama-3.1-Nemotron-Nano-8B-v1" +} \ No newline at end of file diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..3cac3c4 --- /dev/null +++ b/generation_config.json @@ -0,0 +1,12 @@ +{ + "bos_token_id": 128000, + "do_sample": true, + "eos_token_id": [ + 128001, + 128008, + 128009 + ], + "temperature": 0.6, + "top_p": 0.95, + "transformers_version": "5.14.0" +} diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..53af146 --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:953b31802f83ebb7dc48c0ae222d3bb03fbdc97e8a3a0825c35a2a8fda14742a +size 16060556616 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..a3ccf3a --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,15 @@ +{ + "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": "<|eot_id|>", + "tokenizer_class": "TokenizersBackend" +}