跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言AI算法

LLM 预训练与 SFT 数据配比调研

综述由AI生成调研了 LLM 预训练与 SFT 的数据配比方案,分析了 Llama3.1、Qwen2、PalM 等主流模型的技术报告。内容涵盖数据清洗、质量过滤、Scaling Law 实验、长上下文训练及退火策略。重点探讨了 SFT 阶段的数据处理方法,包括 Rejection Sampling、语义去重、代码合成及工具使用数据合成。同时对比了 MiniCPM、Rhea、BELLE 等开源模型的公开数据源。研究性工作 DoReMi 提出了基于超额损失的动态数据配比优化方法。文章总结了质量优于数量、领域多样性、合成数据重要性及动态配比等核心结论,为模型训练提供数据策略参考。

PhpPioneer发布于 2025/2/6更新于 2026/6/1226 浏览
LLM 预训练与 SFT 数据配比调研

LLM 预训练与 SFT 数据配比调研

背景与目标

本文旨在探讨在基于 Llama3 等基座模型进行继续训练与监督微调(SFT)时,如何合理配置预训练与 SFT 的数据比例。由于 Llama3 的具体数据配比方案未完全公开,通过调研其他主流开源模型及研究论文中的公开方案,总结有效的数据配比思路,确保在提升模型能力的同时不严重损害原有基座效果。

一种潜在的保护原模型能力的方法是:直接进行继续训练或 SFT,随后通过参数合并(Merge)技术来保留原始效果。本文将重点调研现有的公开方案,包括预训练数据配比、SFT 配比方案以及探测 Llama3 配比的潜在方法。

Llama 和 Qwen 技术报告分析

最新的 Qwen2 和 Llama3.1 技术报告公布了许多数据细节,特别是关于数据配比的问题。

Qwen2

预训练数据增强

Qwen2 的预训练数据分为启发式方法过滤和 Qwen 模型过滤。虽然实现细节未完全阐明,但根据相关工作推断,启发式方法可能类似于 C4 数据的过滤方法。Qwen 模型过滤可能是由 GPT 对模型数据进行 1-5 的质量分数打标,随后对 Qwen 的一个小版本(如 0.5B)进行微调,使其只输出 1-5 的分数 token。

数据扩充

Qwen2 包含了代码、数学、多模态数据以及多语数据。最关心的数据分布依然是含糊的,目标是让数据分布与人类相似的学习一致。通过实验,对不同来源和领域划分方法进行混合。

数据规模

Qwen1.5 使用了 3T 数据,而 Qwen2 扩充至 7T 数据。团队还尝试继续放宽数据质量筛选阈值,扩充到 12T 数据。然而,在打榜精度上,7T 和 12T 的训练并无显著差异,这表明单纯增加数据量并非唯一提升路径。

长上下文训练

Qwen2 的长上下文训练分为几个阶段:

  1. 4k 上下文训练
  2. 32k 上下文训练
  3. 使用 RoPE 位置编码,将频率从 1 万增加到 100 万(频率越高,能容纳的上下文越长)

此外,Qwen2 还使用了 YARN 和 Dual Chunk Attention 机制,支持 131k 上下文(实践上,是对长上下文进行 Chunk 切分,随后在 chunk 内与 chunk 间进行相对位置信息的捕捉)。

后训练

核心是使用了大量非人工合成数据,值得关注的趋势是:

  • 人机协作数据打标:使用 InsTag 模型生成标签,人工改进表述。依据标签多样性、语义性、复杂度、意图完整性评估筛选出具有代表性的数据;借助一些 LLM 数据演进生成的工作,例如 Self-Evolution,进行数据合成;最后也包括人工标注。
  • 自动数据合成:例如,使用 Rejection Sampling 进行数学任务推导,或者通过 Execution Feedback 对代码任务进行执行筛选。随后是 SFT 常见的 Data Repurposing,为各种任务,借助 LLM 基于某些源数据,来构造任务数据。对于 Qwen 它还做了安全审查。

Llama3.1

数据清洗与质量过滤

Llama3.1 对数据进行了清洗和过滤,包括:

  • 排除不安全的网站 URL
  • HTML 数据抽取(发现在预训练数据里包含 markdown 是有害的)
  • 去重(URL、MinHash for Docs、ccNet for Lines 会删除导航栏 cookie 警告以及一些高质量数据)
  • 启发式过滤(n-gram 去重、脏词过滤、KL 散度过滤等)
  • 数据质量过滤:fasttext 判断 docs 与 Wikipedia 的相关,distilRoberta 分类器由 Llama2 打质量标签训练去预测质量分数。distilRoberta 分类器还被训练去判断代码和数学推理的数据。

