09. 为什么说"数据比模型架构更重要"?有哪些支撑证据?

整理数据重要性的原因、支撑证据与工程启示。

简单回答

"数据比架构更重要"这个判断来自于反复的实验验证:在相同参数量和训练计算量的条件下,数据质量更高的模型几乎总是优于数据量更大但质量更差的模型;而不同的 Transformer 架构变体在数据质量相近时性能差异远小于数据质量差异带来的影响。Phi 系列、LIMA、Chinchilla 等多项工作都支持这个结论。但这不意味着架构不重要——架构是效率的天花板,数据是效果的地基。

详细解答

核心证据一:Phi 系列的"小模型大能力"

Phi-1(Microsoft,2023)是最有说服力的例子之一。一个 1.3B 参数的小模型,用 GPT-4 生成的"教科书质量"合成数据训练,在 HumanEval(Python 代码生成)上的 pass@1 达到了 50.6%,超过了同期很多参数量是它 5~10 倍的模型。在此之前,普遍的认知是"更大的参数量 = 更强的代码能力"。Phi-1 打破了这个认知——如果数据足够好,小模型能做到原本需要大得多的模型才能做到的事。

Phi-1.5 和 Phi-2 延续了这个思路,继续用精选合成数据,在更多能力维度上实现了"小模型超越大模型"。

核心证据二:LIMA 的 1000 条数据实验

LIMA(Less Is More for Alignment)论文(Meta,2023)做了一个简单但震撼的实验:从公开数据源精心挑选 1000 条高质量指令-回答对,微调 LLaMA-65B。结果在 GPT-4 偏好评测上,LIMA 的胜率接近 ChatGPT,远超用 52000 条 Alpaca 数据微调的版本。

结论是:SFT 阶段需要的数据量比大家想象的少,关键是质量。模型的知识和能力大部分来自预训练阶段,SFT 的作用是"对齐行为",不需要大量数据来"教知识"。

核心证据三:Chinchilla Scaling Law

DeepMind 的 Chinchilla 论文(2022)通过大量实验发现:给定计算预算,最优的做法是让模型参数量和训练 token 数大致相等(各按 来分配,其中 是参数量)。这推翻了之前"更多参数量 = 更好"的直觉——GPT-3 (175B) 其实是在"欠训",如果在训练 token 数上多投入,能用更小的模型获得相同甚至更好的效果。

其中 是参数量, 是训练 token 数, 是损失, 是不可约损失。训练数据的数量()和模型大小()对最终损失的贡献是同等量级的。

核心证据四:去重数据的提升

前面提到的去重论文(Deduplicating Training Data Makes Language Models Better)量化了数据去重对模型性能的影响:在相同参数量和计算量下,去重后的训练数据得到的模型,困惑度更低,下游任务表现更好。这直接说明"数据量一样但质量更高(去重后)"的数据更有价值。

为什么架构依然重要

说"数据比架构重要"不是说架构不重要,而是强调在很多实际场景下,数据是更容易被忽视的瓶颈。架构的重要性体现在:

FlashAttention 这样的系统优化让相同参数量的模型能处理更长的序列、训练更高效,间接提升了能接受的数据质量和多样性上限。MoE 架构让同等参数量的模型能用更少的计算量训练更多 token,相当于数据利用效率更高。RoPE 这样的位置编码设计直接影响了模型对长文本的泛化能力。

所以更准确的说法是:数据质量是模型表现的地基,架构是数据利用效率的上限。两者都重要,但在资源有限时,优先把数据做好的 ROI 通常更高。

面试时可以这样答

这个判断有几个有力的支撑。Phi-1 用 GPT-4 生成的教科书质量合成数据训练了个 1.3B 参数的小模型,代码能力打败了很多 10 倍大的模型,直接说明数据质量能弥补参数量的差距。LIMA 论文用 1000 条精选数据微调 LLaMA-65B,效果接近 ChatGPT,说明在对齐阶段数据量没那么重要,质量才是核心。Chinchilla Scaling Law 则从理论层面说明训练数据量和参数量对最终效果的贡献是同等量级的,之前大家都在"欠训"模型。

但"数据比架构重要"不是说架构不重要。更准确的说法是:数据质量是模型效果的地基,架构是数据利用效率的上限。FlashAttention 让你能训更长序列、MoE 让计算更高效——这些最终都反映在能处理更多更高质量的数据上。

工程上这个结论的启示是:在资源有限的情况下,把精力先放在数据清洗、去重、质量筛选上,比调架构的 ROI 通常更高。

常见追问

  1. Chinchilla Scaling Law 的结论在实际工程中是否被完全遵从?有哪些反例?
  2. 数据质量怎么量化?有没有比困惑度更好的度量?
  3. 如果数据质量和数量都很差,有没有什么快速提升的手段?