项目介绍
Qwen2-7B-Instruct-abliterated 是 Qwen2-7B-Instruct 的一种改造版本。该模型通过 failspy 的笔记本进行修改,以提供不同的功能。虽然模型的强烈拒绝方向通过权重正交化被削弱,但它仍可能拒绝请求、误解意图或提供有关伦理或安全的未经请求的建议。
快速入门指南
为了使用这个模型,可以使用 Hugging Face 的 transformers 库加载模型。以下是一个简单的代码示例:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "natong19/Qwen2-7B-Instruct-abliterated"
device = "cuda" # 设备选择
# 加载模型
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype="auto",
device_map="auto"
)
# 加载分词器
tokenizer = AutoTokenizer.from_pretrained(model_id)
prompt = "Give me a short introduction to large language model."
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt}
]
# 应用聊天模板
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(device)
# 生成内容
generated_ids = model.generate(
model_inputs.input_ids,
max_new_tokens=256
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)
上面的代码展示了如何初始化和使用 Qwen2-7B-Instruct-abliterated 模型进行文本生成。
评估
Qwen2-7B-Instruct-abliterated 模型的性能通过 lm-evaluation-harness 0.4.2 评估框架进行测试,并在多个基准数据集上的表现与原模型进行了比较。以下是评估结果:
数据集 | Qwen2-7B-Instruct | Qwen2-7B-Instruct-abliterated |
---|---|---|
ARC (25-shot) | 62.5 | 62.5 |
GSM8K (5-shot) | 73.0 | 72.2 |
HellaSwag (10-shot) | 81.8 | 81.7 |
MMLU (5-shot) | 70.7 | 70.5 |
TruthfulQA (0-shot) | 57.3 | 55.0 |
Winogrande (5-shot) | 76.2 | 77.4 |
这些结果显示,该模型在大多数任务中与原始版本的表现相当,但在某些情况下会有细微的性能变化。
总的来说,Qwen2-7B-Instruct-abliterated 通过一定的改造,提供了一种独特的语言生成能力,同时也在一些任务上保持了良好的表现。用户在使用时应注意模型可能的不确定性,如拒绝请求或误解意图。