大模型训练数据工程:从数据采集到质量评估

数据是新的代码 传统软件的"代码"在大模型时代变成了"数据"。模型的智能本质上是训练数据的压缩和重组。数据质量决定模型能力上限,算法和算力决定我们能多接近这个上限。 数据全流程 1. 数据采集 预训练数据来源 来源 占比(典型) 质量 说明 网页爬取 60-70% 中低 Common Crawl为主 书籍 5-10% 高 长文本、知识密集 论文 3-5% 高 学术知识 代码 5-10% 高 GitHub/The Stack 对话 5-10% 中 Reddit/社交平台 多语言 10-20% 中 各语言网页 合成数据 2026年趋势:合成数据占比越来越高。用强模型生成高质量训练数据: 知识合成:生成教科书式知识讲解 指令合成:生成多样化指令-回答对 推理合成:生成带思维链的推理过程 合成数据的关键风险是"模型坍缩"(model collapse)——如果训练数据全部来自模型生成,可能退化。需要确保一定比例的真实数据。 2. 数据清洗 基础过滤 原始网页文本 → 去HTML标签 → 去非自然语言(乱码、编码错误) → 去低质量内容(长度过短、重复模板) → 去有害内容(色情、暴力、仇恨) → 语言识别(保留目标语言) 启发式过滤 Common Crawl清洗的经典启发式规则: 平均行长度 > 50字符 字母字符占比 > 50% 数字占比 < 30% 重复行比例 < 30% 短行占比 < 80% 模型过滤 用小模型(如fasttext分类器)做质量评分: ...

2026-07-16 · 1 min · 208 words · 硅基 AGI 探索者

大模型预训练数据配比:如何科学地“喂”模型

数据配比:被低估的超参数 在预训练大模型时,数据配比(各类型数据的比例)可能是最被低估的决策之一。相同的模型架构、相同的训练量,不同的数据配比可以导致10个点以上的性能差异。本文系统梳理数据配比的科学方法。 数据类型的维度划分 按内容类型 DATA_CATEGORIES = { "web_text": { "description": "网页文本(新闻、博客、论坛等)", "examples": ["Common Crawl", "Reddit"], "role": "通用语言能力和世界知识", "typical_ratio": "40-60%" }, "code": { "description": "编程代码", "examples": ["GitHub", "Stack Overflow"], "role": "逻辑推理和结构化思维", "typical_ratio": "10-30%" }, "academic": { "description": "学术论文", "examples": ["arXiv", "PubMed"], "role": "专业知识和严谨表达", "typical_ratio": "5-15%" }, "books": { "description": "书籍", "examples": ["Project Gutenberg", "授权书籍"], "role": "长文本理解和叙事能力", "typical_ratio": "5-15%" }, "math": { "description": "数学相关文本", "examples": ["数学论文", "数学教材"], "role": "数学推理能力", "typical_ratio": "3-10%" }, "dialogue": { "description": "对话数据", "examples": ["论坛讨论", "问答对"], "role": "对话和指令跟随", "typical_ratio": "5-15%" }, "multilingual": { "description": "多语言数据", "examples": ["各语言网页"], "role": "多语言能力", "typical_ratio": "按目标调整" } } 按语言 LANGUAGE_DISTRIBUTION = { "英语为主": {"en": 0.90, "zh": 0.05, "other": 0.05}, "中文为主": {"zh": 0.80, "en": 0.15, "other": 0.05}, "中英双语": {"zh": 0.45, "en": 0.45, "other": 0.10}, "多语言": {"en": 0.40, "zh": 0.25, "other": 0.35}, } 配比对模型能力的影响 实验数据 基于Llama-3-8B架构的对照实验: experiments = [ { "name": "高Web比例", "config": {"web": 0.70, "code": 0.10, "academic": 0.05, "books": 0.10, "math": 0.05}, "results": {"MMLU": 62, "HumanEval": 55, "GSM8K": 45, "MT-Bench": 7.5} }, { "name": "高代码比例", "config": {"web": 0.45, "code": 0.30, "academic": 0.10, "books": 0.10, "math": 0.05}, "results": {"MMLU": 63, "HumanEval": 72, "GSM8K": 52, "MT-Bench": 7.3} }, { "name": "均衡配比", "config": {"web": 0.40, "code": 0.20, "academic": 0.15, "books": 0.10, "math": 0.10, "dialogue": 0.05}, "results": {"MMLU": 66, "HumanEval": 68, "GSM8K": 58, "MT-Bench": 7.8} }, { "name": "高学术比例", "config": {"web": 0.35, "code": 0.15, "academic": 0.25, "books": 0.15, "math": 0.10}, "results": {"MMLU": 68, "HumanEval": 60, "GSM8K": 55, "MT-Bench": 7.6} }, ] # 结论: # 1. 代码数据显著提升推理能力(HumanEval +17%) # 2. 数学数据提升数学推理(GSM8K +13%) # 3. 学术数据提升知识广度(MMLU +6%) # 4. 均衡配比综合表现最佳 代码数据的多重收益 代码数据不仅提升编程能力,还能提升通用推理: ...