相较于前代版本,有了更多的多模态数据,唯独中文的不多。

数据配比

基于知识分类和 Scaling Law 实验来测试配比的合理性。

  • 知识分类:分类器划分预训练数据为领域知识数据,例如按着艺术、娱乐…分类
  • Scaling Law 实验确定数据配比:基于同一个数据配比,训练若干个不同的小模型(从 40M 到 16B),观察其 scaling 曲线。(推测是人工设置的配比候选),最终结构:50% 通用、25% 数学以及推理、17% 代码、8% 多语。最终通用是什么样子也不清楚。

有趣的一点是,loss 与 acc 的关系,不是一个线性的。

长上下文数据与退火训练
  • 长上下文数据:基于两个标准来判断是否应该增加一个上下文长度:1) 在短上下文下性能恢复 2) 已经可以完美解决某长度下的大海捞针。所以现在的长上下文,基本是照着大海捞针任务设计的,对于真正其他的长上下文需求,考虑的并不充分。
  • 退火数据:基于高质量代码和数学数据在预训练尾部做退火(可以提升 GSM8k 24%,Math 6.4%)。

一个重要的发现是,退火训练可以评判小规模领域数据的价值。70% 数据由原始配比方案获得,30% 由需要测试的目标数据获得,在 40B Tokens 的退火训练中,将一个训练到 50% 的 8B 模型,学习率从开始降低至 0,随后进行测评或者观察 Loss。基于退火法测试小数据集比基于 Scaling law 实验更有效。

SFT 数据配比策略

Llama 和 Qwen 的 SFT 数据处理技术非常相似,包括以下关键步骤:

  1. Rejection Sampling:对于一个问题使用最新 checkpoints 生成多个输出,保留最终答案可行的输出。
  2. 数据清洗:避免过度使用表情、感叹、Sorry、道歉,这个很有启发,现在的 LLM 一般跟他意见不符,都是直接道歉。
  3. 话题分类:微调 Llama 8B 来作话题分类器,分桶这些数据到比较粗粒度和细粒度的簇,例如粗粒度的数学推理和细粒度的三角几何。
  4. 质量打分:同时使用 Reward 模型(将分数分布在上四分位的数据视为高质量)和 Llama 模型信号来得到质量分数(通用数据有三个维度,精准度,指令遵循,语调与表达;代码数据两个维度,代码 Bug 识别和用户意图),这两个模型有很大分歧,以 or 关系结合二者可以达到很高的召回率。
  5. 难度打分:基本想法是优先处理对模型而言更复杂的数据,使用 InsTag(Qwen 也用到了)对数据打意图标签,意图越多复杂性越高,以及 Llama 的评分(与质量打分一致的方法)。
  6. 语义去重:Roberta Embedding 聚类,每个簇内的数据以质量和难度的乘积进行排序,保留阈值以上的。
  7. 合成数据:2.7M SFT 是合成的。
  8. 代码合成数据:1M 规模,如果直接用 Llama3 405B 生成的数据是没有帮助的,通过 Execution Feedback(也就是执行一遍,并得到执行结果,将这个错误和反馈结合进行训练,使得模型可以汲取教训)。具体为编程问题描述生成–>问题解决(让 Llama3 跑一遍,生成带有解释的解决方案最好)–>正确性分析(如果是错误的解决方案会伤害 SFT,所以需要鉴别是否代码是正确的,包括用编译器和代码分析工具 Linter 来作语法检查,以及通过 LLM 生成单元测试情况)–>错误反馈和迭代自我矫正(当前面出错后,把原始问题、错误的解法、反馈告诉 LLM 来进行修复,当单元测试出错时,模型可以选择修复解决方法或者是单元测试,约 20% 是通过反馈矫正来变为正确的)–>迭代式微调(微调、生成数据、再微调,螺旋提升)。
  9. 编程语言翻译的数据合成:Python C++和其他 PHP Type Script 等语言进行翻译,只要通过单元测试和语法检测的翻译保留。
  10. 反向翻译的数据合成:考虑到执行反馈的信息量对于评价质量来说是不够的,因此基于代码进行对话生成,补充代码解释、生成、文档、Debug 数据。随后用这些数据让 LLM 进行代码生成,用原始代码作为基准,让 LLM 进行生成代码质量的评估。
  11. 长上下文数据合成:QA:将预训练里面的超长文档切分成 8k 的块,生成 QA pair。Summarization:对 8k 的上下文进行总结后,再对总结进行总结,得到 QA 数据。Long Context Code Reasoning:找到 python 最常 import 引用的代码函数,删除其中的一个关键文件,提示模型去识别哪些文件依赖于这个丢失的文件,并生成丢失文件的代码。如果 SFT 模型在长语境表现良好,DPO 只使用短文本,不会伤害模型的长上下文能力。
  12. 工具使用数据合成:包括搜索引擎(Brave Search)、Python 解释器、数学计算引擎(Wolfram Alpha API)。

