支持私有云部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


LLM合成LLM训练数据方法小调研

发布日期:2024-05-02 18:22:23 浏览次数: 2973 来源:AIGC小白入门记

T

    作者名称:王荣花师小哲
原文地址:https://zhuanlan.zhihu.com/p/683697056

简单总结了一下现在使用LLM合成数据用于训练的一些论文,不是特别全,仅供参考
简单的方法,例如就是让ChatGPT生成响应之类的就不放进来了,大体上分成了4类,有些方法归类有些纠结,暂时先这样划分
除了方法的简单描述,还着重看了下这些论文是怎么过滤/筛选高质量数据的
除了第四类,一般LLM和数据集都是独立的,所以用来生成数据的往往是ChatGPT(早期研究)和GPT-4(后期研究),就统一叫GPT-4了

1. 从头生成类(没有种子集,找原始数据,然后LLM)

(1)GENIE: ACHIEVING HUMAN PARITY IN CONTENT-GROUNDED DATASETS GENERATION


生成方法倒是很简单,找到原始数据然后用LLM few-shot一下
过滤:通过格式、忠实度和质量的评分,用到了NLI模型和RM(奖励模型)

(2)textbook/phi
Textbooks Are All You Need
Textbooks Are All You Need II: phi-1.5 technical report
与其说是生成,不如说重点可能在于过滤(从大数据集中筛选),其实也是prompt工程

2. 种子集+LLM生成类(包括迭代)

(1)Evol-Instruct
WizardLM: Empowering Large Language Models to Follow Complex Instructions
WizardCoder: Empowering Code Large Language Models with Evol-Instruct
WizardMath: Empowering Mathematical Reasoning for Large Language Models via Reinforced Evol-Instruct等


Wizard系列提出的Evol-Instruct,有一般自然语言版本和Code版本等,其实是让GPT-4对种子集做扩展
当然一个主要问题是边际效应
过滤:主要是删除掉重复的、没有实质改进的和LLM无法正确生成响应的新输入。是通过prompt让GPT-4来做的

(2)MFTCODER: BOOSTING CODE LLMS WITH MULTITASK FINE-TUNING

使用种子集+模板进行agent多轮对话或多次单轮对话(MFT是多任务微调的缩写)

(3)WAVECODER: WIDESPREAD AND VERSATILE ENHANCED INSTRUCTION TUNING WITH REFINED DATA GENERATION

这个比较简单,就是对于代码用GPT-4生成并用GPT-4打分过滤

(4)Magicoder: Source Code Is All You Need


OSS-INSTRUCT方法,让LLM从源代码片段中获取灵感来生成问题和解答。
最好的地方在于和Evol-instruct等方法是正交的,可以一起用
这种方法好像没有过滤,只是做了净化(排除数据污染)

(5)A Universal Prompt Generator for Large Language Models

和Orca-Math(见后面)的微调部分比较像,主要是SFT后还做了对齐

(6)SELF-INSTRUCT: Aligning Language Model with Self Generated Instructions


过滤方法:ROUGE-L,主要是去重

3. 风格改进类(这种往往都是正交的):

(1)IMPROVING CODE STYLE FOR ACCURATE CODE GENERATION


改进代码数据的风格可以提高Code LLM的能力。包括(1)变量重命名;(2)将复杂代码模块化为子函数;(3)加注释。
过滤:GPT-4

(2)I Learn Better If You Speak My Language: Enhancing Large Language Model Fine-Tuning with Style-Aligned Response Adjustments

(小样本)让微调数据的风格和LLM风格一致。其实就是在训练LM上PPL更低,虽然修改是GPT-4做的

(3)Reformatted Alignment


对数据集进行重新格式化。这个自动化程度较高,会自动识别任务,并通过RAG增加知识信息等。
过滤:主要是基于规则(模板是否正确)、长度等

(4)CoT类

How Do Humans Write Code? Large Models Do It the Same Way Too
TORA: A TOOL-INTEGRATED REASONING AGENT FOR MATHEMATICAL PROBLEM SOLVING
其实就是把答案做成CoT、PoT这样的形式,往往是原来有的标签的(在有标签的情况下LLM的CoT解释会比没有好很多,俗称对着答案猜步骤)

4. 数据集和模型一起迭代

这个是不包括不产生新数据的模型自迭代的

(1)Self-Alignment with Instruction Backtranslation


①自增强。用LLaMA和种子集来给无标签web数据标注prompt;②自管理。迭代进行

(2)Self-Play Fine-Tuning Converts Weak Language Models to Strong Language Models

SPIN,从SFT后的弱模型出发自博弈(模型通过生成自己的训练数据,并将其与人工标注数据区分开来,以不断优化模型的策略)

(3)ReST系列

Reinforced Self-Training (ReST) for Language Modeling


ReST其实是一种和RLHF相对应的方法,不过确实是自迭代
内外循环,筛选是基于RM的
Beyond Human Data: Scaling Self-Training for Problem-Solving with Language Models
ReSTEM,ReST的简化修改版本,主要用于微调了
REST MEETS REACT: SELF-IMPROVEMENT FOR MULTI-STEP REASONING LLM AGENT
ReST+ReAct,目的是让ReAct中的agent迭代

(4)Orca系列

Orca系列其实每一个都是有差别的,想了想还是放这吧
Orca-Math: Unlocking the potential of SLMs in Grade School Math
重点谈这个。获取数据集的方法是Agent-Instruct,三个agent,负责扩充问题的、提出修改意见的、修改的,可以迭代进行
训练是先SFT,然后相当于用了RLAIF迭代训练(用GPT-4生成偏好数据,然后对齐,对齐用的是KTO方法)
Orca: Progressive Learning from Complex Explanation Traces of GPT-4
Orca就比较简单了,直接获取GPT-4响应,创新点是添加了解释轨迹
Orca 2: Teaching Small Language Models How to Reason
在Orca 1的解释微调的基础上引入谨慎推理,就是在训练时告诉模型用了哪种解题方法(接回答、逐步处理、解释然后回答),然后在推理时不告诉(提示擦除),让模型学会自己选择方法


面试题汇总


53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询