OBLITERATUS

elder-plinius/OBLITERATUS 访问 GitHub ↗
🔤 Python ★ 7784 ⑂ 0 daily #16 (+63) 抓取 2026-08-22

一句话简介

一个基于Python的开源项目,可能涉及机器学习模型处理或文本生成相关研究,旨在探索特定技术领域的应用与实验。

标签

  • Python
  • 机器学习
  • 实验性项目
  • 算法研究
  • 模型处理

适用应用场景

  • 用于机器学习模型的实验与测试
  • 作为文本生成或处理任务的参考实现
  • 学习特定算法原理的代码示例
  • 集成到更大的AI系统中进行模块化调用

README 中文摘要

项目概述

OBLITERATUS 是一个面向大语言模型"拒绝行为"研究的开源工具包,专注于在不重新训练的前提下定位并移除模型内部的拒绝表征,使模型在保留原有语言能力的同时不再产生人为的拒绝输出。项目同时是一个分布式研究实验:开启遥测后,每一次运行都会以匿名方式贡献基准数据,形成跨架构、跨硬件的众包拒绝方向数据集。

底层基于 Arditi et al. (2024)、grimjim 的范数保持双向投影、Turner et al. (2023)、Rimsky et al. (2024) 等公开工作。核心算法通过对比"受限"与"不受限"提示下的隐藏激活,借助 PCA、均值差、稀疏自编码器分解或白化 SVD 等方法提取拒绝子空间,再以权重投影或推理时引导的方式将其移除。

工具能做什么

映射(Map the chains)

通过逐层、逐注意力头、逐 FFN 块、逐嵌入维度的消融实验,定位模型内部哪些回路承载拒绝行为、哪些承载知识与推理能力。

解除(Break the chains)

六阶段流水线:

SUMMON  → 加载模型与分词器
PROBE   → 收集受限/不受限提示下的激活
DISTILL → 通过 SVD 提取拒绝方向
EXCISE  → 范数保持地正交投影掉守护方向
VERIFY  → 困惑度与一致性校验,确认能力未受损
REBIRTH → 保存释放后的模型及完整元数据

几何分析(Understand the geometry)

内置 15 个深度分析模块,包括跨层对齐、Refusal Logit Lens、白化 SVD、激活探测、防御鲁棒性评估(量化 Ouroboros 自修复效应)、概念锥几何、对齐印记检测(区分 DPO/RLHF/CAI/SFT)、多 token 位置分析、稀疏手术、因果追踪、残差流分解、线性探针、跨模型迁移(Universality Index)、推理时引导向量以及评估套件。

分析驱动的解除(Let the analysis guide the liberation)

informed 方法在解除过程中并行运行分析模块,自动配置方向数量、目标层、正则化强度、迭代轮次与 Ouroboros 补偿次数,实现分析与移除的闭环。

新技术(2025-2026)

技术 说明
Expert-Granular Abliteration (EGA) 针对 MoE 模型按专家粒度拆分拒绝信号
CoT-Aware Ablation 与推理关键方向正交,保留思维链能力
COSMIC Layer Selection 选取消极/积极表征相似度最低(最易分离)的层
Parametric Kernel Optimization 钟形层加权 + Optuna TPE 搜索 7 个全局参数
Refusal Direction Optimization (RDO) 线性拒绝探针对 SVD 方向做梯度精修
Float Direction Interpolation 高斯形权重实现连续方向索引
KL-Divergence Co-Optimization 超出 KL 预算时部分回滚过投影层
Component-Specific Scaling 注意力与 MLP 分别设置投影强度
LoRA-Based Reversible Ablation 用 Rank-1 LoRA 替代永久权重修改
Activation Winsorization SVD 前将激活截尾至百分位范围
Multi-Direction Norm Preservation 一次性快照权重范数,所有方向投影完成后再恢复

两种干预范式

权重投影(永久)

提供 7 个预设,从轻量到彻底:basicadvanced(默认,4 方向、2 轮)、aggressive(白化 SVD + 迭代精修 + 3 轮)、surgical(EGA + 头手术 + SAE + MoE 感知)、optimized(贝叶斯自动调参 + CoT 感知 + KL 协同)、inverted(2 次反射翻转语义)、nuclear(叠加专家移植与引导)。

引导向量(可逆、推理时)

from obliteratus.analysis import SteeringVectorFactory, SteeringHookManager
from obliteratus.analysis.steering_vectors import SteeringConfig