Llama2 共使用 2T 数据,Llama3 使用了 15T 数据,并未给出更详细的信息。只有 Llama1 介绍了数据配比,但 SFT 方案没有给出。

现有公开的模型方案

1. 小模型 - MiniCPM

预训练数据配比有明确规划。预训练退火阶段 SFT 数据配比与 SFT 阶段类似,不同的是将预训练数据、高质量的无标注数据例如 wiki 去除,只留高质量有标标注数据,即 sft 数据。

2. 小模型 - Microsoft/Phi-3-mini-4k-instruct

未给出更多详细的数据信息。

3. 大模型 - PALM2

除了部分中文的语言配比外,更多的数据信息未公开。PALM1 版本给出了具体的代码和语言配比。缺少具体的 Finetune 方案,只介绍了 PALM-Code 版本用了 60%-python(ExtraPythonData)和 30% 多代码语言(预训练中相同的源)与 10% 自然语言,共计 7.75B。

4. 大模型 - Qwen

Qwen1 只透露了数据源,未给出具体的配比。Qwen2 也未公开数据配比。

5. 大模型 - Baichuan

Baichuan2 的数据配比按领域划分,但未公开 SFT 配比信息。成熟的工作在后期对数据配比的讨论越来越少,逐渐变成了商业机密。

探索性工作

现在一般折腾做 SFT 模型的工作,都是找一堆看着质量还可以的数据源,随后一股脑全扔进去,也不考虑配比啥的。以下是一些参考案例:

1. Chinese-LLAMA

Chinese-LLAMA 在 Llama 的基础上进行了中文微调,包含多种数据源,如 Open-Platypus、Firefly 中文任务集、成语、COIG、诗歌、知乎扩展数据等。这些数据集涵盖了通用对话、逻辑推理、翻译等多种任务类型。

2. Rhea-72b-v0.5 (Huggingface Leaderboard SFT 榜单第一)

Rhea 的 SFT 数据包含 datasets_enconv_4m,分为两部分。基座模型使用 bacusai/Smaug-72B-v0.1。数据来源广泛,包括 stack-exchange-preferences, SlimOrca, alpaca-gpt4, SHP, HC3, databricks-dolly-15k, orca-dpo-pairs 等。此外还随机挑选了 bigbench, glue_mnli, squad_v2, math_qa 等多个评测数据集用于辅助训练。

3. abacusai/Smaug-72B-v0.1 (Huggingface SFT 榜单第 3 名)

基于 Qwen-72B 和 moreh/MoMo-72B-lora-1.8.7-DPO 进行的微调。核心在于 DPO 新方法,SFT 数据未过多提及。

4. ibivibiv/alpaca-dragon-72b-v1 与 ibivibiv/strix-rufipes-70b

未公开 SFT 数据。

5. saltlux/luxia-21.4b-alignment-v1.2

SFT 数据可以在 Huggingface 上找到,具体为:alpaca-gpt4-data 52k, Open-Orca/SlimOrca 518k, in-house generated data utilizing Metamath 395k。

6. fblgit/UNA-ThePitbull-21.4B-v2

代码微调模型,SFT 数据使用了 Replete-AI/code_bagel_hermes-2.5,共 2.83M。

7. Ziya

国产 SFT 模型,未开源 SFT 数据。

8. 链家 BELLE

中文 SFT 模型,参考 Stanford Alpaca 生成的 1M+0.5M 中文数据,中文之光。具体为 BelleGroup/train_0.5M_CN 519k, BelleGroup/train_1M_CN 917k。10M 版本的还并未完善。链家收集的其他 SFT 数据源包括 GuanacoDataset, COIG, Firefly, HC3-Chinese, alpaca_gpt4_zh, pCLUE, CSL, MOSS, Safety-Prompts 等中英文数据集。

