Lion:闭源大语言模型的对抗蒸馏
Lion,由香港科技大学提出的针对闭源大语言模型的对抗蒸馏框架,成功将 ChatGPT 的知识转移到了参数量 7B的 LLaMA 模型(命名为 Lion),在只有 70k训练数据的情况下,实现了近 95%的 ChatGPT 能力近似。此外,框架的普适性使它不仅可以用于蒸馏 ChatGPT,还可方便地适用于其他闭源 LLMs。
论文题目:
Lion:闭源大语言模型的对抗蒸馏
Lion: Adversarial Distillation of Closed-Source Large Language Model
论文链接:
https://arxiv.org/abs/2305.12870
项目地址:
https://github.com/YJiangcm/Lion
方法概览
具体来说,作者设计 prompt 让闭源 LLM 充当一个“裁判” Referee 来判别出教师的回答和学生的回答存在显著性能差距的难指令。并且,作者设计 prompt 让闭源 LLM 充当一个“生成器” Generator 来生成新的指令,这些生成的指令模拟了对应于被判别出的难指令的数据分布。提出的对抗蒸馏框架如下图所示,每一轮迭代包括三个阶段:
1)模仿阶段,对于一组指令,将学生的响应与老师的响应对齐;
2)区分阶段,识别出难指令;
3)生成阶段,根据识别出的难指令,产生新的难指令以增加对学生模型的挑战。
考虑到学生模型在学习过程中可能会出现灾难性遗忘的问题,作者也生成了同等数量的新的简单指令,来增加训练数据的多样性。具体细节请查阅原论文:
https://arxiv.org/abs/2305.12870
本质上,这个对抗性框架形成了一个正向的反馈循环,有效地提升了学生模型的能力。
实****验结果
为了验证方法的有效性,作者将提出的对抗蒸馏框架应用于知名的闭源大语言模型 ChatGPT, 将其知识转移到一个开源的基础预训练模型 LLaMA,该模型由 70 亿参数组成。作者选择了 Alpaca 的训练数据(仅由 175 个手动选择的种子指令生成)作为初始的训练指令,并进行了 3 次 AKD 迭代,总共使用了 70K 的 instruction-following 数据进行训练。最终训练好的模型被命名为 Lion。
作者选取了此前的一系列工作包括 LLaMA,Alpaca,Vicuna 和 WizardLM 作为基线。为了公平比较,模型的参数量都定为 7B。按照先前的研究工作,作者使用了两种评估方法:1)使用 GPT-4 自动评估;2)根据“对齐标准”进行人工评估。
**3.1 Automatic Evaluation with GPT-**4
根据先前的研究表明,GPT-4 在比较聊天机器人的回答时具有生成高度一致的排名和全面评估的潜力。这里,作者利用 GPT-4 对两个模型在 80 个 Vicuna-Instructions 上的回答质量进行自动评分(评分从 1 到 10)。作者选取 ChatGPT 的答案作为参照,将 ChatGPT 和其他模型两两进行比较,通过计算得分之和的比率得到不同模型相对 ChatGPT 的整体回答质量。
如下图所示,Lion(7B)相比其他基准模型至少提高了 5.45% 的相对得分,并且接近于 ChatGPT94.74% 的回复质量。
为了全面比较 Lion 与其他基准模型在生成高质量回复方面的能力,作者在不同任务类别上绘制了相对回复质量的对比,具体见下图。值得注意的是,Lion 在通用、知识、常识和反事实任务类别中均稍微超过了 ChatGPT。此外,Lion 在数学任务上相比基线模型得分至少高出 26.67%,在代码生成任务上也超过了大部分基准模型。
3.2 Human Evaluation with Alignment Criteria
为了评估 LLM 的对齐质量,作者遵循了此前研究采用的 3H 标准:只有具备 helpful、honest 和 harmless(HHH)特征的模型才被认为是对齐的。这些标准被用于衡量人工智能(AI)系统与人类价值观的一致程度。
作者在 252 个 User-Oriented-Instructions 进行了人工评估,并在下图中比较了 Lion 和不同模型之间胜、平、负的频率。人工评估的结果表明,Lion 生成的回答优于除 ChatGPT 之外的其他基准模型。具体来说,与 WizardLM 相比,Lion 在 252 个用户指令中有 81 次取得胜利,而仅在 58 次指令中输掉。这些发现表明,作者提出的框架使得 Lion 在学习各种指令方面非常高效。
结论
文章提出了一种创新的对抗知识蒸馏(AKD)框架,用于将闭源的大语言模型(LLM)蒸馏到一个“紧凑”的开源学生模型中。先前的方法集中在单向知识传递上,而作者的方法试图将老师和学生相互的“反馈”融入到学习过程中。作者利用 LLM 的多功能角色适应性,使用不同的 prompt 让闭源模型识别“难”的指令,并为学生模型生成新的“难”指令,从而创建了一个包含模仿、辨别和生成的三阶段对抗循环。
这种方法能够迭代地、高效地提升学生模型的性能。应用该框架,作者将 ChatGPT 蒸馏为一个仅有 70 亿参数的开源学生模型 LLaMA(作者将得到的模型命名为 Lion)。尽管只在 70k 的指示遵循数据上训练,Lion 展现出了接近 95% 的 ChatGPT 能力,在 GPT-4 自动化评估和人工评估中都超过了以往的基线。作者希望 Lion 模型可以作为反映 ChatGPT 性能的基线,以及 NLP 社区中开源指令遵循模型的基线。
局限和讨论
作者在最后指出,Lion 模型仍然存在以下局限:
1)该模型在处理涉及复杂编程或数学计算的任务方面能力有限;
2)训练数据不包括对话,因此 Lion 模型在多轮对话方面的能力较弱;
3)模型的输入序列长度上限为 4096,输出新序列的长度上限为 1024,因此无法实现超长文档处理;
4)模型的安全性,输出内容的毒性、偏好性未经优化。
作者也指出,对于如何衡量大模型的能力,一个统一的、全面的评价指标是必要的。
参考资料:https://it.sohu.com/a/680520547_121119001