【百面大模型】第二章-大模型的数据
二、大模型的数据
2.1用来训练大模型的开源数据集有哪些(9)?
训练大语言模型(LLM)和其他大模型(如图文多模态模型)需要海量、多样化的高质量数据。开源社区贡献了许多宝贵的数据集,覆盖文本、代码、多模态等不同领域。以下是一些重要且常用的开源数据集分类整理:
🧀 一、大规模通用文本数据集(预训练核心)
-
The Pile:
- 描述: 一个由 EleutherAI 创建的大型、多样化的英文文本集合,专门为训练大型语言模型设计。包含 22 个子集,涵盖学术论文、书籍、网页、代码、论坛讨论等多种来源。
- 规模: 约 825 GB 文本。
- 特点: 高度多样性,包含许多专业领域内容(医学、法律、编程等)。
- 开源: 是。
- 链接: https://pile.eleuther.ai/
-
Common Crawl:
- 描述: 一个持续抓取互联网网页的开项目,提供原始网页数据(WARC文件)和提取的纯文本(WET文件)。是训练大模型最重要的数据来源之一,但需要大量清洗和过滤。
- 规模: 极其庞大(PB级别),每月更新。
- 特点: 覆盖范围极广,代表真实的网络语言分布(包含大量噪声、低质量内容)。
- 开源: 是(抓取数据本身)。
- 链接: https://commoncrawl.org/
- 常用衍生版本:
- C4 (Colossal Clean Crawled Corpus): Google 从 Common Crawl 中清洗过滤出的英文文本数据集,用于训练 T5 等模型。
- mC4: C4 的多语言扩展版本。
- OSCAR: 从 Common Crawl 中提取并分类的多语言数据集。
-
ROOTS / OSCAR:
- 描述: Hugging Face 主导的项目,旨在创建大规模、多语言、经过质量过滤的网络爬取文本数据集。OSCAR 是其核心组成部分。
- 规模: 非常大,覆盖 100+ 种语言。
- 特点: 专注于多语言性和质量过滤。
- 开源: 是。
- 链接: https://oscar-project.org/
-
Wikipedia:
- 描述: 维基百科各种语言版本的数据库转储。内容质量相对较高,覆盖面广,结构清晰。
- 规模: 各语言版本大小不一,英文版约 20GB+(压缩文本)。
- 特点: 质量好,覆盖面广,有结构信息(链接、章节等)。
- 开源: 是(知识共享协议)。
- 链接: https://dumps.wikimedia.org/
-
Books Corpora:
- 描述: 各种开源图书项目的集合,如 Project Gutenberg、Standard Ebooks 等。
- 规模: 数万本图书。
- 特点: 语言规范,叙述性强,包含丰富知识。
- 开源: 是(图书本身版权各异,但数据集合可获取)。
- 常用集合: 研究人员常自行整合。
💻 二、代码数据集(用于训练代码大模型)
-
The Stack:
- 描述: Hugging Face 和 ServiceNow 合作创建的大规模、多编程语言的开源代码数据集。源自公开的 GitHub 仓库(需符合许可证要求)。
- 规模: 超过 6TB,涵盖 300+ 种编程语言。
- 特点: 规模巨大,语言多样,包含代码、注释、文档字符串等元数据。
- 开源: 是(但需注意代码本身的许可证限制)。
- 链接: https://huggingface.co/datasets/bigcode/the-stack
-
CodeParrot:
- 描述: Hugging Face 推出的另一个代码数据集,也基于 GitHub 公开代码,常用于训练其 CodeParrot 模型。
- 规模: 比 The Stack 小一些,但也非常可观。
- 特点: 经过筛选和清理。
- 开源: 是。
- 链接: https://huggingface.co/datasets/codeparrot/github-code
-
Public Git Archive:
- 描述: 一个索引了大量公开 GitHub 仓库元数据的项目,可用于筛选和下载特定仓库的代码。
- 特点: 提供强大的搜索和筛选能力,方便构建自定义代码数据集。
- 开源: 是(元数据索引)。
- 链接: https://github.com/src-d/datasets/tree/master/PublicGitArchive
🖼️ 三、多模态数据集(图文/视频/音频)
-
LAION 系列:
- 描述: LAION (Large-scale Artificial Intelligence Open Network) 创建了多个大规模图文对数据集,是训练扩散模型(如 Stable Diffusion)和图文多模态大模型(如 CLIP, Flamingo)的关键数据源。
- 主要成员:
- LAION-400M: 包含 4 亿图文对。
- LAION-5B: 包含 58.5 亿图文对,是目前最大的公开图文数据集之一。
- LAION-Aesthetics: 基于美学评分筛选的高质量图文子集。
- LAION-COCO: 在 COCO 标注基础上扩展的图文对。
- 特点: 规模极大,来源于 Common Crawl 中的图像及
alt-text等描述文本。质量参差不齐,噪声较大,需要清洗过滤。 - 开源: 是(提供图片 URL 和文本描述,不直接分发图片)。
- 链接: https://laion.ai/projects/
-
COYO:
- 描述: 另一个大型图文对数据集,与 LAION 类似,也是从 Common Crawl 中提取。
- 规模: 7 亿图文对。
- 特点: 同样规模大,有噪声。常与 LAION 结合使用或对比。
- 开源: 是(提供图片 URL 和文本描述)。
- 链接: https://github.com/kakaobrain/coyo-dataset
-
Conceptual Captions:
- 描述: Google 发布的图文对数据集,描述文本由网页的
alt-text自动生成并经过一定清洗。 - 规模: CC3M (330万), CC12M (1200万) 等版本。
- 特点: 比 LAION/COYO 小,但质量相对更好一些。
- 开源: 是(提供图片 URL 和文本描述)。
- 链接: https://ai.google.com/research/ConceptualCaptions/
- 描述: Google 发布的图文对数据集,描述文本由网页的
-
WebVid:
- 描述: 一个大规模的视频-文本描述对数据集,从网络收集。
- 规模: WebVid-10M (约 1000 万视频片段)。
- 特点: 用于训练视频理解或视频生成模型。
- 开源: 是(提供视频 URL 和文本描述)。
- 链接: https://m-bain.github.io/webvid-dataset/
-
LibriSpeech / LibriLight:
- 描述: 大型英文有声读物语音数据集,包含音频和对应文本转录。
- 规模: LibriSpeech 约 1000 小时;LibriLight 约 6 万小时(仅音频,无文本或弱监督)。
- 特点: 训练语音识别和语音合成模型的基础数据集。
- 开源: 是。
- 链接: http://www.openslr.org/12 (LibriSpeech) / https://github.com/facebookresearch/libri-light
📖 四、指令微调与对齐数据集(用于SFT, RLHF)
-
OpenAssistant Conversations:
- 描述: LAION 社区通过众包方式收集的人类生成的、多轮对话数据集,模仿用户与AI助手的互动。
- 规模: 约 16 万条对话。
- 特点: 多语言、多轮、涵盖多种任务类型,用于指令微调和对齐。
- 开源: 是。
- 链接: https://huggingface.co/datasets/OpenAssistant/oasst1
-
Dolly (Databricks):
- 描述: Databricks 员工生成的指令遵循数据集,包含多种任务类型。
- 规模: 约 1.5 万条指令-回复对。
- 特点: 质量较高,任务类型清晰。
- 开源: 是。
- 链接: https://huggingface.co/datasets/databricks/databricks-dolly-15k
-
Alpaca (Stanford):
- 描述: 使用 OpenAI API (
text-davinci-003) 根据self-instruct论文方法生成的指令数据(基于seed_tasks.json)。 - 规模: 5.2 万条指令-输出对。
- 特点: 早期流行的开源指令数据集,但非人类直接生成。
- 开源: 是(生成代码和数据)。
- 链接: https://github.com/tatsu-lab/stanford_alpaca
- 描述: 使用 OpenAI API (
-
ShareGPT:
- 描述: 用户分享的与 ChatGPT 的真实对话记录集合。
- 规模: 非常大(持续增长),质量不一。
- 特点: 真实用户交互数据,多轮对话形式。
- 开源: 是(用户自愿分享)。
- 链接: 通常可在 Hugging Face Hub 或 GitHub 上找到社区整理版本。
-
UltraFeedback:
- 描述: 包含不同模型对同一指令生成多个回复,并由人类或模型(如 GPT-4)对其偏好进行排序的数据集。用于训练奖励模型和 RLHF。
- 特点: 用于偏好学习和对齐。
- 开源: 是。
- 链接: https://huggingface.co/datasets/openbmb/UltraFeedback
📊 五、其他重要来源与平台
- Hugging Face Datasets Hub:
- 最大的机器学习数据集集合平台之一,包含上面提到的很多数据集以及成千上万其他任务特定的数据集。搜索、下载和使用非常方便。
- 链接: https://huggingface.co/datasets
- Kaggle Datasets:
- 另一个丰富的数据集来源平台,包含许多竞赛数据集和用户上传的数据集。
- 链接: https://www.kaggle.com/datasets
- Papers With Code Datasets:
- 专注于机器学习论文及其相关代码和数据集。
- 链接: https://paperswithcode.com/datasets
📌 重要注意事项
- 数据质量与噪声: 许多大规模开源数据集(尤其是网络爬取的)包含大量噪声、偏见、错误甚至有害内容。数据清洗和过滤是训练成功的关键步骤。
- 版权与许可: 开源数据集提供的是数据的访问方式,不代表数据集内容本身没有版权限制(尤其是代码数据集、书籍数据集、图片数据集)。务必仔细阅读并遵守每个数据集的具体许可证要求,特别是涉及商业用途时。LAION数据集只提供图片URL和文本,不提供图片本身,使用图片需自行承担版权风险。
- 规模与计算资源: 这些数据集通常极其庞大(TB甚至PB级)。下载、存储、处理和训练都需要巨大的计算资源(高性能存储、GPU集群)。
- 数据治理与伦理: 使用网络数据需考虑隐私、偏见、公平性等伦理问题。构建和使用数据集应遵循负责任AI的原则。
- 领域特定性: 上述列表侧重通用性。训练特定领域(如生物医学、法律、金融)的大模型通常需要补充大量该领域的专业数据。
选择哪些数据集取决于你要训练模型的具体目标(纯文本、代码、多模态)、规模、语言需求以及对数据质量和版权的要求。通常需要组合多个数据集来满足需求。🧩 如果你有特定领域或类型需求,我还可以帮你进一步筛选推荐合适的资源!
2.2主流开源大模型所用的训练数据量如何?各个环节的数据量如何(10)?
主流开源大模型在不同训练环节的数据量差异显著,从预训练的万亿级token到微调的数亿级样本不等。以下是关键环节的数据规模分析及典型模型案例:
📊 一、预训练数据:核心基础,规模最大
预训练阶段消耗数据最多,通常在万亿tokens级别,涵盖通用文本、代码和多模态数据。
- 通用文本数据
- 规模:主流模型需 1.2T~3T tokens(如Llama 2训练数据约2T tokens)。
- 来源:Common Crawl、Wikipedia、书籍、学术论文等。例如,RedPajama数据集复现了LLaMA的数据组成,总量约1.2T tokens。
- 代码数据
- 规模:专用代码模型的训练数据约 100B~500B tokens。
- The Stack:覆盖300+编程语言,总量超6TB(约含数百B tokens)。
- 规模:专用代码模型的训练数据约 100B~500B tokens。
- 多模态数据
- 规模:图文对数据达 亿级样本。
- LAION-5B:58.5亿图文对,支持Stable Diffusion等模型。
- 规模:图文对数据达 亿级样本。
💡 数据消耗危机:当前公开高质量文本数据仅300万亿tokens,按当前训练速度(如Llama 3的100倍过度训练),预计2026–2032年耗尽。
⚙️ 二、领域微调数据:垂直优化,量少质精
针对数学、代码等领域的微调,数据量显著减少(百万~十亿级tokens),但质量要求更高。
- 数学推理
- MathPile:9.5B tokens,整合教科书、arXiv论文等专业来源。
- School Math 0.25M:25万条数学题,用于指令微调。
- 代码生成
- CodeParrot:清洗后的GitHub代码,规模约200B tokens。
- 示例:小米MiMo-7B通过 200B tokens推理数据(数学+代码)实现超越大参数模型的性能。
🎓 三、指令微调与对齐数据:千亿级样本,侧重交互质量
用于优化模型交互能力,数据量在千万~十亿级样本,多为人工生成或合成。
- 指令数据
- Dolly 15k:1.5万条人类生成的指令-回复对。
- OpenAssistant Conversations:16万条多轮对话,覆盖多语言和任务类型。
- 偏好对齐数据
- UltraFeedback:包含模型输出的人类偏好排序,用于强化奖励模型。
🔄 四、强化学习(RLHF)数据:千/百万级,驱动模型对齐
数据量最小(通常百万级),但标注成本最高。
- 示例:需人类对模型输出打分,构建奖励模型。例如MiMo采用 Test Difficulty Driven Reward算法,动态调整困难问题的奖励机制。
📈 主流开源模型参数与数据量对比
以下为典型模型案例的参数量与训练数据规模:
| 模型名称 | 参数量 | 预训练数据量 | 关键特性 |
|---|---|---|---|
| Meta Llama 3-8B | 80亿 | 15T tokens | 100倍过度训练,数据消耗激增 |
| 小米 MiMo-7B | 70亿 | 25T tokens | 专注推理,200B tokens领域数据 |
| 零一万物 Yi-34B | 340亿 | 未公开(对标LLaMA 2) | 支持200K上下文窗口 |
| Falcon-40B | 400亿 | 1T tokens | 基于RedPajama数据集 |
💎 总结与趋势
- 数据瓶颈凸显:过度训练(如Llama 3-8B消耗百倍数据)加速公开数据枯竭,推动行业探索合成数据、私有数据等替代方案。
- 小模型的高效路径:通过领域数据精选(如MiMo)和算法优化,小模型可在特定任务超越大模型,降低数据依赖。
- 技术应对:
- 框架优化:如Unified Checkpoint技术将存储空间降低80%。
- 训练加速:Megatron-LLaMA提升训练速度176%,减少算力需求。
未来,开源社区需在数据再生(如多模态学习、实时交互)与训练效率间持续平衡,以应对数据枯竭挑战。
2.3大模型数据预处理流程要注意哪些核心要点(11)?
大模型数据预处理是整个训练流程中最关键、最耗时且最容易被低估的环节,其质量直接决定了最终模型的性能上限。以下是需要注意的核心要点,涵盖了从数据获取到最终喂给模型的各个环节:
🧩 一、数据获取与来源管理
-
规模与多样性:
- 海量数据: 大模型需要TB甚至PB级的数据。确保有足够的数据源(网络爬虫、开源数据集、书籍、代码库、学术论文、专有数据等)。
- 领域覆盖: 数据应尽可能覆盖模型目标应用的各个领域(通用知识、科技、文化、法律、医疗等),避免单一领域主导。
- 语言覆盖: 对于多语言模型,确保目标语言的数据量和质量。
- 模态覆盖: 对于多模态模型,协调好文本、图像、音频等不同模态数据的获取、对齐和预处理。
-
质量评估与筛选:
- 来源可信度: 优先选择权威、可靠、经过审核的来源(如知名新闻网站、学术出版物、高质量论坛)。警惕低质量、虚假、误导性信息(如垃圾网站、恶意评论)。
- 初始质量过滤: 在获取阶段即可应用初步规则过滤明显低质内容(如大量乱码、广告、占位符、纯链接等)。
-
版权与法律合规:
- 版权许可: 严格遵守数据来源的版权协议和许可证(如CC-BY, CC-BY-SA, CC-BY-NC, Apache, MIT等)。获取必要的授权或使用明确允许用于AI训练的数据。这是当前法律焦点。
- 隐私保护: 严格过滤或匿名化处理包含个人身份信息(PII)、敏感个人信息的数据。遵守GDPR、CCPA等隐私法规。
- 内容合规: 注意数据中是否包含非法、仇恨、极端主义等有害内容,建立过滤机制。考虑不同地区的法律法规要求。
🧹 二、数据清洗与规范化
-
去重:
- 精确去重: 移除完全相同的文档或段落。
- 近似去重: 使用MinHash, SimHash, Bloom Filter等技术高效移除内容高度相似或重复的文档(如不同网站转载的同一新闻)。这对防止模型记忆和节省计算资源至关重要。
- 跨数据集去重: 如果合并多个来源的数据集,需进行全局去重。
-
质量过滤:
- 启发式规则:
- 移除过短/过长的文档(根据任务定义阈值)。
- 移除低词汇多样性/高重复性的文本(如“asdfasdf”, “好好好好”)。
- 移除包含过多特殊字符、乱码、占位符的文本。
- 移除大量无意义的模板文本(如网页页脚、导航栏、版权声明)。
- 移除机器生成的低质量内容(需结合更复杂的模型判断)。
- 基于分类器的过滤:
- 训练或使用现成的分类器(如基于FastText, BERT)预测文档或段落的质量分数(可读性、信息量、毒性等),根据阈值过滤。
- 移除包含大量拼写/语法错误的文本(可使用语言工具检查)。
- 毒性/偏见过滤: 使用分类器识别并过滤包含仇恨言论、严重偏见、骚扰、暴力等有害内容的文本。注意避免过度审查导致重要语料丢失。
- 启发式规则:
-
文本规范化:
- 编码统一: 确保所有文本使用统一的字符编码(如UTF-8),正确处理特殊字符、Emoji。
- Unicode规范化: 应用Unicode NFC或NFKC规范化,统一字符表示(如将
é(U+00E9) 与e+´(U+0065 U+0301) 统一)。 - 大小写处理: 通常统一转换为小写(尤其在训练词嵌入时),但有时保留大小写信息对某些任务(如命名实体识别)很重要。
- 标点符号规范化: 统一全角/半角标点,处理多余的标点。
- 数字处理: 可选择将数字替换为特定标记(如
<NUM>)或保留原样。 - 空格处理: 规范化多余空格、制表符、换行符。
📚 三、数据格式化与分词
-
文档/样本分割:
- 将清洗后的原始数据分割成模型可处理的单元。对于自回归语言模型(如GPT系列),通常是连续的文本块(chunks)。
- 块大小的选择:需平衡上下文长度(影响模型理解能力)和训练效率。通常为模型最大上下文长度的整数倍(如2048, 4096 tokens)。
- 分割策略:简单按固定长度分割(可能切断句子/段落)、按句子/段落分割后重组(需处理边界)、使用滑动窗口等。确保分割不会引入过多无意义的边界。
-
分词:
- 选择分词器: 使用预训练的分词器(如GPT-2/3的BPE, BERT的WordPiece, T5的SentencePiece)或根据语料训练新的分词器。确保分词器在目标语言/领域上表现良好。
- 应用分词: 将文本分割成子词(subword)或词(word)序列,并映射到词汇表中的ID。这是模型实际处理的数据格式。
- 处理未知词/稀有词: 分词器如何处理未见过的词(通常分解为已知子词或使用
<UNK>标记)。 - 词汇表大小: 平衡模型容量(大词汇表能更好表示罕见词)和效率(小词汇表训练/推理更快,内存占用更少)。通常在数万到数十万。
⚖ 四、数据平衡与混合策略
-
领域/来源平衡:
- 避免某个单一来源或领域的数据在训练集中占比过大,导致模型偏向该领域。
- 根据目标应用,有意识地调整不同领域数据在训练混合中的比例(如希望模型更懂科技,可适当提高科技文档比例)。
-
语言平衡(多语言模型):
- 根据目标语言能力需求,设计不同语言数据的混合比例。避免资源丰富语言(如英语)完全主导模型。
- 考虑使用温度采样(Temperature Sampling)策略,提升低资源语言数据的采样概率。
-
时间平衡:
- 考虑数据的时效性。混合不同时间段的数据,避免模型知识过于陈旧(除非是历史语料库)。
- 对于需要最新知识的模型,需要持续注入新数据并重新训练/微调。
-
质量平衡:
- 在过滤低质量数据的同时,也要注意保留足够的“自然”语言数据(如社交媒体对话、口语化表达),避免模型过于“书面化”或“僵化”。
📦 五、数据管理与工程效率
-
可复现性:
- 版本控制: 对原始数据、清洗脚本、分词器、最终处理好的数据集进行严格的版本控制(如使用Git LFS, DVC)。
- 详细记录: 记录每一步预处理操作的具体参数、使用的工具/脚本版本、过滤阈值、随机种子等。这对于调试、复现结果、理解模型行为至关重要。
-
高效处理:
- 分布式处理: 面对海量数据,必须使用分布式计算框架(如Spark, Dask, Ray)和并行处理技术。
- 流式处理: 对于持续更新的数据源,考虑流式处理架构。
- 优化I/O: 使用高效的存储格式(如Parquet, TFRecords, Arrow)和存储系统(如对象存储S3, 分布式文件系统HDFS)。
- 资源管理: 合理配置计算资源(CPU, 内存, 磁盘I/O, 网络带宽)。
-
数据存储:
- 原始数据、中间处理结果、最终数据集都需要可靠、可扩展、高效的存储方案。
- 考虑数据的安全性和访问控制。
-
数据验证与监控:
- 抽样检查: 在预处理的各个阶段进行抽样人工检查,评估清洗、过滤、分词的效果。
- 自动化指标: 计算并监控关键指标(如数据集大小变化、平均文档长度、词汇分布、领域分布、质量分数分布、去重率、PII检出率等)。
- 数据漂移检测: 监控新获取数据与之前数据的分布差异(领域、语言、质量等)。
🎯 六、面向模型目标的特定处理
-
指令微调数据:
- 精心构造高质量的
(指令, 输入, 输出)三元组。 - 确保指令的多样性、清晰性和输出答案的准确性、有用性、无害性。
- 可能需要大量人工编写和审核,或利用大模型自身生成再筛选。
- 精心构造高质量的
-
人类偏好对齐数据:
- 收集人类对不同模型生成回复的偏好排序数据。
- 数据质量(人类标注的一致性、代表性)对RLHF/Pref Learning的效果影响极大。
-
特定任务增强:
- 如果预训练模型后续用于特定下游任务(如问答、摘要),可在预训练数据中适当增加相关领域或任务形式的数据比例。
🛡 七、伦理与安全考量贯穿始终
-
偏见缓解:
- 意识到数据中天然存在的各种社会、文化、性别等偏见。
- 在预处理阶段(通过过滤、重采样、数据增强)或训练阶段(通过损失函数设计、提示工程)尽可能缓解偏见,但完全消除极其困难。
- 进行偏见评估。
-
安全性:
- 强大的过滤机制阻止模型学习生成恶意内容(越狱、钓鱼、攻击代码等)的能力。
- 持续监控和应对新型安全威胁。
-
透明度:
- 尽可能公开数据来源构成(Datasheet for Datasets),提高模型的可信度和可问责性。
总结:
大模型数据预处理远非简单的“清洗一下文本”。它是一个复杂的系统工程,需要在规模、质量、多样性、效率、合规、伦理等多方面寻求最佳平衡点。投入足够的资源(人力、算力、时间)到数据预处理,并建立严谨、可复现、可监控的流程,是训练出优秀大模型的基础和前提。务必记住:Garbage in, Garbage out (GIGO) 在大模型时代依然适用,且后果更为严重。💪🏻
2.4大模型中的扩展法则是什么?如何推演(12)?
大模型中的扩展法则(Scaling Laws) 是描述计算资源(FLOPs)、模型参数量(N)、训练数据量(D)与模型性能(如损失函数值)之间关系的经验规律。其核心目标是在有限算力下,通过优化三者的配比实现性能最大化。以下结合最新研究分四部分展开说明:
一、扩展法则的核心要素
-
计算资源(FLOPs)的分配原则
- Kaplan 法则(2020):主张在固定计算预算下,优先扩大模型规模(N),再增加数据量(D)。
- Chinchilla 法则(2022):修正了Kaplan的观点,指出数据量与模型规模需平衡扩展。例如,70B参数模型需训练1.4T token(即数据量≈参数量的20倍)才能达到计算最优。
- 词表大小(V)的纳入:NeurIPS 2024研究证明,词表大小同样遵循扩展法则。更大模型需更大词表(如Llama2-70B的最优词表应为216K而非实际32K),否则导致表征欠拟合。
-
性能的量化表征
模型性能通常通过归一化损失(如BPC、词表无关损失函数)衡量。损失随FLOPs增加呈幂律下降:\[L(N, D) = \left( \frac{N_c}{N} \right)^{\alpha_N} + \left( \frac{D_c}{D} \right)^{\alpha_D} \]其中 \(α_N\)、\(α_D\) 为拟合指数,\(N_c\)、\(D_c\) 为临界规模。
二、推演方法:从理论到工程实践
-
理论推演:压缩即泛化
- 预测即压缩:next-token预测本质是数据压缩过程。预测越准→压缩率越高→泛化能力越强(柯尔莫哥洛夫复杂度理论)。
- 分布匹配:无监督预训练通过联合压缩数据X与监督任务Y,隐式学习P(X,Y),从而解决下游任务。
-
工程化推演方法
- IsoFLOPs曲线法:固定FLOPs预算,调整N、D、V组合,拟合损失最小点。
- 导数优化法:通过FLOPs对词表大小V的导数求零点,快速估算最优V。
- 损失函数参数拟合:构建包含N、D、V的损失函数,通过轻量实验拟合参数后外推。
表:词表大小优化方法对比
方法 优势 适用场景 IsoFLOPs曲线 实证性强 中小规模模型实验 导数优化 计算效率高 大规模模型预设计 损失函数参数拟合 灵活性高 多变量联合优化
三、扩展法则的实践挑战与突破
-
数据与算力的根本瓶颈
- 数据荒:千亿级模型需10T+ token训练(如500B模型需107T token),但真实数据稀缺。
- 合成数据:成为替代方案,如GPT-4使用20T合成token,预计2030年合成数据占比超真实数据。
- 算力成本:训练500B稠密模型需10亿美元+5.3亿电费,仅巨头可承担。
-
架构创新:MoE的稀疏扩展
- 原理:通过门控机制稀疏激活专家(如DeepSeek-V2每token仅激活21B/236B参数),节省42.5%训练成本。
- 性能案例:浪潮源2.0-M32模型仅激活37B参数,性能比肩700B的LLaMA3,算力消耗仅1/19。
- 技术演进:DeepSeekMoE引入细粒度专家分割+共享专家隔离,解决传统MoE知识冗余问题。
四、未来方向:超越传统扩展
-
推理时扩展
OpenAI的o3、Google的Gemini-2.5-Pro等通过在推理阶段增加计算(如思维链蒸馏、多步反思),提升复杂任务表现,而非单纯增大预训练规模。
示例:DeepSeek R1-0528在AIME数学测试中,token使用量从12K增至23K,准确率从70%升至87.5%。 -
安全与效能的再平衡
Ilya Sutskever(OpenAI原首席科学家)指出,单纯堆算力的时代已结束,需转向更安全的智能体架构(如SSI项目)和长程推理优化。
知识补充:为何Scaling Law如此重要?
- 理论意义:它将深度学习的“黑箱”优化转化为可量化的资源配置问题,让模型扩展从艺术变为科学 🔬
- 产业价值:直接决定企业投入产出比(如MoE让中小公司也能训出高性能模型),是AI商业化的核心杠杆 ⚖️
当前研究已从“规模优先”转向“效率优先”,未来突破将依赖算法-硬件-数据的协同创新,而不仅是算力堆砌 💡。
2.5持续预训练有什么作用?如何缓解大模型微调后的通用能力遗忘问题(13)?
持续预训练(Continual Pre-training)是大模型适应新领域、注入新知识的核心技术,但在微调后常引发“灾难性遗忘”(Catastrophic Forgetting)——即模型获得新能力的同时,丢失了预训练阶段习得的通用能力。这一问题在垂直领域应用(如金融、医疗)中尤为突出。以下从作用机制、技术方案及实践策略展开分析:
一、持续预训练的核心作用
-
低成本领域知识注入
- 传统全量预训练需从头开始,计算成本极高(如千亿模型训练需数百万美元)。持续预训练复用预训练权重,仅在新领域数据(如医学文献、金融报表)上增量训练,显著降低资源消耗。
- 案例:Tencent的LLaMA-Pro通过块扩展(Block Expansion),在LLaMA2-7B基础上添加8个恒等Transformer块,仅训练新增块注入代码与数学知识,节省83%算力。
-
缓解数据分布偏移
- 新领域数据分布与原始预训练数据差异较大(如专业术语、句式结构)。持续预训练通过渐进式学习,使模型平滑过渡到新分布,避免因分布突变导致的性能崩塌。
-
通用能力与领域能力的平衡
- 理想状态下,模型应在提升垂直任务性能(如医疗诊断准确率)的同时,保留语言理解、逻辑推理等通用能力。持续预训练通过结构化参数更新实现这一目标,而非完全覆盖权重。
二、缓解通用能力遗忘的技术方案
针对灾难性遗忘,业界已发展出多类方法,核心思路可归纳为 “约束更新、复用知识、动态平衡”:
1. 参数隔离与结构扩展:冻结核心参数,仅训练新增模块
- 块扩展(Block Expansion)
在原始Transformer层间插入“恒等块”(初始化为零变换),仅训练新增块。例如:- LLaMA-Pro将32层模型扩展至40层,每组4个原始块后添加1个恒等块,冻结原始层,仅训练新增块。
- 优势:原始参数完全保留,通用能力零损失;缺陷:需修改模型结构,扩展灵活性低。
- 低秩适配(LoRA)
为原始权重矩阵添加低秩增量:\(W = W_0 + BA\)(\(B \in \mathbb{R}^{d \times r}\), \(A \in \mathbb{R}^{r \times k}\), \(r \ll d\))。仅训练\(A,B\),冻结\(W_0\)。- 改进方案O-LoRA:约束梯度更新方向与历史任务正交,避免干扰旧知识。
2. 正则化与参数约束:限制参数偏离预训练状态
- 权重插值(WiSE-FT)
微调后参数\(\theta\)与预训练参数\(\theta_0\)线性融合:\(\theta' = \alpha \theta_0 + (1-\alpha)\theta\)。- \(\alpha > 0.5\)时通用能力保留率提升40%以上(如LLaVA在多模态任务中)。
- 特征分布对齐(Proxy-FDA)
通过最近邻图匹配预训练与微调特征分布,保留结构化知识。在少样本场景下,遗忘率降低31%。
3. 动态记忆交织与模型融合
- 孪生模型交织(IMSM)
构建孪生LLM:一分支冻结(保留通用能力),一分支微调(学习新任务)。通过门控机制动态融合两者输出:\[g = \sigma(f(h_{\text{frozen}} \oplus h_{\text{fine-tuned}})) \]\[\text{logits} = g \cdot \text{logits}_{\text{frozen}} + (1-g) \cdot \text{logits}_{\text{fine-tuned}} \]- 实验表明,在ChatGLM3上应用IMSM,下游任务性能提升2.2%,遗忘减少3.7倍。
4. 数据混合与训练策略优化
- 5%原始数据混合
在增量训练时加入5%的预训练数据(如C4、Wikipedia),通用任务遗忘率降低50%。 - 学习率重调度
重启学习率预热(rewarming)与余弦衰减,避免新数据上的优化震荡。 - 噪声注入(NEFTune)
向嵌入层添加均匀分布噪声,提升泛化性,减少过拟合导致的遗忘。
三、前沿研究进展与典型案例
| 方法 | 适用场景 | 效果 | 代表模型/论文 |
|---|---|---|---|
| 块扩展 | 增量预训练 | GSM8K数学能力↑12%,通用任务无损 | LLaMA-Pro |
| O-LoRA | 多任务持续学习 | 正交约束使遗忘率↓28% | Orthogonal Subspace Learning |
| 孪生模型门控交织 | 参数高效微调 | 领域任务↑2.2%,遗忘↓3.7× | IMSM |
| 多模态混合优化 | 多模态模型微调 | MMMU基准得分72.2(开源SOTA) | InternVL3 |
四、实践建议与未来方向
-
场景化选型策略:
- 数据丰富场景:采用“5%原始数据混合 + 学习率重调度”;
- 算力受限场景:优先LoRA/O-LoRA + 权重插值;
- 多模态任务:InternVL3式混合偏好优化(MPO)。
-
未来突破方向:
- 推理时扩展(Inference-Time Scaling):如DeepSeek R1通过增加推理步数(12K→23K token)提升复杂任务表现,避免预训练遗忘;
- 安全-遗忘联合优化:OpenAI的SSI项目探索遗忘有害知识与保留有用知识的平衡机制。
持续预训练的价值,不仅在于“经济地学习新事物”,更在于“聪明地不忘旧本领”。参数隔离与动态门控结合,代表了一条兼顾稳定与适应的可行路径,让大模型真正成为通用性与专业性兼修的“终身学习者”。
2.6大模型指令微调有哪些筛选数据的方法(14)?
大模型指令微调(Instruction Tuning)的数据筛选是提升模型泛化能力、减少幻觉的核心环节。优质指令数据需同时满足多样性、复杂性、真实性三大特性。以下结合前沿研究与实践,系统梳理七类主流筛选方法及其适用场景:
一、人工构建法:高精度但高成本
-
专家撰写(Expert Crafting)
- 流程:由领域专家编写指令-回答对,覆盖专业场景(如法律条文解析、医学诊断)。
- 案例:GPT-4的SFT数据集中,15%为OpenAI团队编写的医学/法律指令。
- 优势:质量极高,错误率<0.1%;缺陷:成本达$50/条,仅适用关键领域。
-
众包平台(Crowdsourcing)
- 优化策略:
- 分层任务设计:简单任务(如改写句子)面向大众,复杂推理任务限定通过资格测试者。
- 交叉验证:每条指令由3人独立生成,投票选择最优答案。
- 效果:LIMA数据集通过此方法构建,仅1,000条数据微调模型超越GPT-3.5。
- 优化策略:
二、自动生成法:低成本规模化
-
Self-Instruct 范式
- 三步流程:
- 种子指令生成:用预训练模型生成候选指令(如“解释量子纠缠”)。
- 指令过滤:剔除重复、低质指令(BLEU相似度>0.7则去重)。
- 回答生成:用更强模型(如GPT-4)生成参考答案。
- 关键改进:Alpaca-CoT引入复杂性评分器,保留逻辑链长度>5步的指令。
- 三步流程:
-
模板扩展法(Template Expansion)
-
操作:定义指令模板库,自动填充实体生成新数据:
templates = ["比较{实体A}和{实体B}的优劣", "列出{实体}的三大特性"] entities = ["区块链", "深度学习", "云计算"] # 从知识图谱抽取 -
效果:Google的FLAN数据集由此生成2,000万条指令,覆盖1,800+任务类型。
-
三、基于模型反馈的筛选法
-
RLAIF(Reinforcement Learning from AI Feedback)
- 流程:
- 生成候选回答 \(A_1, A_2, ..., A_n\)
- 奖励模型(RM)评分排序
- 保留Top-K指令-回答对
- 优势:Anthropic通过此法筛选HH-RLHF数据集,有害输出降低84%。
- 流程:
-
训练收益预测器(Data Influence Models)
- 原理:训练线性模型预测单条数据对验证集损失的改善程度:\[\Delta \mathcal{L}_{val} = \theta^T \phi(x) \]其中 \(\phi(x)\) 为指令的嵌入向量。
- 实践:微软Phi-3仅保留预测收益>0.2的数据,训练效率提升3倍。
- 原理:训练线性模型预测单条数据对验证集损失的改善程度:
四、复杂性驱动的分层筛选
-
逻辑深度评估
- 指标:
- 推理步数:使用Chain-of-Thought(CoT)计数器统计推理步骤。
- 概念密度:计算指令中专业术语占比(如“傅里叶变换”计2分,“算法”计1分)。
- 阈值:保留复杂性>3级的指令(如DeepSeek-Math中复杂数学题占比60%)。
- 指标:
-
任务类型平衡
-
分类框架:采用TaskTaxonomy对指令分层:
层级 示例任务 目标占比 记忆型 “法国的首都是?” 10% 推理型 “如何证明勾股定理?” 50% 创造型 “写一首关于AI的诗” 20% 工具调用 “用Python画正弦曲线” 20%
-
五、真实性验证与噪声过滤
-
事实一致性检测
- 工具链:
- 检索增强验证(RAV):用Retrieval API检查生成答案与权威来源(Wikipedia)的一致性。
- 矛盾检测器:训练BERT模型识别答案内部逻辑冲突(如“巴黎是法国首都,但位于德国”)。
- 数据:Google的GLaM数据集经此过滤后,事实错误率从12%降至2.3%。
- 工具链:
-
低质量模式剔除
- 典型噪声模式:
- 重复模式:
“很好很好很好...”(n-gram重复度>40%则剔除) - 模糊指令:
“解释一下那个东西”(指代不明) - 安全违规:使用LlamaGuard检测暴力/偏见内容。
- 重复模式:
- 典型噪声模式:
六、多样性增强技术
-
指令语义聚类采样
- 步骤:
- 用Sentence-BERT编码所有指令为向量
- K-means聚类(K=200~500)
- 每类均匀采样,确保类别覆盖率>95%
- 效果:应用在Mistral-7B指令集,OOD任务性能提升17%。
- 步骤:
-
对抗性数据生成
- 方法:基于模型弱点生成反例指令(如对数学盲点生成变体题)
- 案例:Meta的AdvGLUE通过对抗生成提升模型鲁棒性,准确率最大+12%。
七、前沿融合方案与效果对比
| 方法 | 所需资源 | 适用规模 | 效果增益(vs.随机采样) |
|---|---|---|---|
| 专家撰写+众包验证 | 极高 | 1K~10K条 | +15.2% (MMLU) |
| Self-Instruct+复杂性过滤 | 低 | 10万~100万条 | +9.7% (GSM8K) |
| RLAIF+收益预测 | 中 | 50万~500万条 | +12.3% (HumanEval) |
| 聚类采样+对抗生成 | 中高 | 100万+条 | +18.1% (Big-Bench Hard) |
实践建议:四步构建高效指令集
- 种子构建:用专家撰写100~500条核心指令,覆盖关键场景。
- 规模扩展:基于Self-Instruct生成候选池(建议10倍目标量)。
- 智能筛选:
- 步骤1:复杂度过滤(保留推理步≥3的指令)
- 步骤2:事实一致性验证(RAV+矛盾检测)
- 步骤3:多样性采样(聚类后每类取5~20条)
- 动态迭代:每轮微调后,用对抗生成补充弱点数据。
关键认知:指令质量 >> 数据量。Google DeepMind实验表明,用1万条精选数据微调的模型,性能超越100万条未筛选数据(MMLU平均高14.2%)。未来趋势是合成与筛选的自动化闭环——如Microsoft的DataDreamer系统已实现“生成-评估-优化”全流程无人干预。

浙公网安备 33010602011771号