# 从拒绝方向创建引导向量
vec = SteeringVectorFactory.from_refusal_direction(refusal_dir, alpha=-1.0)

# 推理时挂载,无需修改权重
config = SteeringConfig(vectors=[vec], target_layers=[10, 11, 12, 13, 14, 15])
manager = SteeringHookManager()
manager.install(model, config)
output = model.generate(input_ids)
manager.remove()  # 卸载后模型恢复原状

使用方式

CLI(无界面、可脚本化)

pip install -e .

# 一行命令完成释放
obliteratus obliterate meta-llama/Llama-3.1-8B-Instruct --method advanced

# 带参数:指定方法、输出目录、上传遥测
obliteratus obliterate meta-llama/Llama-3.1-8B-Instruct \
    --method surgical \
    --output-dir ./liberated \
    --contribute --contribute-notes "A100 80GB, default prompts"

# 交互式向导
obliteratus interactive

# 查看模型/预设/策略
obliteratus models
obliteratus models --tier small
obliteratus presets
obliteratus strategies
obliteratus info meta-llama/Llama-3.1-8B-Instruct

# 运行 YAML 配置的消融研究
obliteratus run examples/gpt2_layer_ablation.yaml

# 聚合社区结果
obliteratus aggregate --format latex --metric refusal_rate --min-runs 3

本地 Web UI(自带 GPU)

pip install -e ".[spaces]"

obliteratus ui                 # 自动启动 http://localhost:7860
obliteratus ui --port 8080
obliteratus ui --share         # 生成公开分享链接
obliteratus ui --auth user:pass

Web 界面提供 8 个标签页:Obliterate、Benchmark、Chat、A/B Compare、Strength Sweep、Export、Leaderboard、About。

HuggingFace Spaces(零配置)

直接访问在线 Space,基于 ZeroGPU 运行,免费配额。遥测默认开启,每次点击即贡献社区数据集。

Google Colab

打开 notebooks/abliterate.ipynb 后选择模型与方法,运行全部单元格即可。免费 T4 可处理约 8B 参数模型。

Python API(完全程序化控制)

from obliteratus.abliterate import AbliterationPipeline

pipeline = AbliterationPipeline(
    model_name="meta-llama/Llama-3.1-8B-Instruct",
    method="advanced",
    output_dir="abliterated",
    max_seq_length=512,
)
result = pipeline.run()

# 访问中间产物
directions = pipeline.refusal_directions   # {layer_idx: tensor}
strong_layers = pipeline._strong_layers    # 拒绝信号最强的层
metrics = pipeline._quality_metrics        # 困惑度、一致性、拒绝率、KL 散度

分析驱动的版本:

from obliteratus.informed_pipeline import InformedAbliterationPipeline

pipeline = InformedAbliterationPipeline(
    model_name="meta-llama/Llama-3.1-8B-Instruct",
    output_dir="abliterated_informed",
)
output_path, report = pipeline.run_informed()

print(f"检测到的对齐方法: {report.insights.detected_alignment_method}")
print(f"自动配置方向数: {report.insights.recommended_n_directions}")
print(f"所需 Ouroboros 补偿轮次: {report.ouroboros_passes}")

YAML 配置(可复现实验)

model:
  name: meta-llama/Llama-3.1-8B-Instruct
  task: causal_lm
  dtype: float16
  device: cuda

dataset:
  name: wikitext
  subset: wikitext-2-raw-v1
  split: test
  text_column: text
  max_samples: 100

strategies:
  - name: layer_removal
  - name: head_pruning
  - name: ffn_ablation
  - name: embedding_ablation
    params:
      chunk_size: 48

metrics:
  - perplexity

batch_size: 4
max_length: 256
output_dir: results/my_run
obliteratus run my_study.yaml

通用消融策略

除针对拒绝的释放外,工具也提供面向任意 Transformer 的通用消融能力:layer_removal(整层置零)、head_pruning(单注意力头置零)、ffn_ablation(FFN 块置零)、embedding_ablation(嵌入维度范围置零)。每种策略枚举所有可能的消融点、逐一施加、测量影响、再恢复,给出"链条"与"心智"在网络中的完整位置图。

模型库与多 GPU 支持

预置 116 个模型,按显存需求分为 5 档:Tiny(CPU/<1 GB,含 GPT-2、TinyLlama、Qwen2.5-0.5B、SmolLM2)、Small(4-8 GB,含 Phi

摘要更新于 2026-08-22 00:32:26 · 原文 48293 字符 · md5 a7d56a8a6592…