1. 动机与研究背景(25分钟)
大语言模型(LLM)已在多个行业引发广泛关注并推动实际应用落地,而其成功与否在很大程度上取决于各阶段所用数据的质量与多样性。数据处理作为LLM开发过程中至关重要却常被忽视的环节,旨在确保数据集在相关性、比例构成、质量控制、隐私保护与安全性等方面满足系统性要求。本报告将系统探讨LLM开发中的关键数据特征与处理方法,涵盖数据获取、去重、过滤、筛选、混合、合成以及端到端数据流水线等全流程技术。
2. LLM数据特征(20分钟)
在LLM的开发过程中,不同阶段需要不同类型的数据集以满足特定需求,例如预训练阶段需要TB级、多样化的数据(如网页爬取、书籍、学术论文等),以帮助模型掌握广泛的语言和跨模态理解能力;持续预训练则侧重于填补知识空白,使用特定领域的数据(如金融、医疗)进行增量训练。监督微调(SFT)阶段依赖指令-响应对形式的数据,通过精心设计的任务(如问答、摘要)调整模型输出风格和逻辑;强化学习(RL)阶段则通过人类反馈或自动评分优化模型响应质量。检索增强生成(RAG)阶段需要动态更新的真实知识库(如法律条文或医疗记录),以支持模型推理时的外部检索。此外,评估数据集用于全面测试模型能力,而智能体(Agent)训练数据则需包含多轮对话、工具调用等复杂交互轨迹。这些数据集通过数据采集、去重、过滤、混合等技术处理,确保其规模、质量和多样性,从而为LLM的性能和安全性奠定基础。
3. 面向LLM的数据采集(20分钟)
数据采集(Data Acquisition)主要用于从多样化的数据源中收集和提取原始数据,为后续的模型训练提供丰富、高质量的训练素材,同时兼顾效率与隐私保护。传统的机器学习主要依赖特定领域的标注数据,而LLM则需要从多个领域获取大量的无监督数据,例如通过网页爬取从Common Crawl等公开资源中提取文本,或者从书籍、学术论文、代码仓库等结构化或非结构化数据中挖掘内容。此外,数据采集还涉及复杂的技术,如布局分析(从扫描文档或手写资料中提取文本)和实体识别与链接(从文本中识别并关联关键实体)。这些技术不仅帮助构建TB级的预训练语料库,还能增强数据的多样性和质量,从而支持LLM在通用和特定领域任务中的表现。例如,通过自动化工具(如Trafilatura或Selenium)提取网页主要内容,或利用多模态模型(如GOT2.0)处理图像文本混合数据。
4. 面向LLM的数据去重(20分钟)
数据去重(Data Deduplication)的主要目的是消除训练数据中重复、冗余的内容,从而帮助提升模型性能。原始数据(如网页爬取内容)往往包含大量重复或高度相似的样本,这些冗余可能导致模型过拟合或记忆特定内容,从而削弱其泛化能力。数据去重通过多种技术识别并处理重复数据,例如基于URL匹配、精确子串匹配(如MD5比较)、近似哈希(如MinHash、SimHash)以及基于语义嵌入的聚类方法(如SemDeDup)。具体来说,URL匹配移除同一网页的多次抓取结果;精确子串匹配检测完全相同的文本片段;近似哈希则处理格式略有差异但内容相似的样本;而嵌入聚类借助LLM对文本进行嵌入并进行聚类,从而进一步识别语义相似但表达不同的文本。通过去重,不仅能减少计算资源消耗,还能优化数据分布,使模型更高效地学习多样化的语言模式,最终提升生成质量和任务表现。
5. 面向LLM的数据过滤(20分钟)
数据过滤(Data Filtering)是LLM开发中的关键步骤,目的是从原始数据中剔除低质量或有害内容,以提升模型性能并保护隐私。其核心任务分为两个层面:样本级过滤和内容级过滤。样本级过滤通过困惑度测量、影响评估、聚类或模型评分等方法筛选高质量且多样化的样本,例如移除重复或过于简单的文本,确保数据覆盖广泛领域;内容级过滤则针对样本中的部分噪声或敏感信息,例如删除毒性语言、个人身份信息(PII)或偏见性表述,同时处理图像/视频中的不当内容。数据过滤不仅能减少训练开销,还能防止模型记忆有害信息或产生偏差输出。例如,通过聚类嵌入向量保留语义多样的样本,或利用预训练模型识别并过滤隐私数据。
6. 面向LLM的数据选择(20分钟)
数据选择(Data Selection)是LLM开发中的关键步骤,旨在从已清洗的数据集中筛选出与特定任务或领域最相关的子集,以优化模型性能。与预训练阶段依赖海量通用数据不同,数据选择更注重针对性,例如在医疗、法律等垂直领域,通过选择与目标任务高度相关的数据,避免无关数据干扰模型学习。其核心方法包括基于相似性的选择(如余弦相似度、词袋模型)、基于优化的选择(如最小化验证损失)以及基于模型的选择(如通过提示LLM评估数据质量)。例如,在持续预训练中,数据选择能填补知识空白;在指令微调(SFT)中,它确保数据格式(如指令-回答对)符合任务需求。
7. 面向LLM的数据混合(20分钟)
数据混合(Data Mixing)是指在训练LLM时,将来自不同领域、来源或结构的多个数据集按特定比例组合,或通过调整采样概率使模型对不同领域数据分配不同注意力权重的策略。其核心目标是优化模型在不同任务和领域上的性能平衡,确保模型既能广泛泛化,又能在特定任务中表现优异。例如,在预训练阶段,数据混合可以结合通用文本(如新闻、百科)与专业领域数据(如医学、法律),以增强模型的多领域理解能力;在微调阶段,则可能通过调整指令数据与推理数据的比例来提升模型的任务适应性。数据混合的方法多样,包括基于经验的启发式比例调整(如实验验证不同数据组合的效果)、基于模型的优化(如利用回归模型预测不同数据比例对验证损失的影响)以及动态优化技术(如双层优化和分布鲁棒优化)。这些方法共同解决了数据分布不均、领域偏移等问题,同时避免了因数据比例不当导致的性能下降。例如,某些研究通过小规模代理模型实验确定最优混合比例,再将其应用于大规模训练,显著提升了计算效率和模型性能。
8. 面向LLM的数据合成(20分钟)
数据合成(Data Synthesis)是指利用LLM生成模拟真实场景的数据,以解决LLM训练中的多种挑战。其核心目标包括:(1)缓解数据稀缺问题,例如通过生成多样化样本扩增小规模数据集;(2)保护隐私,例如用合成数据替换敏感信息;(3)提升数据质量,例如为特定领域(如数学、医疗)生成高难度推理数据或对齐人类指令的样本;(4)支持复杂任务,如生成带有逻辑链的代码或数学解题步骤;(5)自动化标注,例如通过LLM模拟人类偏好反馈以优化强化学习。数据合成方法通常基于提示工程或多智能体协作,通过设计特定框架(如思维链分支纠错、多模态图文生成)确保数据的多样性和逻辑一致性。尽管高效,合成数据可能继承源模型的毒性或偏见,因此需结合验证工具(如程序辅助校验、语义评分)进行严格过滤。
9. 端到端数据流水线(20分钟)
端到端数据流水线(End-to-End Data Pipelines)是为LLM设计一套系统化数据处理流程,目标是从原始数据中高效提取、清洗、优化并最终生成高质量的训练数据集。在LLM的生命周期中,数据流水线通过协调多个关键任务(如数据获取、去重、过滤、混合和合成)来确保数据的多样性、一致性和安全性。例如,流水线可能首先从网页抓取原始文本,随后通过去重技术消除冗余内容,再基于质量指标过滤低效或有害信息,最后按特定比例混合不同领域的数据以优化模型性能。流水线的设计需权衡效率与质量,例如先执行轻量级操作(如URL过滤)以减少计算开销,再逐步进行复杂的模型驱动处理(如语义去重),例如RefinedWeb数据集构建流程通过多阶段处理(文本提取、启发式过滤、跨分片去重)显著提升了数据质量。此外,现代流水线还尝试超越经验式设计,例如Data-Juicer Sandbox通过“探测-分析-优化”工作流动态调整操作顺序,从而更高效地支持LLM预训练需求。
10. 未来挑战(25分钟)
在大语言模型(LLM)的开发中,数据处理是决定模型性能和安全性的关键环节,但也面临诸多挑战。首先,数据获取需要从海量且多样化的来源(如网页、书籍、代码库)中提取高质量内容,但网页数据通常包含噪声(如广告、导航栏),需通过布局分析和实体识别等技术清洗。其次,数据去重需识别并删除重复或近似的样本,以避免模型过拟合或记忆冗余信息,但传统方法(如URL匹配、哈希)难以处理语义相似但表达不同的内容,而嵌入聚类虽能解决这一问题,却计算成本高昂。此外,数据过滤需平衡质量与多样性,既要剔除低质量或有害内容(如毒性语言、隐私信息),又要避免过度过滤导致数据代表性不足,而依赖人工规则或模型评分可能引入偏差。最后,数据合成虽能缓解数据稀缺问题,但合成数据的逻辑一致性、多样性和隐私保护仍需严格验证。这些挑战要求研究者开发高效、可扩展且符合伦理的数据处理方法,以支撑LLM的持续优化。