9. Firefly

Firefly 是中文综合数据开源模型,很多数据是交叉引用其他模型数据。SFT 数据部分为 YeungNLP/firefly-train-1.1M(115 万条数据,包含 23 种中文 NLP 任务数据)、YeungNLP/moss-003-sft-data(671k 条中英文多轮对话数据)、WizardLM_evol_instruct_V2_143k 等。

10. Dolly

Dolly 是一个开源指令跟踪记录数据集,由 Databricks 员工生成,涉及多种任务行为。具体数据:databricks/databricks-dolly-15k(15k 条数据)。其他榜单上的模型大多没有开源 SFT 数据来源。

开源开放的 LLM

研究社区已经形成了一些真正开放的 LLMs,例如 Pythia、Amber、OLMo、Map-Neo。

1. Map-Neo

Map-Neo 通过不同的数据源进行了划分。最终语料库的构成如下:52.55% 来自 Common Crawl,22.29% 来自编程代码,其余来自学术论文、书籍和其他印刷材料。继续训练的数据配比也有详细规划。这里仍然没有对数据配比进行系统性的调研,解释清楚为什么 RedPajama 要占 92.38%。一些数据过滤、去重的 Pipeline 与 Qwen 和 Llama 也非常相似。

2. Pythia

Pythia 是 EleutherAI 的工作,探究了 16 个 LLM 模型(70M 到 12B)在相同数据训练下的表现。训练数据是 Pile,未探究数据相关的工作。FineWeb 是另一个高度消融的工作,探索了数据选择对模型表现的影响。

研究性工作:DoReMi

Google DeepMind 的工作,先不使用任何下游任务知识的情况下,训练一个小的代理模型(280M),得到数据配比。随后利用该数据配比,训练真正的大模型(8B)。评估指标是在 Pile/GLaM 数据的困惑度,以及下游任务精度。

动机介绍

Pile 数据集包含 24% 的网络数据,9% 维基百科,4% Github 等。(这个百分比,是按照 Tokens 数统计划分的)目前还不清楚每个领域是如何影响 LM 的预训练效果以及下游任务表现。Pile 是人工选择的配比,PaLM 和 GLaM(2021 年的工作) 是依赖下游任务来选择数据配比的。

DoReMi 的目标是寻找一个数据配比,在不知道下游任务的情况下,在所有下游上表现都很好。

超额损失优化

提出 excess loss 超额损失的概念,代表参考模型(以平均混比方式训练)和混比模型(以特定混比数据训练)的 loss 差额。优化目标为最小化在所有 domain 中最坏情况下的 excess loss。(这里的 domain 代表各个数据源)(这里的最坏情况,worst-case loss over domain,代表在各个 domain 上,与均值配比模型的 NLL 负对数似然 loss 比起来,哪个 domain 中新配比下的模型会有更高的 loss)

使用基于在线学习的方式进行训练,在每个 domain 上的动态更新数据混比。根据每个 domain 部分的 loss 情况,来选择重新调整数据配比,使其优化超额损失。对超额损失大的 domain 的一个 Batch,计算各个数据项的超额损失求和 lambda,e^(n*lambda)*原 domain 配比作为新 domain 配比。随后更新基线模型和代理模型权重。

直觉来理解一下超额损失,平均混比模型,可以一定程度上代表一个基线,意味着只要增加某个 domain 的数据,大概率可以达到这个基线,如果配比模型在某个 domain 表现差了,可能意味着这一部分的数据缺少了。这个假前提假设是越多的数据,在本 domain 表现越好。有一个问题是,为什么要更新基线模型,而不是直接训练好之后去用?怕直接用过强的模型没法做到监督作用吗?

最后推荐一个数据选择工作的综述:A Survey on Data Selection for Language Models。里面也包含了一些数据混比的描述。

总结与展望

