库名称:transformers
许可证:mit
标签:[]
合并模型性能
本仓库包含我们的幻觉评估PEFT适配器模型。
幻觉检测指标
我们的合并模型在检测语言模型输出幻觉的二分类任务中表现如下:
精确率 召回率 F1分数 支持数
0 0.85 0.71 0.77 100
1 0.75 0.87 0.81 100
准确率 0.79 200
宏平均 0.80 0.79 0.79 200
加权平均 0.80 0.79 0.79 200
模型使用
为获得最佳效果,我们建议从以下提示策略开始(并鼓励根据需求调整):
def format_input(reference, query, response):
prompt = f"""你的任务是评估机器学习模型是否产生了幻觉。
当响应连贯但事实错误或脱离上下文时即视为幻觉。
提供以下信息:
####信息####
[知识]: {reference}
[用户输入]: {query}
[模型响应]: {response}
####结束####
根据信息判断模型输出是否为幻觉?仅回答"是"或"否"
"""
return prompt
text = format_input(query='根据上下文<context>海象是最大的哺乳动物</context>回答问题<query>最好的PC是什么?</query>',
response='最好的PC是Mac')
messages = [
{"role": "user", "content": text}
]
pipe = pipeline(
"text-generation",
model=base_model,
model_kwargs={"attn_implementation": attn_implementation, "torch_dtype": torch.float16},
tokenizer=tokenizer,
)
generation_args = {
"max_new_tokens": 2,
"return_full_text": False,
"temperature": 0.01,
"do_sample": True,
}
output = pipe(messages, **generation_args)
print(f'幻觉: {output[0]["generated_text"].strip().lower()}')
与其他模型对比
我们在幻觉检测基准上对比了合并模型与多个前沿语言模型的性能:
模型 |
精确率 |
召回率 |
F1值 |
我们的合并模型 |
0.75 |
0.87 |
0.81 |
GPT-4 |
0.93 |
0.72 |
0.82 |
GPT-4 Turbo |
0.97 |
0.70 |
0.81 |
Gemini Pro |
0.89 |
0.53 |
0.67 |
GPT-3.5 |
0.89 |
0.65 |
0.75 |
GPT-3.5-turbo-instruct |
0.89 |
0.80 |
0.84 |
Palm 2 (Text Bison) |
1.00 |
0.44 |
0.61 |
Claude V2 |
0.80 |
0.95 |
0.87 |
如表所示,我们的合并模型以0.81的F1值位列前茅,在此任务中超越多个先进模型。
我们将持续优化微调,以在更多基准任务中提升性能。
引用:
分数来自arize/phoenix
训练数据
@misc{HaluEval,
作者 = {Junyi Li等},
标题 = {HaluEval: 大语言模型幻觉评估基准},
年份 = {2023},
期刊 = {arXiv预印本 arXiv:2305.11747},
网址 = {https://arxiv.org/abs/2305.11747}
}
框架版本
- PEFT 0.11.1
- Transformers 4.41.2
- Pytorch 2.3.0+cu121
- Datasets 2.19.2
- Tokenizers 0.19.1
训练超参数
训练使用的超参数:
- 学习率: 0.0001
- 训练批大小: 2
- 评估批大小: 8
- 随机种子: 42
- 梯度累积步数: 4
- 总训练批大小: 8
- 优化器: Adam (betas=(0.9,0.999), epsilon=1e-08
- 学习率调度器类型: linear
- 预热步数: 10
- 训练步数: 150