微信扫码
与创始人交个朋友
我要投稿
最近看国内对合成数据的研究讨论也变得多 ,而不单单是多模态,扩散模型这些偏视觉类的, 因此就合成数据写一下目前的情况。
2023年国外就有很多研究合成数据的论文, 包括Self-Consuming Generative Models Go MAD, Crowd Workers Widely Use Large Language Models for Text Production Tasks
前者表明即使使用合成数据训练, 这个合成数据也一定要有新的数据, 如果没有, LLM的多样性,质量会随着合成数据训练得越来越多而受到损害, MAD即model autophagy disorder, 出现类似生物学中自噬机制。
“
熟悉信息论的听众应该了解,单纯的合成数据并不能提供任何新的信息量,除非有新的 input,那么这种新的 input 是什么呢?就可能是专家对合成数据进行的检验和校正。因此,我认为利用合成数据是一个可行的方向,但单纯依靠合成数据是难以取得突破的
0-gen(蓝线)困惑度test perplexity最低,模型的预测表现最好,因为它使用了原始的真实数据进行训练。1-gen和2-gen曲线(橙线和绿线)表现较差,困惑度较高,说明当模型大量依赖自己生成的数据时,性能会逐渐下降。这是因为生成的数据可能引入噪声或偏差,降低了模型的学习效果
后者则表面在2023年, ChatGPT 3.5出来后, 出于节省成本提高效率, 越来越多做数据标注的外包员工开始用LLM做标注, 据论文统计, 约33%--46%的外包员工在用LLM生成数据标注, 做数据清洗, 导致交给下游客户的数据已经夹杂了LLM自己生成的合成数据
背景tip: 2010年以前的论文研究验证都用小数据, 2010年之后开始逐渐使用几百万,几千万的大数据去验证, 训练。这是这几十年研究方向的一个重大调整。
对于较高质量的合成数据(方形和菱形),使用较大的模型(即更大的ψ)的确是最佳实践;但如果数据质量较低,模型并不是越大越好,最佳权衡反而处于中等大小, LLM参数越大用低质量合成数据训练时就越容易崩溃
近1、2月新发表的合成数据论文包括synthetic continued pretraining和HuggingFace的SmolLM360M
大规模预训练模型已经非常擅长处理日常常识和普遍知识,但为了进一步提高模型的能力,它们需要专注于学习那些只出现一两次稀有、专业化和复杂的知识,因为这些知识没有被大规模预训练模型充分学习到。synthetic continued pretraining就设计了一个EntiGraph模型, 把真实的原有数据通过知识图谱理解实体关系, 合成新的不同场景的数据, 让LLM能对这个知识点学习得更深入。给我的感觉, 像是为那些晦涩的知识提供相应练习题, 让LLM把知识学得更透。
但生成的这个过程有个问题是LLM生成的合成数据不一定有那么大的多样性, 很可能是同质化地重复。而且领域适合真实数据比较少的领域。按huggingface研究团队的人来说,"合成数据目前只在特定领域有用,网络是如此之大和多样化,真实数据的潜力还没完全发挥。"
根据真实数据, 怎么生成高质量又多样的合成数据, 也是一个需要考虑的点。prompt的不同要求,运动多个不同性能的LLM来生成, LLM as judge的进一步筛选......
synthetic continued pretraining论文结果表明在RAG加上经过专业知识的合成数据微调后的模型的生成质量优于RAG和普通模型, 在谷歌Long-Context LLMs Meet RAG:长文本,Retriever, RAG FT对检索准确性的影响也有实验证明
SmolLM360M除了用大模型从头生成合成数据,也用大模型筛选过滤网络数据,只提取整理最真实最相关的信息。具体来说是使用Llama3-70B-Struct 生成的标注开发了一个分类器,仅保留FineWeb数据集中最具教育意义的网页
基于Cosmo-Corpus构建, 涵盖了Cosmopedia v2(由Mixtral生成的280亿个token的合成教科书和故事)、Python-Edu(来自The Stack的40亿个token的教育性Python样本)以及FineWeb-Edu(来自FineWeb的220亿个token的去重教育性网页样本)。这些数据均由 Mixtral-8x7B-Instruct-v0.1 模型生成。绝大部分数据是通过这种方式生成的: 搜集网页内容 (称为“种子样本”),提供内容所属的主题类别,然后让模型扩写来生成
研究成功除了比较新颖的用LLM作为过滤器, 发现即使是小模型也要在大量数据上训练, 且训练时间要够长。此外数据退火(Anneal the data)也被证明是有效的,也就是在训练的最后一部分保留一组特殊的高质量数据
也发现一个问题: 过去的对齐和微调技术,如SFT、DPO、PPO等都是针对大模型非常有效,但对小模型效果并不理想。
总结下来, 我目前理解的合成数据的要点有:
①合成数据也要新的内容来里面。不然随着合成数据1代, 2代, 还是重复的知识,容易出现过拟合的情况, LLM的性能也会下降, 且模型参数越大,越容易过拟合。而这种新的内容最欠缺的是我们人类思考的过程, 人类倾向于抽象的结果, 容易把思考的过程, 那些草稿纸素材扔掉, 只保留结果。而那些草稿纸的过程数据对大模型训练来说是很珍贵的数据, 能够让它更能学会分布思考。
②合成数据适合于特定的领域, 在大多数领域 ,真实数据都还没有充分利用好。有真实数据肯定优先利用真实数据
③合成数据的质量,多样性受prompt, 合成数据的LLM本身训练数据, 人工验证补充等影响, 这方面目前的研究我还了解得比较少。相比怎么优化RAG的检索质量, 怎么优化合成数据的生成质量不怎么是我的关注话题, 也对生产应用没有那么直接的影响。
文中多次提到的大小参数模型对训练数据的影响我则建议看Scaling Laws for Neural Language Models, 2020年OpenAI发布的经典论文, 我在搞懂了梯度下降和scaling law, 原来OpenAI 4 年前早已验证, 大模型LLM量化 , 5个基础技术知识也提
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-07-11
2024-07-11
2024-07-09
2024-09-18
2024-06-11
2024-07-23
2024-07-09
2024-07-20
2024-07-12
2024-07-11