Zephyr利用dDPO,显著改善了意图对齐和AI反馈(AIF)偏好数据,该方法遵循与InstructGPT相似的步骤。
训练方式
蒸馏监督微调(dSFT)
从原始LLM开始,首先需要训练它响应用户提示,传统上是通过SFT完成的。但是通过访问教师语言模型,可以通过迭代的自我提示构建数据集,其中教师用于响应指令并根据响应改进指令。蒸馏由SFT进行。终点是最终数据集,C = {(x1, y1),…,(xJ, yJ)}
AI偏好反馈(AIF)
人类反馈提供了额外的信号来校准llm。Ultra Feedback方法,将提示馈送到多个模型,并由教师模型评估其响应以提供分数。最终的反馈数据集D由这些三元组(x, yw, yl)组成。其中yw是得分最高的响应,yl是随机得分较低的提示。
Distilled Direct Preference Optimization (dDPO)
目标是通过优化偏好模型来改进学生模型(πdSFT),该模型旨在将偏好的回答与低质量的回答进行排序。
从模型的dSFT版本开始,dSFT模型(仅向前)计算(x, yw)和(x, yl)的概率。dDPO模型计算(x, yw)和(x, yl)的概率。最后计算目标并反向传播以更新。
模型细节
所有的微调实验都是在Mistral 7B上进行的。
使用了两个从开放和专有模型中提炼出来的对话数据集:
UltraChat是由GPT-3.5-TURBO生成的1.47万个多回合对话组成的数据集,包含30个主题和20种不同类型的文本材料。在应用truecasing启发式来修复语法错误,以及几个过滤器来删除不希望的模型响应,得到的数据集包含大约200k个示例。
UltraFeedback 由64k个提示组成,每个提示有四个LLM响应,这些响应由GPT-4根据指令遵循、诚实和有用性等标准进行评分。
SFT模型训练一到三个轮。DPO模型也训练一到三个轮。最终的ZEPHYR-7B模型是在SFT模型的基础上初始化的。
评价指标
dDPO改进了聊天功能
与其他的7B模型相比,Zephyr-7B在MT-Bench和AlpacaEval基准测试中展示了卓越的性能
在两个基准测试中都明显优于其他dSFT模型,与大型开放式模型相比,Zephyr-7B与Llama2-Chat 70B差距很小,在MT-Bench和AlpacaEval的近距离内得分更接近,差异不超过两个标准差。
dDPO提高了Academic Task
Zephyr优于所有其他7B模型,包括dSFT模型和Xwin-LM dPPO模型。模型规模是影响结果的一个重要因素,在知识密集型任务上,更大的模型比Zephyr表现得更好。但是Zephyr在某些方面确实达到了40B比例模型的性能。
偏好优化是必要的吗?
dDPO - dSFT在UltraFeedback上直接用DPO对基础模型进行一轮的微调。
dSFT-1在UltraChat上用SFT对一轮的基本模型进行微调。
dSFT-2首先应用dSFT-1,然后在superfeedback排名靠前对话上再进行一次SFT。
dDPO dSFT先应用dSFT-1,然后在ultrafeback上进行一轮DPO训练。
可以看到如果没有初始的SFT步骤(dSFT),模型的表现就会很差,并且不能有效地从反馈中学习。dSFT显著提高了模型在两个聊天基准测试中的得分。直接在反馈数据(dSFT-2)上运行dSFT不会导致明显的性能改进。在完整的Zephyr模型中结合dDPO和dDSFT,可以在两个基准测试中大幅提高性能。
Zephyr 7B α与Zephyr 7B β
dSFT最初是在整个UltraChat语料库上运行的,得到了Zephyr 7B α,但后来作者发现,聊天模型倾向于用不正确的大写来回应,并且会用“我没有个人经验”这样的短语作为答案,即使是像很简单的问题。
所以为了在训练数据中处理这些问题,应用了truecasing启发式来修复语法错误(大约占数据集的5%),以及几个过滤器来关注有用性并删除不希望的模型响应。所得数据集包含约200k个样本,使用这些样本训练得到Zephyr 7B β模型。
Zephyr 通过应用各种不同的训练方式结合得到了一个非常小,但是效果却非常不错的模型,这也为以后的研究方向提供了一些有力的支持。所有有兴趣的话请看论文的原文:
https://arxiv.org/abs/2310.16944
喜欢就关注一下吧:
点个 在看 你最好看!