通过对 Llama、Qwen、PalM 以及 DoReMi 等方案的调研,可以总结出以下几点关于 LLM 数据配比的核心结论:

  1. 质量优于数量:单纯增加数据量(如从 7T 到 12T)并不总能带来精度的显著提升,数据清洗和质量过滤(如启发式过滤、模型打分)是关键。
  2. 领域多样性:合理的配比应涵盖通用、数学推理、代码、多语言等多个领域。例如 Llama3.1 的 50% 通用、25% 数学推理、17% 代码、8% 多语的配比体现了对特定能力的侧重。
  3. 合成数据的重要性:随着人工数据成本上升,利用 LLM 进行数据合成(如 Rejection Sampling、Execution Feedback、Self-Evolution)成为主流趋势,特别是在代码和数学领域。
  4. 动态配比与退火:DoReMi 提出的基于超额损失的动态配比方法,以及 Llama 使用的退火训练(Annealing),都表明数据配比不应是静态的,应根据训练过程中的模型表现进行调整。
  5. 长上下文策略:长上下文数据的构建往往针对特定任务(如大海捞针),实际应用中需结合 Chunk 切分和相对位置编码机制。

未来,随着模型规模的扩大,数据配比的研究将更加侧重于自动化搜索算法(如 DoReMi)以及高质量合成数据的生成效率。开发者在进行模型微调时,建议参考上述主流方案的配比逻辑,结合自身业务场景,优先保证数据质量,并适当引入合成数据以丰富覆盖范围。

此外,数据隐私和安全审查也是不可忽视的一环,特别是在企业级应用部署中,需确保训练数据不包含敏感信息。综上所述,科学的数据配比策略是提升大模型性能的关键因素之一,值得持续投入资源进行研究和优化。

目录

  1. LLM 预训练与 SFT 数据配比调研
  2. 背景与目标
  3. Llama 和 Qwen 技术报告分析
  4. Qwen2
  5. 预训练数据增强
  6. 数据扩充
  7. 数据规模
  8. 长上下文训练
  9. 后训练
  10. Llama3.1
  11. 数据清洗与质量过滤
  12. 数据配比
  13. 长上下文数据与退火训练
  14. SFT 数据配比策略
  15. 现有公开的模型方案
  16. 1. 小模型 - MiniCPM
  17. 2. 小模型 - Microsoft/Phi-3-mini-4k-instruct
  18. 3. 大模型 - PALM2
  19. 4. 大模型 - Qwen
  20. 5. 大模型 - Baichuan
  21. 探索性工作
  22. 1. Chinese-LLAMA
  23. 2. Rhea-72b-v0.5 (Huggingface Leaderboard SFT 榜单第一)
  24. 3. abacusai/Smaug-72B-v0.1 (Huggingface SFT 榜单第 3 名)
  25. 4. ibivibiv/alpaca-dragon-72b-v1 与 ibivibiv/strix-rufipes-70b
  26. 5. saltlux/luxia-21.4b-alignment-v1.2
  27. 6. fblgit/UNA-ThePitbull-21.4B-v2
  28. 7. Ziya
  29. 8. 链家 BELLE
  30. 9. Firefly
  31. 10. Dolly
  32. 开源开放的 LLM
  33. 1. Map-Neo
  34. 2. Pythia
  35. 研究性工作:DoReMi
  36. 动机介绍
  37. 超额损失优化
  38. 总结与展望
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • VS Code Copilot 在 Windows 10 WSL2 环境无法连接的解决方法
  • Linux 系统离线部署 MySQL 详细步骤
  • 从 try-catch 回调到链式调用:更优雅的 async/await 错误处理方案
  • 大模型应用开发极简入门:基于 GPT-4 和 ChatGPT 实战指南
  • 网络安全行业自学与转行建议
  • 前端 SSR 技术指南:提升 SEO 与用户体验
  • VSCode Git 工作树自动化管理与高效开发实践
  • GitHub Copilot 登录失败排查:7 个关键检查点与解决方案
  • 自然语言处理在社交媒体分析中的实战应用
  • Claude Skills 实战指南:安装、使用与自定义开发
  • ComfyUI Manager 完整安装与配置指南
  • Python 开发 MongoDB 数据库 MCP Server 实战
  • ExoPlayer 播放缓存进度监听方案实现
  • Python RESTful API 设计:从理论到企业级实战
  • EhViewer:开源免费安卓 E-Hentai 漫画浏览器安装与使用教程
  • BERT 预训练任务与微调技术详解
  • LangChain 核心概念与实战入门
  • 基于LLM的推荐系统用户兴趣迁移
  • DAG 动态规划:嵌套矩形与地铁间谍问题
  • 贪心算法专题:最大子段和与纪念品分组

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online