文章出发点: 高质量的指令微调数据对于对齐大型语言模型 (LLMs) 至关重要。尽管一些模型(例如 Llama-3-Instruct)具有开放权重,但其对齐数据仍然是私有的。高昂的人力成本和数据集创建技巧阻碍了现有开源数据扩展,限制了公共对齐数据集的多样性和质量。所以是否可以通过直接从对齐的 LLM 中提取来大规模合成高质量的指令数据?答案是可以,使用构造的数据,微调后性能与llama3 sft+rlhf后相当。
文章标题: Magpie: Alignment Data Synthesis from Scratch by Prompting Aligned LLMs with Nothing
https://arxiv.org/html/2406.08464v1
https://huggingface.co/Magpie-Align
目录:
- 如何自动构造数据?
- 如何筛选数据?数据集评估
- 实验结果
- 指令微调的超参数
一、如何自动构造?
像llama x、mistral之类的模型,开源的时候名字都是 llama3-instruct,他们用到的qa模板是[INST] Hi! [/INST]
的形式。作者发现,如果只输入空白模板,不提供任何明确的指令作为输入时,自回归特性的LLM会自动去补全用户指令。然后再基于补全指令重新输入LLM,模型生成相应的响应结果。Magpie自主生成指令,不使用任何种子问题,保证了生成指令的多样性。(测试了一下chatml微调的Qwen,失败了~),
如下图,所示,上面第一个框,生成指令,第二条基于指令生成回复。并且这个方法还可以扩展到多轮和偏好数据集。
作者分别使用llama3-8B和llama3-70B,构造了2个数据集:Magpie-Air 和 Magpie-Pro。分别使用 206 和 614 个 GPU 小时创建,无需任何人工干预或付费 API 参与。两个多轮指令数据集 Magpie-Air-MT 和 Magpie-Pro-MT。数据集明细:
二、如何筛选数据
- filter维度
- 指令长度(Instructions Length) :指令的字符总数。
- 响应长度(Response Length) :响应的字符总数。
- 任务类别(Task Category) :根据指令所属的任务类别进行过滤,例如信息查询、创造性写作、数学问题等。
- 指令质量(Instructions Quality) :评估指令的清晰度、具体性和连贯性,并将其评为“非常差”、“差”、“一般”、“好”或“优秀”。
- 指令难度(Instructions Difficulty) :评估解决指令所需任务的知识水平,可以评为“非常容易”、“容易”、“中等”、“困难”或“非常困难”。
- 指令相似度(Instruction Similarity) :使用向量的相似度距离来量化指令之间的相似性,以过滤掉重复或过于相似的指令。
- 奖励(Reward) :使用奖励模型为每个实例的响应分配奖励,可以过滤掉低质量的响应,例如重复或拒绝回答的情况。
- 响应质量(Quality of Responses) :计算指令模型响应与基础模型响应之间的奖励差异((r^* - r_{base})),如果差异大于0,则可能表明指令模型的响应质量更高。
- 安全性分析 ,使用 Llama-Guard-2,结果表明,这两个数据集基本上都是安全的,只有不到 1% 的数据可能包含有害的指令或响应。
预设的过滤配置
- MAGPIE-Air Filter:选择最长的响应,且输入质量至少为“好”,输入难度至少为“中等”,奖励差异大于某个阈值τ2。
- MAGPIE-Pro Filter:根据不同的标准提供多个过滤器配置,例如选择最长的响应,输入质量至少为“平均”,输入难度至少为“容易”,奖励差异大于阈值τ1。
- 不同策略对比的消融实验
三、实验结果
- Magpie 数据集优于其他数据集,微调模型的 LC 和 WR 都超过了使用其他公开数据集微调的base模型。这表明 Magpie 生成的数据集质量更高,从而显着增强了指令跟踪能力。使用 Arena-Hard 评估基准时也得到了类似的观察结果。使用 Magpie 生成的数据集进行微调的 Llama-3 模型甚至优于那些经过偏好优化(例如,与 DPO 相结合的指令调整)的模型,这强调了 Magpie 生成的数据的高质量。
- Magpie 可以增强其他模型的性能。下图,为使用 Magpie 微调Qwen1.5模型的结果。微调模型比经过指令和偏好调整的官方对齐模型取得了更好的性能。说明 Magpie 的有效性及其生成指令的质量。
四、指令微调的超参数
“
NLP前沿交流群成立,详见置顶推文。进群加微:nipi64310
备注加群
-END-
右下角,帮忙点点
+