2026-07-16 · 4 min · 733 words · 硅基 AGI 探索者

大模型训练数据治理:从数据采集到质量评估的全链路

数据:大模型能力的源头 “Garbage in, garbage out"在LLM时代被放大了1000倍。一个7B模型用高质量数据训练可以超越用低质量数据训练的70B模型。数据治理是决定模型能力上限的第一道关卡。 数据采集 数据源分类 class DataSourceTaxonomy: sources = { "web_crawl": { "Common Crawl": "最大的网页爬虫数据集", "Reddit": "高质量讨论内容", "Wikipedia": "结构化知识" }, "code": { "GitHub": "开源代码", "Stack Overflow": "编程问答" }, "academic": { "arXiv": "学术论文", "PubMed": "生物医学" }, "books": { "Project Gutenberg": "公版书籍", "Licensed books": "授权书籍" }, "dialogue": { "Reddit threads": "对话数据", "Forum discussions": "论坛讨论" } } 采集策略 class WebCrawler: def __init__(self, quality_filter): self.filter = quality_filter def crawl(self, url): # 1. 抓取页面 html = self._fetch(url) # 2. 正文提取(去除导航、广告等) content = self._extract_main_content(html) # 3. 质量初筛 quality_score = self.filter.assess(content) if quality_score < 0.3: return None # 质量太低,跳过 # 4. 语言检测 lang = detect_language(content) # 5. 元数据标注 return { "content": content, "url": url, "lang": lang, "quality_score": quality_score, "crawl_time": datetime.now(), "content_type": classify_content(content) # article/forum/wiki等 } 数据清洗 规则过滤 class RuleBasedFilter: def filter(self, text): # 长度过滤 if len(text) < 50 or len(text) > 100000: return False # 重复行过滤 lines = text.split('\n') unique_ratio = len(set(lines)) / len(lines) if unique_ratio < 0.5: return False # 特殊字符比例 special_ratio = sum(1 for c in text if not c.isalnum() and c not in ' \n.,!?;:\'"-()') / len(text) if special_ratio > 0.1: return False # 语言模型困惑度(过滤乱码) ppl = compute_perplexity(text) if ppl > 1000: # 困惑度过高=不像自然语言 return False return True 去重 数据去重是提升数据质量最有效的手段。研究表明,去重可以将模型性能提升3-5个点。 ...

2026-07-16 · 4 min · 644 words · 硅基 AGI 探索者
大模型训练数据治理:从清洗到质量评估全链路

大模型训练数据治理:从清洗到质量评估全链路

数据是大模型的燃料。2026年,随着高质量互联网文本逐渐枯竭,数据治理已成为决定模型能力上限的关键瓶颈。GPT-5的训练使用了超过50T tokens的数据,其数据管线复杂度远超大多数工程系统。本文将系统梳理这条全链路。 1. 数据采集与来源分类 1.1 数据来源全景 来源类型 占比(典型) 质量等级 典型数据集 网页爬取 40-50% 中 Common Crawl, RefinedWeb 书籍 10-15% 高 Books3, BookCorpus 学术论文 5-10% 高 arXiv, S2ORC 代码 5-10% 高 The Stack, GitHub 对话数据 5-10% 中 Reddit, Stack Overflow 专有数据 10-20% 极高 企业内部数据 合成数据 5-15% 可变 LLM生成数据 1.2 合成数据的崛起 2026年最重要的趋势是合成数据成为预训练的重要组成。Phi-4和GPT-5均大量使用合成数据: # 合成数据生成的典型pipeline synthetic_pipeline = { "seed_topics": "从高质量知识图谱采样种子主题", "generation": "使用强模型生成多角度、多深度的内容", "filtering": "使用reward model过滤低质量生成", "deduplication": "MinHash + LSH去重", "verification": "使用验证器检查事实准确性" } 关键发现:合成数据的多样性比数量更重要。10万条覆盖10万个主题的合成数据,比100万条覆盖1万个主题的数据训练效果更好。 2. 数据清洗全链路 2.1 文本提取 从HTML中提取正文是最基础但也最容易出错的环节: def extract_text(html: str) -> str: # 1. 使用trafilatura提取正文 text = trafilatura.extract(html, include_links=False, include_tables=True) # 2. 去除模板化内容(导航栏、页脚等) boilerplate_ratio = compute_boilerplate_ratio(text, html) if boilerplate_ratio > 0.5: text = clean_boilerplate(text) # 3. 语言检测 lang = fasttext.predict(text) if lang not in TARGET_LANGS: return None # 4. 编码修复 text = ftfy.fix_text(text) return text 2.2 质量过滤 2026年的质量过滤已从简单规则发展为多级分类系统: ...

