大模型微调需要多少数据

发布于 27 天前  26 次阅读


最近在微调大模型,有一个问题一直困扰着我,通过搜索引擎也没搜到什么有价值的内容可以解答我的困惑,直到今天看到一篇微信公众号的文章:《大模型微调究竟需要多少数据:从三个现有代表工作看几组结论及一点思考》

这篇文章很长,大概意思如下:

  • 大模型训练的两阶段:大模型训练分为预训练和指令调整两个阶段,前者通过无监督学习建立通用语言表示,后者则通过微调模型适应特定任务或用户偏好。
  • 数据量与任务表现:对于翻译、改写、生成任务,200万乃至更少的数据就足以让模型表现出色。而对于分类、封闭式问答、摘要等任务,增加数据量确实能持续提升性能,但这种提升可能是有限的。对于数学、代码处理和链式思维任务,模型表现不佳,需要在数据质量、模型规模和训练策略上进行更细致优化。
  • LIMA研究:《LIMA:Less Is More for Alignment》研究表明,通过在1000个精心标注的提示和回复上微调一个650亿参数的LLaMa模型(LIMA),可以实现良好的跨任务性能。重要的是,该研究发现单纯扩大数据量而不增加提示多样性,收益有限,而优化数据质量则收益显著。LIMA能进行连贯的多轮对话,且通过少量手工制作的多轮对话数据增强这一能力。
  • 少量数据足够:《MAYBE ONLY 0.5% DATA IS NEEDED》通过聚类方法证明,少量数据(如1.9M tokens)也能对特定任务模型的指令调整产生良好结果。数据多样性对特定任务模型性能影响小,特定任务类型的数据有助于提升性能。
  • 数据处理与采样:数据来源包括Stack Exchange、wikiHow、Reddit等,通过严格质量控制和多样性采样来构造数据集,例如确保覆盖不同领域、过滤无关内容、控制长度和风格等。
  • 实验比较:LIMA与多个基线模型(如Alpaca 65B、DaVinci003、GPT-4等)比较,即使在数据量远少的情况下,LIMA在某些评价指标上表现不逊色。

结论就是:

微调所需的数据量不仅关乎量,更在于数据的质量和多样性。对于一些任务,少量精心挑选和优化过的数据就能实现有效的微调,而数据量的盲目增加不总是带来预期的性能提升。LIMA和《MAYBE ONLY 0.5% DATA IS NEEDED》的研究均强调了这一点。

原文链接:https://mp.weixin.qq.com/s/1JBArQ93PMqaF41CXHqzqg

这文章解答了我一直的困惑的同时,也让我联想到最近看到的另外一篇博客《中文互联网内容正在逐步消失》,这些发在公众号的内容,绝大部分搜索引擎根本搜不出来!中文局域网割裂严重,信息流动性差,真越来越“局域”了!