OBLITERATUS
一句话简介
一个基于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 个预设,从轻量到彻底:basic、advanced(默认,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…