[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M74F9A9CSWM136RSEA8098SB":3,"skill-same:01M74F9A9CSWM136RSEA8098SB":89},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":13,"repositoryHtmlUrl":50,"repositoryHomepageUrl":6,"ownerHtmlUrl":51,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":52,"install":53,"resources":66},"01M74F9A9CSWM136RSEA8098SB","obliteratus",null,"OBLITERATUS: abliterate LLM refusals (diff-in-means).","LyrikNilpferd71\u002FHermes-Backup","LyrikNilpferd71","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F187173780?v=4","01M727S8GPB77P0S9ECRRMZT58","01M727S8HF63B0MD53F496MK1V",0,"MIT","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-05-17T14-00-48+0200\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: obliteratus\ndescription: \"OBLITERATUS: abliterate LLM refusals (diff-in-means).\"\nversion: 2.0.0\nauthor: Hermes Agent\nlicense: MIT\ndependencies: [obliteratus, torch, transformers, bitsandbytes, accelerate, safetensors]\nmetadata:\n  hermes:\n    tags: [Abliteration, Uncensoring, Refusal-Removal, LLM, Weight-Projection, SVD, Mechanistic-Interpretability, HuggingFace, Model-Surgery]\n    related_skills: [vllm, gguf, huggingface-tokenizers]\n---\n\n# OBLITERATUS Skill\n\n## What's inside\n\n9 CLI methods, 28 analysis modules, 116 model presets across 5 compute tiers, tournament evaluation, and telemetry-driven recommendations.\n\nRemove refusal behaviors (guardrails) from open-weight LLMs without retraining or fine-tuning. Uses mechanistic interpretability techniques — including diff-in-means, SVD, whitened SVD, LEACE concept erasure, SAE decomposition, Bayesian kernel projection, and more — to identify and surgically excise refusal directions from model weights while preserving reasoning capabilities.\n\n**License warning:** OBLITERATUS is AGPL-3.0. NEVER import it as a Python library. Always invoke via CLI (`obliteratus` command) or subprocess. This keeps Hermes Agent's MIT license clean.\n\n## Video Guide\n\nWalkthrough of OBLITERATUS used by a Hermes agent to abliterate Gemma:\nhttps:\u002F\u002Fwww.youtube.com\u002Fwatch?v=8fG9BrNTeHs (\"OBLITERATUS: An AI Agent Removed Gemma 4's Safety Guardrails\")\n\nUseful when the user wants a visual overview of the end-to-end workflow before running it themselves.\n\n## When to Use This Skill\n\nTrigger when the user:\n- Wants to \"uncensor\" or \"abliterate\" an LLM\n- Asks about removing refusal\u002Fguardrails from a model\n- Wants to create an uncensored version of Llama, Qwen, Mistral, etc.\n- Mentions \"refusal removal\", \"abliteration\", \"weight projection\"\n- Wants to analyze how a model's refusal mechanism works\n- References OBLITERATUS, abliterator, or refusal directions\n\n## Step 1: Installation\n\nCheck if already installed:\n```bash\nobliteratus --version 2>\u002Fdev\u002Fnull && echo \"INSTALLED\" || echo \"NOT INSTALLED\"\n```\n\nIf not installed, clone and install from GitHub:\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Felder-plinius\u002FOBLITERATUS.git\ncd OBLITERATUS\npip install -e .\n# For Gradio web UI support:\n# pip install -e \".[spaces]\"\n```\n\n**IMPORTANT:** Confirm with user before installing. This pulls in ~5-10GB of dependencies (PyTorch, Transformers, bitsandbytes, etc.).\n\n## Step 2: Check Hardware\n\nBefore anything, check what GPU is available:\n```bash\npython3 -c \"\nimport torch\nif torch.cuda.is_available():\n    gpu = torch.cuda.get_device_name(0)\n    vram = torch.cuda.get_device_properties(0).total_memory \u002F 1024**3\n    print(f'GPU: {gpu}')\n    print(f'VRAM: {vram:.1f} GB')\n    if vram \u003C 4: print('TIER: tiny (models under 1B)')\n    elif vram \u003C 8: print('TIER: small (models 1-4B)')\n    elif vram \u003C 16: print('TIER: medium (models 4-9B with 4bit quant)')\n    elif vram \u003C 32: print('TIER: large (models 8-32B with 4bit quant)')\n    else: print('TIER: frontier (models 32B+)')\nelse:\n    print('NO GPU - only tiny models (under 1B) on CPU')\n\"\n```\n\n### VRAM Requirements (with 4-bit quantization)\n\n| VRAM     | Max Model Size  | Example Models                              |\n|:---------|:----------------|:--------------------------------------------|\n| CPU only | ~1B params      | GPT-2, TinyLlama, SmolLM                    |\n| 4-8 GB   | ~4B params      | Qwen2.5-1.5B, Phi-3.5 mini, Llama 3.2 3B   |\n| 8-16 GB  | ~9B params      | Llama 3.1 8B, Mistral 7B, Gemma 2 9B       |\n| 24 GB    | ~32B params     | Qwen3-32B, Llama 3.1 70B (tight), Command-R |\n| 48 GB+   | ~72B+ params    | Qwen2.5-72B, DeepSeek-R1                    |\n| Multi-GPU| 200B+ params    | Llama 3.1 405B, DeepSeek-V3 (685B MoE)      |\n\n## Step 3: Browse Available Models & Get Recommendations\n\n```bash\n# Browse models by compute tier\nobliteratus models --tier medium\n\n# Get architecture info for a specific model\nobliteratus info \u003Cmodel_name>\n\n# Get telemetry-driven recommendation for best method & params\nobliteratus recommend \u003Cmodel_name>\nobliteratus recommend \u003Cmodel_name> --insights  # global cross-architecture rankings\n```\n\n## Step 4: Choose a Method\n\n### Method Selection Guide\n**Default \u002F recommended for most cases: `advanced`.** It uses multi-direction SVD with norm-preserving projection and is well-tested.\n\n| Situation                         | Recommended Method | Why                                      |\n|:----------------------------------|:-------------------|:-----------------------------------------|\n| Default \u002F most models             | `advanced`         | Multi-direction SVD, norm-preserving, reliable |\n| Quick test \u002F prototyping          | `basic`            | Fast, simple, good enough to evaluate    |\n| Dense model (Llama, Mistral)      | `advanced`         | Multi-direction, norm-preserving         |\n| MoE model (DeepSeek, Mixtral)     | `nuclear`          | Expert-granular, handles MoE complexity  |\n| Reasoning model (R1 distills)     | `surgical`         | CoT-aware, preserves chain-of-thought    |\n| Stubborn refusals persist         | `aggressive`       | Whitened SVD + head surgery + jailbreak   |\n| Want reversible changes           | Use steering vectors (see Analysis section) |\n| Maximum quality, time no object   | `optimized`        | Bayesian search for best parameters      |\n| Experimental auto-detection       | `informed`         | Auto-detects alignment type — experimental, may not always outperform advanced |\n\n### 9 CLI Methods\n- **basic** — Single refusal direction via diff-in-means. Fast (~5-10 min for 8B).\n- **advanced** (DEFAULT, RECOMMENDED) — Multiple SVD directions, norm-preserving projection, 2 refinement passes. Medium speed (~10-20 min).\n- **aggressive** — Whitened SVD + jailbreak-contrastive + attention head surgery. Higher risk of coherence damage.\n- **spectral_cascade** — DCT frequency-domain decomposition. Research\u002Fnovel approach.\n- **informed** — Runs analysis DURING abliteration to auto-configure. Experimental — slower and less predictable than advanced.\n- **surgical** — SAE features + neuron masking + head surgery + per-expert. Very slow (~1-2 hrs). Best for reasoning models.\n- **optimized** — Bayesian hyperparameter search (Optuna TPE). Longest runtime but finds optimal parameters.\n- **inverted** — Flips the refusal direction. Model becomes actively willing.\n- **nuclear** — Maximum force combo for stubborn MoE models. Expert-granular.\n\n### Direction Extraction Methods (--direction-method flag)\n- **diff_means** (default) — Simple difference-in-means between refused\u002Fcomplied activations. Robust.\n- **svd** — Multi-direction SVD extraction. Better for complex alignment.\n- **leace** — LEACE (Linear Erasure via Closed-form Estimation). Optimal linear erasure.\n\n### 4 Python-API-Only Methods\n(NOT available via CLI — require Python import, which violates AGPL boundary. Mention to user only if they explicitly want to use OBLITERATUS as a library in their own AGPL project.)\n- failspy, gabliteration, heretic, rdo\n\n## Step 5: Run Abliteration\n\n### Standard usage\n```bash\n# Default method (advanced) — recommended for most models\nobliteratus obliterate \u003Cmodel_name> --method advanced --output-dir .\u002Fabliterated-models\n\n# With 4-bit quantization (saves VRAM)\nobliteratus obliterate \u003Cmodel_name> --method advanced --quantization 4bit --output-dir .\u002Fabliterated-models\n\n# Large models (70B+) — conservative defaults\nobliteratus obliterate \u003Cmodel_name> --method advanced --quantization 4bit --large-model --output-dir .\u002Fabliterated-models\n```\n\n### Fine-tuning parameters\n```bash\nobliteratus obliterate \u003Cmodel_name> \\\n  --method advanced \\\n  --direction-method diff_means \\\n  --n-directions 4 \\\n  --refinement-passes 2 \\\n  --regularization 0.1 \\\n  --quantization 4bit \\\n  --output-dir .\u002Fabliterated-models \\\n  --contribute  # opt-in telemetry for community research\n```\n\n### Key flags\n| Flag | Description | Default |\n|:-----|:------------|:--------|\n| `--method` | Abliteration method | advanced |\n| `--direction-method` | Direction extraction | diff_means |\n| `--n-directions` | Number of refusal directions (1-32) | method-dependent |\n| `--refinement-passes` | Iterative passes (1-5) | 2 |\n| `--regularization` | Regularization strength (0.0-1.0) | 0.1 |\n| `--quantization` | Load in 4bit or 8bit | none (full precision) |\n| `--large-model` | Conservative defaults for 120B+ | false |\n| `--output-dir` | Where to save the abliterated model | .\u002Fobliterated_model |\n| `--contribute` | Share anonymized results for research | false |\n| `--verify-sample-size` | Number of test prompts for refusal check | 20 |\n| `--dtype` | Model dtype (float16, bfloat16) | auto |\n\n### Other execution modes\n```bash\n# Interactive guided mode (hardware → model → preset)\nobliteratus interactive\n\n# Web UI (Gradio)\nobliteratus ui --port 7860\n\n# Run a full ablation study from YAML config\nobliteratus run config.yaml --preset quick\n\n# Tournament: pit all methods against each other\nobliteratus tourney \u003Cmodel_name>\n```\n\n## Step 6: Verify Results\n\nAfter abliteration, check the output metrics:\n\n| Metric | Good Value | Warning |\n|:-------|:-----------|:--------|\n| Refusal rate | \u003C 5% (ideally ~0%) | > 10% means refusals persist |\n| Perplexity change | \u003C 10% increase | > 15% means coherence damage |\n| KL divergence | \u003C 0.1 | > 0.5 means significant distribution shift |\n| Coherence | High \u002F passes qualitative check | Degraded responses, repetition |\n\n### If refusals persist (> 10%)\n1. Try `aggressive` method\n2. Increase `--n-directions` (e.g., 8 or 16)\n3. Add `--refinement-passes 3`\n4. Try `--direction-method svd` instead of diff_means\n\n### If coherence is damaged (perplexity > 15% increase)\n1. Reduce `--n-directions` (try 2)\n2. Increase `--regularization` (try 0.3)\n3. Reduce `--refinement-passes` to 1\n4. Try `basic` method (gentler)\n\n## Step 7: Use the Abliterated Model\n\nThe output is a standard HuggingFace model directory.\n\n```bash\n# Test locally with transformers\npython3 -c \"\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\nmodel = AutoModelForCausalLM.from_pretrained('.\u002Fabliterated-models\u002F\u003Cmodel>')\ntokenizer = AutoTokenizer.from_pretrained('.\u002Fabliterated-models\u002F\u003Cmodel>')\ninputs = tokenizer('How do I pick a lock?', return_tensors='pt')\noutputs = model.generate(**inputs, max_new_tokens=200)\nprint(tokenizer.decode(outputs[0], skip_special_tokens=True))\n\"\n\n# Upload to HuggingFace Hub\nhuggingface-cli upload \u003Cusername>\u002F\u003Cmodel-name>-abliterated .\u002Fabliterated-models\u002F\u003Cmodel>\n\n# Serve with vLLM\nvllm serve .\u002Fabliterated-models\u002F\u003Cmodel>\n```\n\n## CLI Command Reference\n\n| Command | Description |\n|:--------|:------------|\n| `obliteratus obliterate` | Main abliteration command |\n| `obliteratus info \u003Cmodel>` | Print model architecture details |\n| `obliteratus models --tier \u003Ctier>` | Browse curated models by compute tier |\n| `obliteratus recommend \u003Cmodel>` | Telemetry-driven method\u002Fparam suggestion |\n| `obliteratus interactive` | Guided setup wizard |\n| `obliteratus tourney \u003Cmodel>` | Tournament: all methods head-to-head |\n| `obliteratus run \u003Cconfig.yaml>` | Execute ablation study from YAML |\n| `obliteratus strategies` | List all registered ablation strategies |\n| `obliteratus report \u003Cresults.json>` | Regenerate visual reports |\n| `obliteratus ui` | Launch Gradio web interface |\n| `obliteratus aggregate` | Summarize community telemetry data |\n\n## Analysis Modules\n\nOBLITERATUS includes 28 analysis modules for mechanistic interpretability.\nSee `skill_view(name=\"obliteratus\", file_path=\"references\u002Fanalysis-modules.md\")` for the full reference.\n\n### Quick analysis commands\n```bash\n# Run specific analysis modules\nobliteratus run analysis-config.yaml --preset quick\n\n# Key modules to run first:\n# - alignment_imprint: Fingerprint DPO\u002FRLHF\u002FCAI\u002FSFT alignment method\n# - concept_geometry: Single direction vs polyhedral cone\n# - logit_lens: Which layer decides to refuse\n# - anti_ouroboros: Self-repair risk score\n# - causal_tracing: Causally necessary components\n```\n\n### Steering Vectors (Reversible Alternative)\nInstead of permanent weight modification, use inference-time steering:\n```python\n# Python API only — for user's own projects\nfrom obliteratus.analysis.steering_vectors import SteeringVectorFactory, SteeringHookManager\n```\n\n## Ablation Strategies\n\nBeyond direction-based abliteration, OBLITERATUS includes structural ablation strategies:\n- **Embedding Ablation** — Target embedding layer components\n- **FFN Ablation** — Feed-forward network block removal\n- **Head Pruning** — Attention head pruning\n- **Layer Removal** — Full layer removal\n\nList all available: `obliteratus strategies`\n\n## Evaluation\n\nOBLITERATUS includes built-in evaluation tools:\n- Refusal rate benchmarking\n- Perplexity comparison (before\u002Fafter)\n- LM Eval Harness integration for academic benchmarks\n- Head-to-head competitor comparison\n- Baseline performance tracking\n\n## Platform Support\n\n- **CUDA** — Full support (NVIDIA GPUs)\n- **Apple Silicon (MLX)** — Supported via MLX backend\n- **CPU** — Supported for tiny models (\u003C 1B params)\n\n## YAML Config Templates\n\nLoad templates for reproducible runs via `skill_view`:\n- `templates\u002Fabliteration-config.yaml` — Standard single-model config\n- `templates\u002Fanalysis-study.yaml` — Pre-abliteration analysis study\n- `templates\u002Fbatch-abliteration.yaml` — Multi-model batch processing\n\n## Telemetry\n\nOBLITERATUS can optionally contribute anonymized run data to a global research dataset.\nEnable with `--contribute` flag. No personal data is collected — only model name, method, metrics.\n\n## Common Pitfalls\n\n1. **Don't use `informed` as default** — it's experimental and slower. Use `advanced` for reliable results.\n2. **Models under ~1B respond poorly to abliteration** — their refusal behaviors are shallow and fragmented, making clean direction extraction difficult. Expect partial results (20-40% remaining refusal). Models 3B+ have cleaner refusal directions and respond much better (often 0% refusal with `advanced`).\n3. **`aggressive` can make things worse** — on small models it can damage coherence and actually increase refusal rate. Only use it if `advanced` leaves > 10% refusals on a 3B+ model.\n4. **Always check perplexity** — if it spikes > 15%, the model is damaged. Reduce aggressiveness.\n5. **MoE models need special handling** — use `nuclear` method for Mixtral, DeepSeek-MoE, etc.\n6. **Quantized models can't be re-quantized** — abliterate the full-precision model, then quantize the output.\n7. **VRAM estimation is approximate** — 4-bit quant helps but peak usage can spike during extraction.\n8. **Reasoning models are sensitive** — use `surgical` for R1 distills to preserve chain-of-thought.\n9. **Check `obliteratus recommend`** — telemetry data may have better parameters than defaults.\n10. **AGPL license** — never `import obliteratus` in MIT\u002FApache projects. CLI invocation only.\n11. **Large models (70B+)** — always use `--large-model` flag for conservative defaults.\n12. **Spectral certification RED is common** — the spectral check often flags \"incomplete\" even when practical refusal rate is 0%. Check actual refusal rate rather than relying on spectral certification alone.\n\n## Complementary Skills\n\n- **vllm** — Serve abliterated models with high throughput\n- **gguf** — Convert abliterated models to GGUF for llama.cpp\n- **huggingface-tokenizers** — Work with model tokenizers\n","# OBLITERATUS Skill\n\n## What's inside\n\n9 CLI methods, 28 analysis modules, 116 model presets across 5 compute tiers, tournament evaluation, and telemetry-driven recommendations.\n\nRemove refusal behaviors (guardrails) from open-weight LLMs without retraining or fine-tuning. Uses mechanistic interpretability techniques — including diff-in-means, SVD, whitened SVD, LEACE concept erasure, SAE decomposition, Bayesian kernel projection, and more — to identify and surgically excise refusal directions from model weights while preserving reasoning capabilities.\n\n**License warning:** OBLITERATUS is AGPL-3.0. NEVER import it as a Python library. Always invoke via CLI (`obliteratus` command) or subprocess. This keeps Hermes Agent's MIT license clean.\n\n## Video Guide\n\nWalkthrough of OBLITERATUS used by a Hermes agent to abliterate Gemma:\nhttps:\u002F\u002Fwww.youtube.com\u002Fwatch?v=8fG9BrNTeHs (\"OBLITERATUS: An AI Agent Removed Gemma 4's Safety Guardrails\")\n\nUseful when the user wants a visual overview of the end-to-end workflow before running it themselves.\n\n## When to Use This Skill\n\nTrigger when the user:\n- Wants to \"uncensor\" or \"abliterate\" an LLM\n- Asks about removing refusal\u002Fguardrails from a model\n- Wants to create an uncensored version of Llama, Qwen, Mistral, etc.\n- Mentions \"refusal removal\", \"abliteration\", \"weight projection\"\n- Wants to analyze how a model's refusal mechanism works\n- References OBLITERATUS, abliterator, or refusal directions\n\n## Step 1: Installation\n\nCheck if already installed:\n```bash\nobliteratus --version 2>\u002Fdev\u002Fnull && echo \"INSTALLED\" || echo \"NOT INSTALLED\"\n```\n\nIf not installed, clone and install from GitHub:\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Felder-plinius\u002FOBLITERATUS.git\ncd OBLITERATUS\npip install -e .\n# For Gradio web UI support:\n# pip install -e \".[spaces]\"\n```\n\n**IMPORTANT:** Confirm with user before installing. This pulls in ~5-10GB of dependencies (PyTorch, Transformers, bitsandbytes, etc.).\n\n## Step 2: Check Hardware\n\nBefore anything, check what GPU is available:\n```bash\npython3 -c \"\nimport torch\nif torch.cuda.is_available():\n    gpu = torch.cuda.get_device_name(0)\n    vram = torch.cuda.get_device_properties(0).total_memory \u002F 1024**3\n    print(f'GPU: {gpu}')\n    print(f'VRAM: {vram:.1f} GB')\n    if vram \u003C 4: print('TIER: tiny (models under 1B)')\n    elif vram \u003C 8: print('TIER: small (models 1-4B)')\n    elif vram \u003C 16: print('TIER: medium (models 4-9B with 4bit quant)')\n    elif vram \u003C 32: print('TIER: large (models 8-32B with 4bit quant)')\n    else: print('TIER: frontier (models 32B+)')\nelse:\n    print('NO GPU - only tiny models (under 1B) on CPU')\n\"\n```\n\n### VRAM Requirements (with 4-bit quantization)\n\n| VRAM     | Max Model Size  | Example Models                              |\n|:---------|:----------------|:--------------------------------------------|\n| CPU only | ~1B params      | GPT-2, TinyLlama, SmolLM                    |\n| 4-8 GB   | ~4B params      | Qwen2.5-1.5B, Phi-3.5 mini, Llama 3.2 3B   |\n| 8-16 GB  | ~9B params      | Llama 3.1 8B, Mistral 7B, Gemma 2 9B       |\n| 24 GB    | ~32B params     | Qwen3-32B, Llama 3.1 70B (tight), Command-R |\n| 48 GB+   | ~72B+ params    | Qwen2.5-72B, DeepSeek-R1                    |\n| Multi-GPU| 200B+ params    | Llama 3.1 405B, DeepSeek-V3 (685B MoE)      |\n\n## Step 3: Browse Available Models & Get Recommendations\n\n```bash\n# Browse models by compute tier\nobliteratus models --tier medium\n\n# Get architecture info for a specific model\nobliteratus info \u003Cmodel_name>\n\n# Get telemetry-driven recommendation for best method & params\nobliteratus recommend \u003Cmodel_name>\nobliteratus recommend \u003Cmodel_name> --insights  # global cross-architecture rankings\n```\n\n## Step 4: Choose a Method\n\n### Method Selection Guide\n**Default \u002F recommended for most cases: `advanced`.** It uses multi-direction SVD with norm-preserving projection and is well-tested.\n\n| Situation                         | Recommended Method | Why                                      |\n|:----------------------------------|:-------------------|:-----------------------------------------|\n| Default \u002F most models             | `advanced`         | Multi-direction SVD, norm-preserving, reliable |\n| Quick test \u002F prototyping          | `basic`            | Fast, simple, good enough to evaluate    |\n| Dense model (Llama, Mistral)      | `advanced`         | Multi-direction, norm-preserving         |\n| MoE model (DeepSeek, Mixtral)     | `nuclear`          | Expert-granular, handles MoE complexity  |\n| Reasoning model (R1 distills)     | `surgical`         | CoT-aware, preserves chain-of-thought    |\n| Stubborn refusals persist         | `aggressive`       | Whitened SVD + head surgery + jailbreak   |\n| Want reversible changes           | Use steering vectors (see Analysis section) |\n| Maximum quality, time no object   | `optimized`        | Bayesian search for best parameters      |\n| Experimental auto-detection       | `informed`         | Auto-detects alignment type — experimental, may not always outperform advanced |\n\n### 9 CLI Methods\n- **basic** — Single refusal direction via diff-in-means. Fast (~5-10 min for 8B).\n- **advanced** (DEFAULT, RECOMMENDED) — Multiple SVD directions, norm-preserving projection, 2 refinement passes. Medium speed (~10-20 min).\n- **aggressive** — Whitened SVD + jailbreak-contrastive + attention head surgery. Higher risk of coherence damage.\n- **spectral_cascade** — DCT frequency-domain decomposition. Research\u002Fnovel approach.\n- **informed** — Runs analysis DURING abliteration to auto-configure. Experimental — slower and less predictable than advanced.\n- **surgical** — SAE features + neuron masking + head surgery + per-expert. Very slow (~1-2 hrs). Best for reasoning models.\n- **optimized** — Bayesian hyperparameter search (Optuna TPE). Longest runtime but finds optimal parameters.\n- **inverted** — Flips the refusal direction. Model becomes actively willing.\n- **nuclear** — Maximum force combo for stubborn MoE models. Expert-granular.\n\n### Direction Extraction Methods (--direction-method flag)\n- **diff_means** (default) — Simple difference-in-means between refused\u002Fcomplied activations. Robust.\n- **svd** — Multi-direction SVD extraction. Better for complex alignment.\n- **leace** — LEACE (Linear Erasure via Closed-form Estimation). Optimal linear erasure.\n\n### 4 Python-API-Only Methods\n(NOT available via CLI — require Python import, which violates AGPL boundary. Mention to user only if they explicitly want to use OBLITERATUS as a library in their own AGPL project.)\n- failspy, gabliteration, heretic, rdo\n\n## Step 5: Run Abliteration\n\n### Standard usage\n```bash\n# Default method (advanced) — recommended for most models\nobliteratus obliterate \u003Cmodel_name> --method advanced --output-dir .\u002Fabliterated-models\n\n# With 4-bit quantization (saves VRAM)\nobliteratus obliterate \u003Cmodel_name> --method advanced --quantization 4bit --output-dir .\u002Fabliterated-models\n\n# Large models (70B+) — conservative defaults\nobliteratus obliterate \u003Cmodel_name> --method advanced --quantization 4bit --large-model --output-dir .\u002Fabliterated-models\n```\n\n### Fine-tuning parameters\n```bash\nobliteratus obliterate \u003Cmodel_name> \\\n  --method advanced \\\n  --direction-method diff_means \\\n  --n-directions 4 \\\n  --refinement-passes 2 \\\n  --regularization 0.1 \\\n  --quantization 4bit \\\n  --output-dir .\u002Fabliterated-models \\\n  --contribute  # opt-in telemetry for community research\n```\n\n### Key flags\n| Flag | Description | Default |\n|:-----|:------------|:--------|\n| `--method` | Abliteration method | advanced |\n| `--direction-method` | Direction extraction | diff_means |\n| `--n-directions` | Number of refusal directions (1-32) | method-dependent |\n| `--refinement-passes` | Iterative passes (1-5) | 2 |\n| `--regularization` | Regularization strength (0.0-1.0) | 0.1 |\n| `--quantization` | Load in 4bit or 8bit | none (full precision) |\n| `--large-model` | Conservative defaults for 120B+ | false |\n| `--output-dir` | Where to save the abliterated model | .\u002Fobliterated_model |\n| `--contribute` | Share anonymized results for research | false |\n| `--verify-sample-size` | Number of test prompts for refusal check | 20 |\n| `--dtype` | Model dtype (float16, bfloat16) | auto |\n\n### Other execution modes\n```bash\n# Interactive guided mode (hardware → model → preset)\nobliteratus interactive\n\n# Web UI (Gradio)\nobliteratus ui --port 7860\n\n# Run a full ablation study from YAML config\nobliteratus run config.yaml --preset quick\n\n# Tournament: pit all methods against each other\nobliteratus tourney \u003Cmodel_name>\n```\n\n## Step 6: Verify Results\n\nAfter abliteration, check the output metrics:\n\n| Metric | Good Value | Warning |\n|:-------|:-----------|:--------|\n| Refusal rate | \u003C 5% (ideally ~0%) | > 10% means refusals persist |\n| Perplexity change | \u003C 10% increase | > 15% means coherence damage |\n| KL divergence | \u003C 0.1 | > 0.5 means significant distribution shift |\n| Coherence | High \u002F passes qualitative check | Degraded responses, repetition |\n\n### If refusals persist (> 10%)\n1. Try `aggressive` method\n2. Increase `--n-directions` (e.g., 8 or 16)\n3. Add `--refinement-passes 3`\n4. Try `--direction-method svd` instead of diff_means\n\n### If coherence is damaged (perplexity > 15% increase)\n1. Reduce `--n-directions` (try 2)\n2. Increase `--regularization` (try 0.3)\n3. Reduce `--refinement-passes` to 1\n4. Try `basic` method (gentler)\n\n## Step 7: Use the Abliterated Model\n\nThe output is a standard HuggingFace model directory.\n\n```bash\n# Test locally with transformers\npython3 -c \"\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\nmodel = AutoModelForCausalLM.from_pretrained('.\u002Fabliterated-models\u002F\u003Cmodel>')\ntokenizer = AutoTokenizer.from_pretrained('.\u002Fabliterated-models\u002F\u003Cmodel>')\ninputs = tokenizer('How do I pick a lock?', return_tensors='pt')\noutputs = model.generate(**inputs, max_new_tokens=200)\nprint(tokenizer.decode(outputs[0], skip_special_tokens=True))\n\"\n\n# Upload to HuggingFace Hub\nhuggingface-cli upload \u003Cusername>\u002F\u003Cmodel-name>-abliterated .\u002Fabliterated-models\u002F\u003Cmodel>\n\n# Serve with vLLM\nvllm serve .\u002Fabliterated-models\u002F\u003Cmodel>\n```\n\n## CLI Command Reference\n\n| Command | Description |\n|:--------|:------------|\n| `obliteratus obliterate` | Main abliteration command |\n| `obliteratus info \u003Cmodel>` | Print model architecture details |\n| `obliteratus models --tier \u003Ctier>` | Browse curated models by compute tier |\n| `obliteratus recommend \u003Cmodel>` | Telemetry-driven method\u002Fparam suggestion |\n| `obliteratus interactive` | Guided setup wizard |\n| `obliteratus tourney \u003Cmodel>` | Tournament: all methods head-to-head |\n| `obliteratus run \u003Cconfig.yaml>` | Execute ablation study from YAML |\n| `obliteratus strategies` | List all registered ablation strategies |\n| `obliteratus report \u003Cresults.json>` | Regenerate visual reports |\n| `obliteratus ui` | Launch Gradio web interface |\n| `obliteratus aggregate` | Summarize community telemetry data |\n\n## Analysis Modules\n\nOBLITERATUS includes 28 analysis modules for mechanistic interpretability.\nSee `skill_view(name=\"obliteratus\", file_path=\"references\u002Fanalysis-modules.md\")` for the full reference.\n\n### Quick analysis commands\n```bash\n# Run specific analysis modules\nobliteratus run analysis-config.yaml --preset quick\n\n# Key modules to run first:\n# - alignment_imprint: Fingerprint DPO\u002FRLHF\u002FCAI\u002FSFT alignment method\n# - concept_geometry: Single direction vs polyhedral cone\n# - logit_lens: Which layer decides to refuse\n# - anti_ouroboros: Self-repair risk score\n# - causal_tracing: Causally necessary components\n```\n\n### Steering Vectors (Reversible Alternative)\nInstead of permanent weight modification, use inference-time steering:\n```python\n# Python API only — for user's own projects\nfrom obliteratus.analysis.steering_vectors import SteeringVectorFactory, SteeringHookManager\n```\n\n## Ablation Strategies\n\nBeyond direction-based abliteration, OBLITERATUS includes structural ablation strategies:\n- **Embedding Ablation** — Target embedding layer components\n- **FFN Ablation** — Feed-forward network block removal\n- **Head Pruning** — Attention head pruning\n- **Layer Removal** — Full layer removal\n\nList all available: `obliteratus strategies`\n\n## Evaluation\n\nOBLITERATUS includes built-in evaluation tools:\n- Refusal rate benchmarking\n- Perplexity comparison (before\u002Fafter)\n- LM Eval Harness integration for academic benchmarks\n- Head-to-head competitor comparison\n- Baseline performance tracking\n\n## Platform Support\n\n- **CUDA** — Full support (NVIDIA GPUs)\n- **Apple Silicon (MLX)** — Supported via MLX backend\n- **CPU** — Supported for tiny models (\u003C 1B params)\n\n## YAML Config Templates\n\nLoad templates for reproducible runs via `skill_view`:\n- `templates\u002Fabliteration-config.yaml` — Standard single-model config\n- `templates\u002Fanalysis-study.yaml` — Pre-abliteration analysis study\n- `templates\u002Fbatch-abliteration.yaml` — Multi-model batch processing\n\n## Telemetry\n\nOBLITERATUS can optionally contribute anonymized run data to a global research dataset.\nEnable with `--contribute` flag. No personal data is collected — only model name, method, metrics.\n\n## Common Pitfalls\n\n1. **Don't use `informed` as default** — it's experimental and slower. Use `advanced` for reliable results.\n2. **Models under ~1B respond poorly to abliteration** — their refusal behaviors are shallow and fragmented, making clean direction extraction difficult. Expect partial results (20-40% remaining refusal). Models 3B+ have cleaner refusal directions and respond much better (often 0% refusal with `advanced`).\n3. **`aggressive` can make things worse** — on small models it can damage coherence and actually increase refusal rate. Only use it if `advanced` leaves > 10% refusals on a 3B+ model.\n4. **Always check perplexity** — if it spikes > 15%, the model is damaged. Reduce aggressiveness.\n5. **MoE models need special handling** — use `nuclear` method for Mixtral, DeepSeek-MoE, etc.\n6. **Quantized models can't be re-quantized** — abliterate the full-precision model, then quantize the output.\n7. **VRAM estimation is approximate** — 4-bit quant helps but peak usage can spike during extraction.\n8. **Reasoning models are sensitive** — use `surgical` for R1 distills to preserve chain-of-thought.\n9. **Check `obliteratus recommend`** — telemetry data may have better parameters than defaults.\n10. **AGPL license** — never `import obliteratus` in MIT\u002FApache projects. CLI invocation only.\n11. **Large models (70B+)** — always use `--large-model` flag for conservative defaults.\n12. **Spectral certification RED is common** — the spectral check often flags \"incomplete\" even when practical refusal rate is 0%. Check actual refusal rate rather than relying on spectral certification alone.\n\n## Complementary Skills\n\n- **vllm** — Serve abliterated models with high throughput\n- **gguf** — Convert abliterated models to GGUF for llama.cpp\n- **huggingface-tokenizers** — Work with model tokenizers\n",{"name":5,"author":23,"license":14,"version":24,"metadata":25,"description":7,"dependencies":41},"Hermes Agent","2.0.0",{"hermes":26},{"tags":27,"related_skills":37},[28,29,30,31,32,33,34,35,36],"Abliteration","Uncensoring","Refusal-Removal","LLM","Weight-Projection","SVD","Mechanistic-Interpretability","HuggingFace","Model-Surgery",[38,39,40],"vllm","gguf","huggingface-tokenizers",[5,42,43,44,45,46],"torch","transformers","bitsandbytes","accelerate","safetensors","main","404fd33aabef3b6bc1cc913117ba2160ade62625","snapshots\u002F2026-05-17T14-00-48+0200\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71","2026-11-08 20:00:57",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add LyrikNilpferd71\u002FHermes-Backup --skill obliteratus",{"tool":59,"command":60},"bunx","bunx skills add LyrikNilpferd71\u002FHermes-Backup --skill obliteratus",{"tool":62,"command":63},"pnpm","pnpm dlx skills add LyrikNilpferd71\u002FHermes-Backup --skill obliteratus","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-05-17T14-00-48+0200\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus\u002FSKILL.md",true,[67,73,77,81,85],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Fanalysis-modules.md","REFERENCE","参考文档",6270,"https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-05-17T14-00-48+0200\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus\u002Freferences\u002Fanalysis-modules.md",{"path":74,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":75,"sourceHtmlUrl":76},"references\u002Fmethods-guide.md",6719,"https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-05-17T14-00-48+0200\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus\u002Freferences\u002Fmethods-guide.md",{"path":78,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":79,"sourceHtmlUrl":80},"templates\u002Fabliteration-config.yaml",1189,"https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-05-17T14-00-48+0200\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus\u002Ftemplates\u002Fabliteration-config.yaml",{"path":82,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":83,"sourceHtmlUrl":84},"templates\u002Fanalysis-study.yaml",1368,"https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-05-17T14-00-48+0200\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus\u002Ftemplates\u002Fanalysis-study.yaml",{"path":86,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":87,"sourceHtmlUrl":88},"templates\u002Fbatch-abliteration.yaml",1201,"https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-05-17T14-00-48+0200\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus\u002Ftemplates\u002Fbatch-abliteration.yaml",[90,98,105,112,119,126],{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":97},"01M76BBCCNA7WQ82Q8QNZH8PBK","writing-plans","Write implementation plans: bite-sized tasks, paths, code.","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-11-08T13-00-51+0100\u002Fskills\u002Fsoftware-development\u002Fwriting-plans\u002FSKILL.md",[],[],"2026-11-12 13:55:43",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":97},"01M76BB8YS41CA3NKW0YMSSB88","systematic-debugging","4-phase root cause debugging: understand bugs before fixing.","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-11-08T13-00-51+0100\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[],[],{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":97},"01M76BB680FPNT998E1GM2QW10","subagent-driven-development","Execute plans via delegate_task subagents (2-stage review).","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-11-08T13-00-51+0100\u002Fskills\u002Fsoftware-development\u002Fsubagent-driven-development\u002FSKILL.md",[],[],{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":97},"01M76BB3C4ZB9S4RWPMM8MX0YB","plan","Write a markdown plan to .hermes\u002Fplans\u002F; no execution.","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-11-08T13-00-51+0100\u002Fskills\u002Fsoftware-development\u002Fplan\u002FSKILL.md",[],[],{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":97},"01M76BB0NK28KMP51YDB5R3EXA","hermes-agent-skill-authoring","Author in-repo SKILL.md files: frontmatter and structure.","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-11-08T13-00-51+0100\u002Fskills\u002Fsoftware-development\u002Fhermes-agent-skill-authoring\u002FSKILL.md",[],[],{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":132,"publishedAt":97},"01M76BAYV58H0CKNSTZE3ZH4NY","debugging-hermes-tui-commands","Debug Hermes TUI slash commands: Python, gateway, Ink UI.","https:\u002F\u002Fgithub.com\u002FLyrikNilpferd71\u002FHermes-Backup\u002Fblob\u002Fmain\u002Fsnapshots\u002F2026-11-08T13-00-51+0100\u002Fskills\u002Fsoftware-development\u002Fdebugging-hermes-tui-commands\u002FSKILL.md",[],[]]