企业宣传,产品推广,广告招商,广告投放联系seowdb

数据合成方法

写在前面

大家好,我是刘聪NLP。

大模型时代,数据至上,如何利用大模型合成更多高质量数据也备受关注。

今天给大家分享一个有意思的大模型合成数据方法-MAGPIE,在不需要种子数据和额外人工干预的情况下,挖掘出对齐过的模型自身的指令数据。

《MAGPIE: Alignment>

paper:https://github.com/magpie-align/magpie

核心思想:对齐过的大模型本身是经过大量指令数据对齐得来,往往这些对齐后的模型接受的输入通常由“前置查询模板”、“查询内容”、“后置查询模板”组成(例如:Llama2-Chat模型接受的输入是"[INST] Hi! [/INST]",[INST] 是前置查询模板”,[/INST]则是后置查询模板)当对模型仅输入前置模板时,模型会自回归的合成“查询内容”;并且当组合完全时,开源获得模型的回复结果。

这样就变相地挖掘出对齐模型的指令数据,你以为只开了模型,我直接挖向

方法介绍

如上图所示,合成数据主要涉及两个步骤:

注意:在指令合成过程中,Temperature和Top-p都需要开得比较大,保证指令的多样性;在回复合成过程中,采用贪婪解码,默认概率最高的Token可能来自模型的训练语料。

当然直接生成的指令是涉及的场景是广泛、随机的,如果需要针对限定任务进行数据生成,可以通过增加系统提示词来限定场景,比如:增加对数学任务进行指令数据生成,

如果想获取多轮对话数据,只需要在单轮的指令数据后面继续进行指令和回复的生成即可。但当开源模型本身参数较小时,生成的多轮数据可能出现忘记上下文内容的情况,可以通过增加系统提示的方式,让模型强制记住上文信息。

还可以构造偏好数据,额外利用模型基座生成回复,再通过奖励模型FsfairX-LLaMA3-RM-v0.1进行打分,保留合成回复分数大于基座回复分数的数据。

数据分析

衡量合成数据好坏,最简单直接办法就是SFT一把模型,比较训练后模型的效果。

MAGPIE方法利用Llama3-8B-Instruct模型和Llama3-70B-Instruct模型分别构造了MAGPIE-Air数据和MAGPIE-Pro数据,详细分布如下表所示,

与ShareGPT、WildChat、Evol Instruct、UltraChat、OpenHermes和Tulu V2 Mix数据分别对Llama3-8B模型进行微调,效果如下表所示,

采用MAGPIE-Air和MAGPIE-Pro训练的模型,要比其他数据集训练的模型效果要好,甚至在AlpacaEval 2榜单上超过了原始的Llama3-Instruct模型。

Pro数据训练的模型优于Air数据训练的模型,主要是Llama3-70B-Instruct模型能力更强,获得的指令数据质量更高。

经过过滤的数据集训练的模型效果比原始数据集更优,其中过滤指标包括:

上面每个过滤数据的详细过滤规则如下表所示,

利用MAGPIE-Pro-300K-Filtered数据集,训练Qwen1.5-4B和Qwen1.5-7B模型的效果要好于Qwen1.5-4B-Chat和Qwen1.5-7B-Chat模型,说明MAGPIE方法获取的指令数据对其他非同源模型,依然有效。

多轮数据的质量要高于单论数据集。

其他榜单(MMLU 、ARC、HellaSwag、TruthfulQA、Winogard、GSM8K、MMLU-Redux)上的效果如下,

对MAGPIE数据进行安全性分析,利用Llama-Guard-2模型进行预测,有害指令少于1%。

写在最后

MAGPIE方法不用种子数据,不用昂贵的GPT4API接口,仅靠挖掘开源模型本身,就可以获取高质量合成数据,是个有趣的研究。

© 版权声明
评论 抢沙发
加载中~
每日一言
不怕万人阻挡,只怕自己投降
Not afraid of people blocking, I'm afraid their surrender