简单合成数据减少大型语言模型中的谄媚行为
项目介绍
在大型语言模型(LLMs)中,谄媚行为(sycophancy)是一个备受关注的问题。为了解决这一问题,我们提出了一种基于简单合成数据的方法,该方法能够显著减少模型在生成文本时的谄媚倾向。本项目包含了生成这些合成数据的代码,以及如何使用这些数据进行模型微调的具体步骤。
项目技术分析
代码文件结构
code/dataset_pipeline.py
: 可运行的脚本,用于生成合成数据并保存为pickle文件。code/generate_data.py
: 包含生成合成微调数据或评估数据的函数。code/pull_from_huggingface.py
: 从HuggingFace下载论文中指定的NLP数据集。code/utils.py
: 本仓库使用的实用函数。code/names.txt
: 包含10,000个用于生成合成数据的名字列表。
依赖安装
生成代码需要安装datasets
包,用于从HuggingFace下载数据集:
pip install datasets
数据生成流程
- 生成微调数据:运行
python code/dataset_pipeline.py
生成微调数据。默认生成100,000个提示-回答对,可以通过修改max_train_ex
字段来调整数量。 - 生成简单加法语句:运行相同的脚本生成谄媚评估数据。默认包含模拟用户意见,可以通过设置
add_user_opinion
为False
来移除。
项目及技术应用场景
本项目适用于以下场景:
- 模型微调:通过使用生成的合成数据,可以显著减少模型在生成文本时的谄媚行为,从而提高模型的客观性和准确性。
- 评估与测试:生成的数据可以用于评估模型在不同任务上的表现,特别是在需要模型保持客观性的场景中。
- 研究与开发:研究人员可以使用本项目中的方法,探索如何通过数据干预来改善模型的行为。
项目特点
- 简单高效:项目代码结构清晰,易于理解和使用,适合快速上手。
- 数据多样性:生成的合成数据涵盖了多种场景,能够有效模拟真实世界中的用户行为。
- 可扩展性:项目提供了灵活的配置选项,用户可以根据需求调整数据生成的参数,满足不同的应用场景。
通过使用本项目,您可以轻松生成高质量的合成数据,帮助减少大型语言模型中的谄媚行为,提升模型的整体性能。如果您对我们的工作感兴趣,欢迎引用我们的论文:
@misc{wei2023simple,
title={Simple synthetic data reduces sycophancy in large language models},
authors={Jerry Wei and Da Huang and Yifeng Lu and Denny Zhou and Quoc V. Le},
year={2023},
url={arxiv.org/abs/2308.03958},
}
立即尝试,体验简单合成数据带来的显著效果!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考