技术札记

大模型的护城河,不只是代码,而是数据

当 Transformer、训练框架与开源权重逐渐普及,真正稀缺的是什么?从 Llama 3、Phi-1、LIMA 到生产级数据流水线,重新理解数据质量、配比、合成数据与评测闭环。

HOUHUIYANG.COM

扫码继续阅读

正在生成…

大模型的护城河,不只是代码,而是数据

houhuiyang.com/zh/notes/data-is-the-moat-for-large-language-models

现在再去看大模型的代码,会发现它已经没有几年前那么神秘。

Transformer 是公开的,Attention 是公开的,预训练、SFT、偏好优化、量化和推理服务都有成熟的开源实现。PyTorch、Hugging Face、DeepSpeed、Megatron-LM、TRL 和 vLLM,已经把许多过去只有大厂才能完成的工作变成了可以复用的工程组件。

今天,一个有经验的团队搭出一个“能够训练、能够微调、能够推理”的模型,门槛确实降低了。

但能把模型跑起来,不等于能训练出一个真正有用的模型。

我越来越明确的一个判断是:

当模型结构逐渐趋同、训练代码逐渐开源以后,大模型真正的竞争,正在从“会不会写模型”转向“有没有数据、数据质量如何,以及能不能建立持续改进数据的闭环”。

这不是说算法、算力和工程不重要。恰恰相反,前沿模型仍然需要复杂的分布式训练、稳定性治理、优化策略、评测体系和大量算力。只是基础代码已经越来越容易获得,而高价值数据及其生产系统,依然很难复制。

参数决定容量,数据决定学到什么

机器学习里有一句最朴素的话:

Garbage in, garbage out。垃圾进,垃圾出。

大模型不会像人一样,先判断一段文字是否真实,再决定要不要学习。预训练的核心任务仍然是根据上下文预测后续 Token。只要一种模式在数据中反复出现,模型就可能把它写进参数。

如果训练集中充满 SEO 拼接文章,模型就会学会流畅但空洞的表达;如果代码集中有大量重复仓库、过时依赖和错误实现,模型就可能更加自信地生成不安全代码;如果医疗、法律或金融材料本身有误,扩大参数量也不会自动把错误变成事实。

但“数据决定模型上限”还可以说得更准确:

参数规模决定模型能够容纳多少模式,数据决定它主要接触什么模式,算法与优化决定它能否有效吸收这些模式,评测则决定团队是否真的知道模型学会了什么。

模型能力不是单一变量的结果。架构、算力、Tokenizer、训练目标、数据、后训练和推理策略共同作用。数据的重要性在于,它规定了模型可以学习的经验边界。

数据质量,不只是把脏数据删掉

很多人把数据质量理解成删除乱码、广告、色情内容和重复文本。这只是最基础的一层。

对大模型而言,质量至少包括五个维度:

维度需要回答的问题
正确性事实是否可靠,代码是否能够编译和通过测试?
多样性是否覆盖不同语言、领域、任务、观点和表达方式?
代表性数据分布是否接近模型未来面对的真实场景?
安全与合规是否包含隐私、密钥、有害内容或许可证风险?
可学习性内容是否完整、清晰、有结构,并具有足够的信息密度?

一份没有脏话、格式整齐的数据,不一定是高质量数据。如果所有样本都在重复同一种观点,它仍然会训练出一个能力狭窄、偏差明显的模型。

因此,质量与数量不是简单对立。通用模型仍然需要规模来获得覆盖面,而高质量决定这些 Token 是否值得消耗训练算力。

不要给未公开的数据配比编数字

训练数据的具体组成,通常是模型团队最重要的秘密之一。

以 Llama 3 为例,Meta 公开确认的是:预训练数据超过 15T Token,全部来自公开来源;训练集规模约为 Llama 2 的七倍,代码数据约为 Llama 2 的四倍,高质量非英语数据超过 5%,覆盖三十多种语言。Meta 还披露了启发式过滤、NSFW 过滤、语义去重和质量分类器等方法,并通过大量实验决定最终数据混合比例。Meta 官方说明

但是,Meta 并没有公开“Common Crawl 50%、GitHub 17%、Books 与 ArXiv 10%”这样的完整配比。

所以更严谨的写法应该是:大型语言模型的训练集通常会包含网页、代码、书籍、论文、百科、问答和多语言语料;具体比例取决于模型的目标能力,不能把行业猜测写成某个模型的官方数字。

这件事本身也说明:

模型架构可以写进论文,数据配方却常常构成真正的商业机密。

Phi-1 证明的是数据效率,不是小模型全面胜利

微软的 Phi-1 经常被用来说明数据质量的重要性,但它的结论也经常被夸大。

