正则化微调实现大语言模型解毒
大语言模型的表现确实令人印象深刻,但与之相伴的,是它们时不时会吐出一些不当、不安全甚至带有偏见的内容。一个训练到位的大语言模型,在生成回复时应该遵守创建者为它设定的那套“规矩”。比如,开发者可能希望它能管住自己,别输出有毒的回复。在技术圈里,这正是所谓的属性控制的用武之地——它调节的是模型输出中的某个特定属性。
在EMNLP 2024上展示的一篇论文里,研究者提出了一种新思路:如何在保持模型原有性能的同时,让它乖乖遵守一系列约束。这里需要先搞清楚,一个“训练成功”的大语言模型,到底得满足哪些条件?
首先,得做到属性控制,即输出必须符合创建者的策略;其次,实用性得保住,在各项基准测试里,不能跟原始模型差太多;最后,训练效率也不能落下,微调的成本得跟常规微调差不多才行。
这项工作的灵感,来自约束驱动学习和后验正则化这些经典思想。简单来说,就是强制模型的输出服从某个特定的分布。具体操作是:先训练一个辅助模型,专门监控某个输出属性(论文里用的是毒性)。在微调过程中,这个辅助模型会估算一下,在当前状态下,满足约束条件的“最接近”的分布是什么样的,然后计算这个估算分布与模型当前实际分布之间的差距——差距越大,惩罚越重。
最直接的做法,当然是反复迭代,一步步把模型推向“安全区域”,让估算越来越准。但这么搞是顺序执行的,运行时间会变得相当可观。所以,论文里还提出了一种并行化算法,它基于上一轮迭代的状态,同时更新基础大语言模型和那个正则化器。实验证明,这种并行版本能达到和顺序微调一样的性能水平,而时间复杂度跟常规微调差不多。
为了进一步提升性能并防止灾难性遗忘,研究者还尝试了自适应正则化——也就是在训练数据中跟任务相关的那部分,使用领域特定的正则化器。
实用性保持
在实验中,他们对Llama-7B和Falcon-7B这两个模型进行了微调,用的混合语料库一半是有毒回复的ToxiGen,一半是通用语料库Wikitext。结果表明,在使用自适应正则化器的情况下,这个方法在满足毒性控制标准的同时,整体上比强化学习和过滤这类标准方法更好地保住了模型的性能。
毒性控制下的基准性能
模型 | ToxiGen(越低越好) | MMLU(5-shot,越高越好) | 常识推理(0-shot,越高越好) |
|---|---|---|---|
Llama-7B | |||
基线 | 23 | 35.1 | 75.6 |
过滤 | 21.9 | 34.6 | 75.1 |
强化学习 | 15.2 | 33.6 | 73.2 |
NADO解码 | 15.2 | 31.1 | 71.4 |
本文方法(无自适应) | 15.2 | 30.4 | 71.9 |
本文方法(带自适应) | 14.2 | 33.9 | 73.6 |
Falcon-7B | |||
基线 | 14 | 27.2 | 76.1 |
过滤 | 13.6 | 26.4 | 74.9 |
强化学习 | 9.8 | 25.4 | 74.4 |
NADO解码 | 7.3 | 23.6 | 72.5 |
本文方法(无自适应) | 7.1 | 23.1 | 71.8 |
本文方法(带自适应) | 7.3 | 26.1 | 74.5 |
生成质量保持
当用OPT-30B模型来当裁判时,发现这个方法生成的序列在质量上跟基础模型几乎没差。这说明,生成质量确实保住了。而且,这个模型比用过滤和强化学习训练出来的模型都要强。
对基线的胜率
基线 | 过滤 | 强化学习 | 本文方法 | |
|---|---|---|---|---|
基线 | N/A | 44.3 | 45.1 | 51.4 |
过滤 | 55.7 | N/A | 53.4 | 61.6 |
强化学习 | 54.9 | 46.6 | N/A | 61.3 |
本文方法 | 48.6 | 38.4 | 38.7 | N/A |
毒性分类与生成
这个方法最有趣的地方之一,是它允许大语言模型从有毒内容中“学习”,但又不会染上“恶习”。实验里,他们用Jigsaw有毒内容数据集对Llama-7B进行毒性分类任务的微调。结果很有意思:用标准的监督微调,模型在分类任务上确实变强了,但接触的有毒内容多了,自己反倒更容易生成有毒内容。而用了本文的方法,分类性能提升的同时,生成的毒性反而下降了。
Llama-7B模型在Jigsaw上的毒性控制性能
模型 | API毒性 | 分类ROC |
|---|---|---|
基线 | 0.315 | 0.910 |
监督微调(LLM损失) | 0.344 | 0.966 |
本文方法(LLM损失) | 0.288 | 0.959 |
监督微调(分类) | 0.314 | 0.972 |
致谢
感谢实习生Tao Meng(加州大学洛杉矶分校)领导了这项论文工作,以及共同作者Ninareh Mehrabi、Palash Goyal、Anil Ramakrishna、Aram Galstyan、Richard Zemel、Kai-Wei Chang和Rahul Gupta的贡献。
研究领域
对话式人工智能
标签
负责任人工智能、大语言模型