Zephyr模型详解

2023-11-20 13:49:42 浏览数 (1)

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


喜欢就关注一下吧:

点个 在看 你最好看!

0 人点赞