Phi-1 有 1.3B 参数,使用约 6B Token 的筛选代码数据,以及约 1B Token 的合成教材和练习进行训练。它在 HumanEval 和 MBPP 等代码基准上取得了很强的成绩。《Textbooks Are All You Need》

它真正证明的是:

在目标明确、结果可验证的领域,高信息密度的数据和良好的教学顺序,可以显著提高训练效率。

它没有证明 1.3B 模型能够在所有通用能力上全面超过 7B 模型。代码能力、世界知识、多语言、长文本和写作是不同维度,不能用一个代码榜单替代全部能力。

这个区别非常重要。数据质量不是魔法,它不能绕过任务范围,也不能凭空补充训练集中不存在的知识。

LIMA 证明的是少而精,不是“1000 等于 52000”

LIMA 使用 1,000 条精心挑选的提示与回答,对一个已经完成大规模预训练的 65B LLaMA 模型进行监督微调,展示了很强的指令跟随能力。LIMA 论文

这里的前提不能忽略:基础模型已经通过预训练获得了大量知识。SFT 主要是在教它如何组织、调用和表达这些能力。

因此,LIMA 更准确的启示是:

对一个能力已经形成的基础模型,少量高质量、覆盖合理的指令数据,可能比大量粗糙、重复的指令数据更有效。

它并不意味着任何 1,000 条人工数据都等价于 52,000 条 Alpaca,也不意味着企业只标 1,000 条数据就一定足够。模型基础能力、任务边界、样本覆盖和评测标准都会改变结果。

一条生产级数据流水线应该是什么样

真正的大模型数据工程,不是运行一次清洗脚本,而是一套可以追踪、复现、评估和持续迭代的数据生产系统。

数据源登记与许可证审查
        ↓
采集、解析与格式标准化
        ↓
正文提取与文档结构恢复
        ↓
语言、领域与内容类型识别
        ↓
规则过滤与异常检测
        ↓
质量模型打分与分层抽样
        ↓
精确去重、近似去重与跨源去重
        ↓
PII、密钥、安全与合规处理
        ↓
训练集与评测集污染检测
        ↓
数据配比、课程编排与 Token 预算
        ↓
小规模消融实验
        ↓
能力、安全、偏差与回归评测
        ↓
版本化发布

这个顺序不是绝对固定的。例如,精确去重可以提前降低后续计算成本;质量感知去重则需要先评分,再从重复样本中保留质量最高的版本。最佳实践不是死记步骤,而是保证每个阶段都有输入、输出、指标和可追溯记录。

1. 先治理来源,再开始清洗

每一批数据都应该记录来源、采集时间、许可证、用途限制、语言、领域和处理历史。

如果不知道数据从哪里来,就无法处理版权争议、隐私删除、污染定位和训练复现。企业真正需要的不是一个装满文件的对象存储,而是一份数据资产目录和数据血缘。

2. 解析质量决定后续上限

网页中的菜单、广告、推荐链接、Cookie 提示和评论,可能比正文还多。PDF 还会出现页眉页脚重复、双栏顺序混乱、表格错位和 OCR 错误。

如果解析阶段已经破坏了语义结构,后续模型再强也只是在清洗一堆排列错误的字符。数据工程的第一步,是尽可能恢复原始内容的文档边界和结构。

3. 语言识别不能只有 fastText

fastText 可以作为基础工具,但短文本、方言、低资源语言以及代码与自然语言混合内容都可能误判。

生产环境通常需要把语言模型、字符规则、来源信息和人工抽样结合起来,并对不同语言分别设定质量阈值。用一套英语规则过滤所有语言,往往会系统性删除最稀缺的多语言数据。

4. 困惑度不是质量的同义词

KenLM 困惑度、启发式规则和分类器都很有用,但没有一个分数可以单独代表质量。

困惑度很高,可能是乱码,也可能是专业术语、新知识或低资源语言。阈值过于激进,会把最稀缺的内容一起删掉。

更可靠的方式是多信号联合评分、按语言和领域分桶、人工抽检,并用训练实验验证过滤规则,而不是凭感觉调阈值。

5. 去重不只是 MinHash

同一篇文章可能被转载几十次,同一个 GitHub 项目可能有大量 Fork,教程可能只改了标题和几句话。

完整的去重通常包括:

去重的目标不是删得越多越好,而是在重复簇中保留来源可靠、内容完整、质量最高的版本。

6. PII 与安全不能只靠正则

邮箱、手机号、身份证、家庭住址、API Key 和内部代码都可能进入训练集。

