Abliterator 使用教程

Abliterator 使用教程

abliterator Simple Python library/structure to ablate features in LLMs which are supported by TransformerLens abliterator 项目地址: https://gitcode.com/gh_mirrors/ab/abliterator

1. 项目介绍

Abliterator 是一个简单但功能强大的 Python 库,用于对大型语言模型(LLMs)进行特征消融(ablation)研究。通过 TransformerLens 支持的消融实验,可以更容易地对模型进行修改和测试,以找到最佳的正交化模型。该项目旨在提供一个模板,帮助研究人员快速实现和测试消融实验,并计划在未来添加更多功能,如特征增强。

2. 项目快速启动

安装依赖

首先,确保你已经安装了 Python 环境。接下来,克隆项目仓库并安装必要的依赖:

git clone https://github.com/FailSpy/abliterator.git
cd abliterator
pip install -r requirements.txt

加载模型

在开始使用 Abliterator 之前,需要加载一个预训练的模型。这里以 Meta-Llama-3-70B-Instruct 模型为例:

import abliterator

model = "meta-llama/Meta-Llama-3-70B-Instruct"

缓存激活

加载模型后,需要缓存一些激活数据以供后续分析:

dataset = [
    abliterator.get_harmful_instructions(),
    abliterator.get_harmless_instructions()
]

device = 'cuda'  # 或者 'cpu'
n_devices = None  # 如果不设置,将使用 device 上的所有设备

my_model = abliterator.ModelAbliterator(
    model,
    dataset,
    device=device,
    n_devices=n_devices,
    activation_layers=[
        'resid_pre', 'resid_post', 'attn_out', 'mlp_out'
    ],
    chat_template="<system>\n{instruction}<end><assistant>",
    positive_toks=[
        23371, 40914
    ],
    negative_toks=[
        4250
    ]
)

my_model.cache_activations(N=512, reset=True, preserve_harmless=True)

保存状态

在进行一系列实验后,你可以保存当前的激活状态和模型权重,以便下次继续使用:

my_model.save_activations('file.pth')

3. 应用案例和最佳实践

Abliterator 的一个典型应用是测试和修改模型的拒绝方向(refusal directions)。以下是一个简单的过程:

获取拒绝方向

refusal_dirs = my_model.refusal_dirs()

测试拒绝方向

testing_dir = refusal_dirs['blocks.18.hook_resid_pre']
my_model.test_dir(testing_dir, N=32, use_hooks=True)

应用最佳拒绝方向

my_amazing_dir = my_model.find_best_refusal_dir()[0]
my_model.apply_refusal_dirs([my_amazing_dir])

黑名单和白衣名单

如果某些层在修改时出现问题,可以将它们添加到黑名单中,以防止修改:

my_model.blacklist_layer(27)

相反,如果你想要解锁某个层,可以将其添加到白衣名单中:

my_model.whitelist_layer(27)

4. 典型生态项目

目前 Abliterator 还是一个比较新的项目,其生态系统正在不断发展中。不过,它已经可以与一些其他的机器学习和自然语言处理库相结合,例如 TensorFlow、PyTorch 和 Hugging Face 的 Transformers。通过这些库的集成,可以进一步扩展 Abliterator 的功能,实现更复杂和深入的语言模型分析和修改。

abliterator Simple Python library/structure to ablate features in LLMs which are supported by TransformerLens abliterator 项目地址: https://gitcode.com/gh_mirrors/ab/abliterator

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯玫艺Harriet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值