[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71NHSPKY45044HGMWPT7R56":3,"skill-same:01M71NHSPKY45044HGMWPT7R56":111},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":67,"commitSha":68,"skillDirectory":69,"forksCount":70,"repositoryHtmlUrl":71,"repositoryHomepageUrl":6,"ownerHtmlUrl":72,"ownerBlogUrl":6,"ownerDescription":73,"updatedAt":74,"install":75,"resources":88},"01M71NHSPKY45044HGMWPT7R56","obliteratus",null,"Remove refusal behaviors from open-weight LLMs using OBLITERATUS — mechanistic interpretability techniques (diff-in-means, SVD, whitened SVD, LEACE, SAE decomposition, etc.) to excise guardrails while preserving reasoning. 9 CLI methods, 28 analysis modules, 116 model presets across 5 compute tiers, tournament evaluation, and telemetry-driven recommendations. Use when a user wants to uncensor, abliterate, or remove refusal from an LLM.","q2805187159\u002FAnvil","q2805187159","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F105276843?v=4","01M71KF4TN999VNJX9FY9QT06A","铁甲勇士宋小宝","01M71KF4V97XXQ7AGES97R4Q9F",3,"MIT","https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil\u002Fblob\u002Fmain\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"llms","Bitsandbytes","diff","Interpretability","GGUF","Evaluation","recommendations","Transformers","decomposition","cli","across","analysis","Accelerate","when","open","Guardrails","remove","model","modules","2026-11-10 10:56:23",false,"---\nname: obliteratus\ndescription: Remove refusal behaviors from open-weight LLMs using OBLITERATUS — mechanistic interpretability techniques (diff-in-means, SVD, whitened SVD, LEACE, SAE decomposition, etc.) to excise guardrails while preserving reasoning. 9 CLI methods, 28 analysis modules, 116 model presets across 5 compute tiers, tournament evaluation, and telemetry-driven recommendations. Use when a user wants to uncensor, abliterate, or remove refusal from an LLM.\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\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## 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\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## 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":43,"license":15,"version":44,"metadata":45,"description":7,"dependencies":61},"Hermes Agent","2.0.0",{"hermes":46},{"tags":47,"related_skills":57},[48,49,50,51,52,53,54,55,56],"Abliteration","Uncensoring","Refusal-Removal","LLM","Weight-Projection","SVD","Mechanistic-Interpretability","HuggingFace","Model-Surgery",[58,59,60],"vllm","gguf","huggingface-tokenizers",[5,62,63,64,65,66],"torch","transformers","bitsandbytes","accelerate","safetensors","main","6ffadc67c9777282fa1f9330ec12ac8778064409","skills\u002Fmlops\u002Finference\u002Fobliteratus",0,"https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil","https:\u002F\u002Fgithub.com\u002Fq2805187159","Independent Researcher\r\n\r\nEmail: q2805187159@gmail.com\r\n\r\nGithub: q2805187159\r\n\r\nResearch Interests:\r\n- LLM Agents\r\n- Tool Routing\r\n- RAG","2026-06-24 18:31:41",{"source":8,"skillName":5,"commands":76,"prompt":86,"zipAvailable":87},[77,80,83],{"tool":78,"command":79},"npx","npx skills add q2805187159\u002FAnvil --skill obliteratus",{"tool":81,"command":82},"bunx","bunx skills add q2805187159\u002FAnvil --skill obliteratus",{"tool":84,"command":85},"pnpm","pnpm dlx skills add q2805187159\u002FAnvil --skill obliteratus","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil\u002Fblob\u002Fmain\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus\u002FSKILL.md",true,[89,95,99,103,107],{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fanalysis-modules.md","REFERENCE","参考文档",6270,"https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil\u002Fblob\u002Fmain\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus\u002Freferences\u002Fanalysis-modules.md",{"path":96,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fmethods-guide.md",6719,"https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil\u002Fblob\u002Fmain\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus\u002Freferences\u002Fmethods-guide.md",{"path":100,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":101,"sourceHtmlUrl":102},"templates\u002Fabliteration-config.yaml",1189,"https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil\u002Fblob\u002Fmain\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus\u002Ftemplates\u002Fabliteration-config.yaml",{"path":104,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":105,"sourceHtmlUrl":106},"templates\u002Fanalysis-study.yaml",1368,"https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil\u002Fblob\u002Fmain\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus\u002Ftemplates\u002Fanalysis-study.yaml",{"path":108,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":109,"sourceHtmlUrl":110},"templates\u002Fbatch-abliteration.yaml",1201,"https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil\u002Fblob\u002Fmain\u002Fskills\u002Fmlops\u002Finference\u002Fobliteratus\u002Ftemplates\u002Fbatch-abliteration.yaml",[112,146,178,185,211,234],{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":116,"licenseFileUrl":117,"sourceHtmlUrl":118,"categories":119,"keywords":128,"publishedAt":38},"01M71NPWVVMB1AZ8XGKNJFT0YP","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil\u002Fblob\u002Fmain\u002Fskills\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil\u002Fblob\u002Fmain\u002Fskills\u002Fwebapp-testing\u002FSKILL.md",[120,125],{"categoryNo":121,"categoryName":122,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":126,"categoryName":127,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000009","前端开发",[129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145],"webapp","testing","webapp testing","for","applications","local","frontend","debugging","toolkit","logs","browser","with","playwright","web","behavior","ui","screenshots",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":160,"publishedAt":38},"01M71NPTQ96H4XSZVZT422BNRB","web-design-guidelines","Review UI code for Web Interface Guidelines compliance. Use when asked to \"review my UI\", \"check accessibility\", \"audit design\", \"review UX\", or \"check my site against best practices\".","https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil\u002Fblob\u002Fmain\u002Fskills\u002Fweb-design-guidelines\u002FSKILL.md",[152,155],{"categoryNo":153,"categoryName":154,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":156,"categoryName":157,"taxonomyType":158,"taxonomyTypeDesc":159},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[161,162,142,163,164,132,165,166,167,168,32,169,170,171,172,173,174,175,176,177],"guidelines","design","web design guidelines","web design","vercel","interface","web interface guidelines","use","best practices","file","code","review","check","compliance","audit","ux","accessibility",{"skillNo":179,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":184,"publishedAt":38},"01M71NPS2D31Y2BGFYA9DB7CE4","https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil\u002Fblob\u002Fmain\u002Fskills\u002Fweb-design-guidelines copy\u002FSKILL.md",[182,183],{"categoryNo":153,"categoryName":154,"taxonomyType":123,"taxonomyTypeDesc":124},{"categoryNo":156,"categoryName":157,"taxonomyType":158,"taxonomyTypeDesc":159},[161,162,142,163,164,132,165,166,167,168,32,169,170,171,172,173,174,175,176,177],{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":197,"publishedAt":38},"01M71NPQ9DRT54QSQJ0BHBM3VG","video-generation","Use this skill when the user requests to generate, create, or imagine videos. Supports structured prompts and reference image for guided generation.","https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil\u002Fblob\u002Fmain\u002Fskills\u002Fvideo-generation\u002FSKILL.md",[191,194],{"categoryNo":192,"categoryName":193,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":195,"categoryName":196,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000023","Skill与智能体开发",[198,199,200,132,168,32,201,202,203,204,205,206,207,208,209,210],"Video","video generation","generation","image","create","imagine","requests","generate","videos","reference","prompts","user","structured",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":218,"publishedAt":38},"01M71NPN57CT154SWXAS52475X","youtube-downloader","Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings (best, 1080p, 720p, 480p, 360p), multiple formats (mp4, webm, mkv), and audio-only downloads as MP3.","https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil\u002Fblob\u002Fmain\u002Fskills\u002Fvideo-downloader\u002FSKILL.md",[217],{"categoryNo":192,"categoryName":193,"taxonomyType":123,"taxonomyTypeDesc":124},[219,220,221,222,223,224,225,168,32,226,140,227,228,229,230,231,206,232,209,233],"youtube","youtube downloader","mp4","as","downloads","Audio","only","mp3","options","quality","format","settings","grab","formats","download",{"skillNo":235,"name":236,"nameZh":6,"description":237,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":238,"categories":239,"keywords":240,"publishedAt":38},"01M71NPKD95YB8N3J6J78QGFFW","verification-before-completion","Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always","https:\u002F\u002Fgithub.com\u002Fq2805187159\u002FAnvil\u002Fblob\u002Fmain\u002Fskills\u002Fverification-before-completion\u002FSKILL.md",[],[241,242,243,244,245,246,247,168,248,32,249,250,251,252,253,254],"verification","verification before completion","running","evidence","complete","prs","claim","assertions","committing","output","claims","work","about","commands"]