正则表达式适合处理格式稳定的内容,但生产系统还需要命名实体识别、密钥扫描、分类器和人工复核。更重要的是建立删除机制:当数据需要撤回时,团队必须知道它进入过哪些数据版本和模型版本。

有害内容也不能简单按关键词全部删除。模型仍然需要理解攻击、欺诈和危险内容,才能识别并拒绝它们。真正需要管理的是上下文、比例、标注方式和训练目标。

数据配比,本质上是能力预算

训练算力是有限的。提高一种数据的采样比例,就意味着其他数据获得的训练机会下降。

代码数据具有结构化、长程依赖和部分结果可验证的特点,增加它可能改善编程和某些推理任务,但并不保证通用推理一定增强。比例过高,也可能挤压自然语言、领域知识和多语言能力。

增加中文语料,通常能够改善中文理解、表达和知识覆盖;但一段中文需要多少 Token,主要取决于 Tokenizer 的词表和分词策略。中文数据比例与 Tokenization 效率有关联,却不是同一件事。

增加论文与书籍,可以提高知识密度和长文本结构;增加社交媒体内容,可以覆盖实时语言和大众观点,也会带来更多谣言、攻击性表达和群体偏差。

所以,不存在适合所有模型的黄金配比。

数据配比不是原料采购,而是产品目标在训练集上的投影。

一个面向代码的模型、一个中文法律模型和一个通用对话模型,本来就不应该使用同一份数据配方。

合成数据的核心不是生成,而是验证

当高质量自然数据越来越稀缺,合成数据成为重要来源。强模型可以生成教材、推理题、代码、问答和偏好样本,还可以控制难度和覆盖长尾任务。

但合成数据不会凭空创造可靠知识。

教师模型的错误会传递给学生模型;模板过于单一会降低表达多样性;同一模型反复生成、筛选自己的内容,还可能放大固有偏差。

因此,合成数据最重要的不是生成规模,而是验证机制:

如果没有验证器,合成数据只是更便宜、更快速地制造不确定性。

数据工程必须与评测形成闭环

一次清洗完成后,团队最应该问的不是“还剩多少 Token”,而是:模型在哪些能力上变好了,在哪些能力上退化了,为什么?

模型错误与用户反馈
        ↓
错误分类与根因分析
        ↓
定位数据缺口、错误样本或配比问题
        ↓
补充、修正、重采样或重新标注
        ↓
小规模训练与消融实验
        ↓
离线评测、红队测试和线上观察
        ↓
通过门禁后进入下一数据版本

这里至少要建立四类指标:

  1. 数据指标:重复率、语言分布、领域覆盖、质量分布、PII 命中率;
  2. 训练指标:不同数据桶的 Loss、梯度异常、Token 利用率和收敛曲线;
  3. 能力指标:目标任务准确率、代码通过率、事实性和指令遵循;
  4. 风险指标:幻觉、有害输出、隐私泄露、偏差与评测集污染。

没有数据版本,训练无法复现;没有消融实验,无法证明某批数据有效;没有线上反馈,离线榜单也无法代表真实价值。

对企业而言,数据护城河应该如何落地

大多数企业没有必要从零预训练一个通用大模型。真正值得投入的是把内部知识、业务过程和专家反馈转化为可治理、可评测的数据资产。

我会优先做下面这些事情:

  1. 明确三个最有价值、结果可以衡量的业务任务;
  2. 为每个任务建立独立评测集,而不是先收集“所有数据”;
  3. 盘点数据来源、权限、许可证、敏感级别和负责人;
  4. 建立清洗、去重、脱敏、版本和血缘流水线;
  5. 先用 RAG 或小规模微调验证价值,再决定是否扩大训练;
  6. 把用户纠错、人工审核和失败案例持续回流;
  7. 用业务结果决定数据投入,而不是用 Token 数量汇报成绩。

企业真正独有的数据,往往不是互联网上还能再爬一遍的网页,而是经过授权的业务流程、专家判断、客户反馈、失败案例和结果标签。

这些数据规模可能不大,却与真实结果高度相关,也最难被竞争对手复制。

最后的判断

大模型的算法和代码当然重要。训练系统、模型结构、优化器、算力和推理工程,也不会因为开源而失去价值。

但当基础架构逐渐成为公共能力,真正难以复制的是:

“垃圾进,垃圾出”只是第一层结论。

我更愿意把它完整地写成:

参数决定模型的容量,算力决定训练的规模,算法决定学习的效率,而数据决定模型最终学会什么。

当代码逐渐成为公共基础设施,真正的竞争不再是谁能把模型跑起来,而是谁能持续把正确、稀缺、合法、可验证的数据送进模型,并证明模型因此变得更好。

这才是大模型时代真正的数据护城河。

参考资料

返回技术札记