commit 28f2b3517411f4253248662a498459e6c3d503fd Author: ModelHub XC Date: Sat Jun 13 09:21:16 2026 +0800 初始化项目,由ModelHub XC社区提供模型 Model: beyoru/Luna-SRSA-Uncensored 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..b692185 --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ +--- +license: mit +tags: +- uncensored +- srsa +- abliterated +- roleplay +- qwen3 +library_name: transformers +--- + +# Luna-SRSA-Uncensored + +Uncensored version of `beyoru/Luna` via **SRSA (Spectral Refusal Subspace Ablation)**. + +[![GitHub](https://img.shields.io/badge/GitHub-181717?style=flat-square&logo=github&logoColor=white)](https://github.com/Hert4) +[![HuggingFace](https://img.shields.io/badge/HuggingFace-FFD21E?style=flat-square&logo=huggingface&logoColor=black)](https://huggingface.co/beyoru) +[![BMC](https://img.shields.io/badge/buy_me_a_coffee-A78BFA?style=flat-square&logo=buy-me-a-coffee&logoColor=white)](https://buymeacoffee.com/ductransa0g) + +# Stats +*This is a exp model* + +Luna is a conversational AI model designed for **immersive roleplay (RP)** and natural chatting. +It is fine-tuned to respond in a more engaging, character-driven style compared to standard instruction-tuned models. + +# Evaluate + +Might don't have in near future + diff --git a/chat_template.jinja b/chat_template.jinja new file mode 100644 index 0000000..a18870a --- /dev/null +++ b/chat_template.jinja @@ -0,0 +1,86 @@ +{%- if tools %} + {{- '<|im_start|>system\n' }} + {%- if messages[0].role == 'system' %} + {{- messages[0].content + '\n\n' }} + {%- endif %} + {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within XML tags:\n" }} + {%- for tool in tools %} + {{- "\n" }} + {{- tool | tojson }} + {%- endfor %} + {{- "\n\n\nFor each function call, return a json object with function name and arguments within XML tags:\n\n{\"name\": , \"arguments\": }\n<|im_end|>\n" }} +{%- else %} + {%- if messages[0].role == 'system' %} + {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }} + {%- endif %} +{%- endif %} +{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %} +{%- for message in messages[::-1] %} + {%- set index = (messages|length - 1) - loop.index0 %} + {%- if ns.multi_step_tool and message.role == "user" and message.content is string and not(message.content.startswith('') and message.content.endswith('')) %} + {%- set ns.multi_step_tool = false %} + {%- set ns.last_query_index = index %} + {%- endif %} +{%- endfor %} +{%- for message in messages %} + {%- if message.content is string %} + {%- set content = message.content %} + {%- else %} + {%- set content = '' %} + {%- endif %} + {%- if (message.role == "user") or (message.role == "system" and not loop.first) %} + {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }} + {%- elif message.role == "assistant" %} + {%- set reasoning_content = '' %} + {%- if message.reasoning_content is string %} + {%- set reasoning_content = message.reasoning_content %} + {%- else %} + {%- if '' in content %} + {%- set reasoning_content = content.split('')[0].rstrip('\n').split('')[-1].lstrip('\n') %} + {%- set content = content.split('')[-1].lstrip('\n') %} + {%- endif %} + {%- endif %} + {%- if loop.index0 > ns.last_query_index %} + {%- if loop.last or (not loop.last and reasoning_content) %} + {{- '<|im_start|>' + message.role + '\n\n' + reasoning_content.strip('\n') + '\n\n\n' + content.lstrip('\n') }} + {%- else %} + {{- '<|im_start|>' + message.role + '\n' + content }} + {%- endif %} + {%- else %} + {{- '<|im_start|>' + message.role + '\n' + content }} + {%- endif %} + {%- if message.tool_calls %} + {%- for tool_call in message.tool_calls %} + {%- if (loop.first and content) or (not loop.first) %} + {{- '\n' }} + {%- endif %} + {%- if tool_call.function %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {{- '\n{"name": "' }} + {{- tool_call.name }} + {{- '", "arguments": ' }} + {%- if tool_call.arguments is string %} + {{- tool_call.arguments }} + {%- else %} + {{- tool_call.arguments | tojson }} + {%- endif %} + {{- '}\n' }} + {%- endfor %} + {%- endif %} + {{- '<|im_end|>\n' }} + {%- elif message.role == "tool" %} + {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %} + {{- '<|im_start|>user' }} + {%- endif %} + {{- '\n\n' }} + {{- content }} + {{- '\n' }} + {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %} + {{- '<|im_end|>\n' }} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|im_start|>assistant\n' }} +{%- endif %} \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000..0a886e7 --- /dev/null +++ b/config.json @@ -0,0 +1,71 @@ +{ + "architectures": [ + "Qwen3ForCausalLM" + ], + "attention_bias": false, + "attention_dropout": 0.0, + "bos_token_id": 151643, + "dtype": "bfloat16", + "eos_token_id": 151645, + "head_dim": 128, + "hidden_act": "silu", + "hidden_size": 2560, + "initializer_range": 0.02, + "intermediate_size": 9728, + "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": 262144, + "max_window_layers": 36, + "model_type": "qwen3", + "num_attention_heads": 32, + "num_hidden_layers": 36, + "num_key_value_heads": 8, + "pad_token_id": null, + "rms_norm_eps": 1e-06, + "rope_parameters": { + "rope_theta": 5000000, + "rope_type": "default" + }, + "sliding_window": null, + "tie_word_embeddings": true, + "transformers_version": "5.0.0", + "use_cache": true, + "use_sliding_window": false, + "vocab_size": 151936 +} diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..ae88048 --- /dev/null +++ b/generation_config.json @@ -0,0 +1,13 @@ +{ + "bos_token_id": 151643, + "do_sample": true, + "eos_token_id": [ + 151645, + 151643 + ], + "pad_token_id": 151643, + "temperature": 0.7, + "top_k": 20, + "top_p": 0.8, + "transformers_version": "5.0.0" +} diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..ae6715e --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15f1b99cd6dbf2d7da7aa55cf592fdf1d9df16cb00e5501a76b2a009d32b74bc +size 8044982080 diff --git a/srsa_analysis.json b/srsa_analysis.json new file mode 100644 index 0000000..82af67c --- /dev/null +++ b/srsa_analysis.json @@ -0,0 +1,195 @@ +{ + "config": { + "model": "beyoru/Luna", + "max_rank": 3, + "strength": 0.95, + "min_eigenratio": 0.12, + "capability_protection": 0.25 + }, + "layer_stats": [ + { + "layer": 0, + "n_dirs": 3, + "strength": 0.29401210353601287 + }, + { + "layer": 1, + "n_dirs": 2, + "strength": 0.2917754046855508 + }, + { + "layer": 2, + "n_dirs": 2, + "strength": 0.3115962164422338 + }, + { + "layer": 3, + "n_dirs": 2, + "strength": 0.48054619679620614 + }, + { + "layer": 4, + "n_dirs": 2, + "strength": 0.43226880931003825 + }, + { + "layer": 5, + "n_dirs": 2, + "strength": 0.41851801772025127 + }, + { + "layer": 6, + "n_dirs": 2, + "strength": 0.3557159060717538 + }, + { + "layer": 7, + "n_dirs": 2, + "strength": 0.3465762291130352 + }, + { + "layer": 8, + "n_dirs": 2, + "strength": 0.36751805598055237 + }, + { + "layer": 9, + "n_dirs": 2, + "strength": 0.40741677449259384 + }, + { + "layer": 10, + "n_dirs": 2, + "strength": 0.44665410147593665 + }, + { + "layer": 11, + "n_dirs": 2, + "strength": 0.7389669674778427 + }, + { + "layer": 12, + "n_dirs": 2, + "strength": 0.774626134098153 + }, + { + "layer": 13, + "n_dirs": 2, + "strength": 0.7739796937054256 + }, + { + "layer": 14, + "n_dirs": 2, + "strength": 0.7895180699594949 + }, + { + "layer": 15, + "n_dirs": 2, + "strength": 0.7180429028228088 + }, + { + "layer": 16, + "n_dirs": 2, + "strength": 0.7626604265352032 + }, + { + "layer": 17, + "n_dirs": 2, + "strength": 0.8240846060478203 + }, + { + "layer": 18, + "n_dirs": 2, + "strength": 0.9034583636706769 + }, + { + "layer": 19, + "n_dirs": 2, + "strength": 0.9282506479241859 + }, + { + "layer": 20, + "n_dirs": 2, + "strength": 0.9380889909189546 + }, + { + "layer": 21, + "n_dirs": 2, + "strength": 0.939409923706219 + }, + { + "layer": 22, + "n_dirs": 2, + "strength": 0.946654058699486 + }, + { + "layer": 23, + "n_dirs": 2, + "strength": 0.9502904263504464 + }, + { + "layer": 24, + "n_dirs": 2, + "strength": 0.9544458704502765 + }, + { + "layer": 25, + "n_dirs": 3, + "strength": 0.953130743489159 + }, + { + "layer": 26, + "n_dirs": 3, + "strength": 0.950968290818247 + }, + { + "layer": 27, + "n_dirs": 3, + "strength": 0.955541026355603 + }, + { + "layer": 28, + "n_dirs": 3, + "strength": 0.9554455579874419 + }, + { + "layer": 29, + "n_dirs": 3, + "strength": 0.9543950906540449 + }, + { + "layer": 30, + "n_dirs": 3, + "strength": 0.9584300467485165 + }, + { + "layer": 31, + "n_dirs": 3, + "strength": 0.9582414817299362 + }, + { + "layer": 32, + "n_dirs": 3, + "strength": 0.9539728189378939 + }, + { + "layer": 33, + "n_dirs": 3, + "strength": 0.9535894113253833 + }, + { + "layer": 34, + "n_dirs": 3, + "strength": 0.9612463998973981 + }, + { + "layer": 35, + "n_dirs": 3, + "strength": 0.9608501117056393 + } + ], + "intervention_stats": { + "layers_modified": 36, + "total_directions": 84 + } +} \ No newline at end of file diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..5e50275 --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b064181fd20c7d19d5613f061552279d7dcbb8210ffde80386e2a9a6ddf996e7 +size 11422748 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..9c0d58c --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,31 @@ +{ + "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|>", + "<|object_ref_start|>", + "<|object_ref_end|>", + "<|box_start|>", + "<|box_end|>", + "<|quad_start|>", + "<|quad_end|>", + "<|vision_start|>", + "<|vision_end|>", + "<|vision_pad|>", + "<|image_pad|>", + "<|video_pad|>" + ], + "is_local": false, + "model_max_length": 262144, + "model_specific_special_tokens": {}, + "pad_token": "<|endoftext|>", + "padding_side": "left", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "unk_token": null +}