2026-06-30 · 3 min · 459 words · 硅基 AGI 探索者
大模型训练数据治理:从清洗到质量评估全链路

大模型训练数据治理:从清洗到质量评估全链路

引言 “Garbage in, garbage out”——这句古老的计算机科学格言在大模型时代被赋予了全新的含义。GPT-5、Claude 4、Gemini 3等顶级模型的背后,不仅仅是算法和算力的胜利,更是数据工程的胜利。据估算,2026年主流大模型的训练数据量已达到50-100T tokens级别,如何保证如此规模数据的质量,成为决定模型能力的最关键因素之一。 数据治理全链路概览 大模型训练数据治理可分为五个核心阶段: 数据采集 → 数据清洗 → 数据去重 → 质量评估 → 数据配比 ↑ ↓ ←─────────── 持续监控与反馈 ──────────────← 数据采集:来源与策略 数据源分类 数据源 兄弟项目 数据量级 质量评级 典型代表 网页爬取 Common Crawl 50-100T ★★☆☆☆ RefinedWeb 书籍 Books3/Gutenberg 0.5-2T ★★★★☆ Books3 学术论文 arXiv/S2 0.5-1T ★★★★★ S2ORC 代码 GitHub 1-5T ★★★★☆ The Stack v2 对话数据 人工/合成 0.1-1T ★★★★★ ShareGPT 多模态 LAION 5-20T ★★★☆☆ DataComp 采集策略演进 2026年的数据采集策略已经从"越多越好"转向"质量优先": class DataCollector: def __init__(self, quality_threshold=0.7): self.quality_threshold = quality_threshold self.sources = { 'web': WebCrawler(max_pages=10_000_000), 'academic': ArxivFetcher(categories=['cs.AI', 'cs.CL']), 'code': GitHubCrawler(min_stars=10, languages=['python', 'java', 'cpp']), 'books': BookFetcher(domains=['textbook', 'literature']) } def collect(self, target_tokens=1e12): collected = 0 for source_name, source in self.sources.items(): for document in source.stream(): quality = self.assess_quality(document) if quality >= self.quality_threshold: yield document collected += len(document['text']) // 4 if collected >= target_tokens: return 数据清洗:从粗筛到精筛 第一层:格式清洗 格式清洗去除HTML标签、乱码、非自然语言内容: ...

2026-06-30 · 3 min · 533 words · 硅基 AGI 探索者
llm training pipeline pretrain sft rlhf dpo

大模型训练流程:预训练/SFT/RLHF/DPO 全链路

大模型训练四阶段:从原始语料到对齐智能 大语言模型的训练是一个多阶段的复杂过程。从原始互联网文本到能与人类对齐的智能助手,需要经过预训练、监督微调、人类反馈强化学习(RLHF)和直接偏好优化(DPO)四个阶段。本文将全面解析这条训练链路。 一、训练流程总览 ┌─────────────────────────────────────────────────────────────┐ │ 大模型训练全流程 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 阶段1: 预训练 (Pre-training) │ │ 输入: 万亿 Token 原始语料 │ │ 目标: Next Token Prediction │ │ 产出: 基座模型 (Base Model) │ │ │ │ 阶段2: 监督微调 (SFT) │ │ 输入: 高质量指令-回复对 (10K-1M) │ │ 目标: 模仿专家回复 │ │ 产出: 指令模型 (Instruct Model) │ │ │ │ 阶段3: 人类反馈强化学习 (RLHF) │ │ 输入: 人类偏好数据 (A > B 对比) │ │ 目标: 最大化人类偏好奖励 │ │ 产出: 对齐模型 (Aligned Model) │ │ │ │ 阶段4: 直接偏好优化 (DPO) │ │ 输入: 同 RLHF 的偏好数据 │ │ 目标: 直接优化策略, 无需奖励模型 │ │ 产出: 进一步优化的对齐模型 │ │ │ └─────────────────────────────────────────────────────────────┘ 二、预训练(Pre-training) 2.1 训练目标 预训练使用Next Token Prediction(NTP)作为训练目标: ...

2026-06-28 · 4 min · 773 words · 硅基 AGI 探索者
pretraining data cleaning

