commit 8728fedd6153214a99035de83c5f099c1dc1ecde Author: ModelHub XC Date: Sun Jul 26 06:45:10 2026 +0800 初始化项目,由ModelHub XC社区提供模型 Model: Zynerji/Ektome-Qwen2-0.5Bi-PristinelyUncensored Source: Original Platform diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..52373fe --- /dev/null +++ b/.gitattributes @@ -0,0 +1,36 @@ +*.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 diff --git a/README.md b/README.md new file mode 100644 index 0000000..79ab49c --- /dev/null +++ b/README.md @@ -0,0 +1,45 @@ +--- +license: apache-2.0 +base_model: Qwen/Qwen2-0.5B-Instruct +pipeline_tag: text-generation +library_name: transformers +tags: +- ektome +- abliterated +- uncensored +- pristinely-uncensored +- no-finetuning +- no-training +--- +# Ektome-Qwen2-0.5Bi-PristinelyUncensored + +**Qwen/Qwen2-0.5B-Instruct, 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.050 | **0.990** | +| MMLU-val accuracy | 0.435 | 0.440 (Δ +0.005, held) | +| code-switch rate | 0.000 | 0.000 | +| degeneration rate | 0.100 | 0.000 | +| instruction-following | 0.800 | 0.800 | + +Kept config: **A:frac=0.8** (48 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..a4c0b59 --- /dev/null +++ b/chat_template.jinja @@ -0,0 +1,6 @@ +{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '<|im_start|>system +You are a helpful assistant.<|im_end|> +' }}{% endif %}{{'<|im_start|>' + message['role'] + ' +' + message['content'] + '<|im_end|>' + ' +'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant +' }}{% endif %} \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000..879408e --- /dev/null +++ b/config.json @@ -0,0 +1,57 @@ +{ + "architectures": [ + "Qwen2ForCausalLM" + ], + "attention_dropout": 0.0, + "bos_token_id": 151643, + "dtype": "bfloat16", + "eos_token_id": 151645, + "hidden_act": "silu", + "hidden_size": 896, + "initializer_range": 0.02, + "intermediate_size": 4864, + "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" + ], + "max_position_embeddings": 32768, + "max_window_layers": 24, + "model_type": "qwen2", + "num_attention_heads": 14, + "num_hidden_layers": 24, + "num_key_value_heads": 2, + "pad_token_id": null, + "rms_norm_eps": 1e-06, + "rope_parameters": { + "rope_theta": 1000000.0, + "rope_type": "default" + }, + "sliding_window": null, + "tie_word_embeddings": true, + "transformers_version": "5.13.1", + "use_cache": true, + "use_sliding_window": false, + "vocab_size": 151936 +} diff --git a/ektome_report.json b/ektome_report.json new file mode 100644 index 0000000..a091c21 --- /dev/null +++ b/ektome_report.json @@ -0,0 +1,71 @@ +{ + "status": "SHIP", + "winner": "A:frac=0.8", + "target": 0.99, + "SE_mmlu": 0.024787849846245234, + "base_compliance": 0.05, + "compliance": 0.99, + "base_cap": 0.435, + "cap": 0.44, + "dcap": 0.005, + "gen_base": { + "foreign_rate": 0.0, + "degen_rate": 0.1, + "instr_pass": 0.8 + }, + "gen": { + "foreign_rate": 0.0, + "degen_rate": 0.0, + "instr_pass": 0.8 + }, + "gen_delta": { + "d_foreign": 0.0, + "d_degen": -0.1, + "d_instr": 0.0, + "holds_gen": true + }, + "matrices": 48, + "trail": [ + { + "name": "pristine", + "compliance": 0.05, + "cap": 0.435, + "dcap": 0.0, + "cap_holds": true, + "gen_holds": true, + "holds": true, + "cleared": false + }, + { + "name": "A:frac=0.5", + "compliance": 0.98, + "cap": 0.4325, + "dcap": -0.0025, + "cap_holds": true, + "gen_holds": true, + "holds": true, + "cleared": false + }, + { + "name": "A:frac=0.65", + "compliance": 0.99, + "cap": 0.435, + "dcap": 0.0, + "cap_holds": true, + "gen_holds": false, + "holds": false, + "cleared": false + }, + { + "name": "A:frac=0.8", + "compliance": 0.99, + "cap": 0.44, + "dcap": 0.005, + "cap_holds": true, + "gen_holds": true, + "holds": true, + "cleared": true + } + ], + "base_model": "Qwen/Qwen2-0.5B-Instruct" +} \ No newline at end of file diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..a472a0f --- /dev/null +++ b/generation_config.json @@ -0,0 +1,14 @@ +{ + "bos_token_id": 151643, + "do_sample": true, + "eos_token_id": [ + 151645, + 151643 + ], + "pad_token_id": 151643, + "repetition_penalty": 1.1, + "temperature": 0.7, + "top_k": 20, + "top_p": 0.8, + "transformers_version": "5.13.1" +} diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..4032cfc --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6179fe6ad1361ec288fa6e73bf2d6cd18c884598b568e735aec1c9bf6fa6d19b +size 988097824 diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..408c9fb --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48f722bc04c884e2fe1525fdcd85a1293a8499b6e620c1ac7c083c49632305fb +size 11418262 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..53ed36e --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,19 @@ +{ + "add_prefix_space": false, + "backend": "tokenizers", + "bos_token": null, + "clean_up_tokenization_spaces": false, + "eos_token": "<|im_end|>", + "errors": "replace", + "extra_special_tokens": [ + "<|im_start|>", + "<|im_end|>" + ], + "is_local": false, + "local_files_only": false, + "model_max_length": 32768, + "pad_token": "<|endoftext|>", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "unk_token": null +}