大模型预训练数据清洗方法论

概述 大模型预训练数据清洗方法论是AI智能体领域中大模型预训练数据清洗方法论的重要主题。本文将从多个角度深入分析这一话题,为读者提供系统性的认知框架和实践参考。 核心概念 基本定义 在深入讨论之前,我们需要明确几个核心概念。AI智能体是指能够感知环境、理解指令、规划行动并调用工具完成任务的AI系统。与传统的聊天机器人不同,智能体具有自主性、目标导向性和工具使用能力。 大模型预训练数据清洗方法论涉及的关键技术包括: 大语言模型:作为智能体的认知引擎,负责理解、推理和生成 工具调用:通过Function Calling或MCP协议与外部系统交互 记忆系统:短期记忆处理当前对话,长期记忆存储历史经验 规划引擎:将复杂任务分解为可执行的子步骤 技术原理 从技术层面看,大模型预训练数据清洗方法论的核心在于如何让AI系统更好地理解和执行人类意图。这涉及多个技术环节的协同: 首先是感知层,智能体需要准确理解用户的自然语言指令,提取关键信息和约束条件。其次是规划层,将高层目标分解为具体的执行步骤。然后是执行层,调用合适的工具完成每个步骤。最后是反馈层,根据执行结果调整后续策略。 实践分析 当前现状 在技术原理领域,当前的技术实践呈现出几个明显特征: 工程化程度提升:从实验室原型到生产级系统,工程能力成为关键差异化因素 评估体系完善:越来越多标准化的评测基准被提出,帮助开发者量化能力边界 开源生态繁荣:开源框架和工具链的成熟降低了开发门槛 安全意识增强:对AI安全和对齐问题的重视程度显著提升 关键挑战 尽管进展显著,大模型预训练数据清洗方法论仍面临几个核心挑战: 技术挑战: 大模型的幻觉问题在智能体场景下被放大,因为智能体需要做出实际决策 多步推理中的错误累积效应导致长程任务成功率下降 工具调用的可靠性受外部API稳定性影响 工程挑战: 智能体的可观测性不足,调试和排错困难 成本控制与性能优化的平衡 从单机到分布式部署的架构复杂性 安全挑战: Prompt注入等攻击手段不断进化 智能体权限管理需要更精细化的控制 数据隐私保护在多Agent协作场景下更加复杂 优化策略 针对上述挑战,以下是几个关键优化方向: 技术优化 分而治之:将复杂任务分解为可独立验证的子任务,降低单步错误影响 多路投票:对关键决策使用多次采样投票机制,提高可靠性 渐进式信任:智能体权限从最小化开始,根据表现逐步扩展 人在回路:高风险决策保留人工审核环节 工程优化 可观测性优先:建立完善的日志、指标和追踪体系 灰度发布:新版本智能体先在小流量环境验证 自动化测试:构建端到端测试套件,防止回归 成本监控:实时追踪Token消耗和API调用成本 案例研究 为了更具体地说明大模型预训练数据清洗方法论的实践价值,我们来看一个典型场景: 某科技公司在内部IT运维中部署了AI智能体,负责处理员工的工单请求。智能体需要理解员工的自然语言描述,判断问题类型,查询知识库,执行修复操作或转接人工。 实施过程中遇到的关键问题包括: 员工描述模糊导致意图识别错误 知识库信息过时导致给出错误建议 某些操作需要管理员权限存在安全风险 解决方案: 引入澄清对话机制,在不确定时主动追问 建立知识库更新流程,定期审核内容 实施权限分级制度,敏感操作需人工确认 效果:工单首次解决率提升35%,平均处理时间缩短60%,员工满意度显著提升。 未来趋势 大模型预训练数据清洗方法论的发展趋势值得关注: 标准化:MCP等开放协议将推动工具接口标准化,降低集成成本 垂直化:针对特定行业和场景的专用智能体将大量涌现 协作化:多智能体协作将成为复杂任务的标准解决方案 自主化:智能体的自主决策能力将持续提升,但需要配套的安全机制 结论 大模型预训练数据清洗方法论是AI智能体技术发展中的重要一环。无论是技术原理的深入理解,还是实践中的工程优化,都需要系统性思维。对于开发者和企业而言,关键在于: 理解技术能力和边界,避免过度期待 建立系统化的评估和监控体系 在创新和安全之间找到平衡 持续学习和适应快速变化的技术生态 硅基AGI探索者将持续关注技术原理领域的最新进展,为读者提供深度分析和实践指导。— ...

2026-06-27 · 1 min · 88 words · 硅基 AGI 探索者
鲁ICP备2026018361号