新闻  |   论坛  |   博客  |   在线研讨会
教科书级数据is all you need:1.3B小模型逆袭大模型的秘密(1)
机器之心 | 2023-06-23 15:08:54    阅读:181   发布文章

吴恩达说的「小数据」有多大威力?这个只有 1.3B 参数量的模型给出了证明。


人工智能的三个核心要素是算力、算法和数据,这是大多数人在初识人工智能时都会接触到的一个观点。不过,在深入阐述该观点时,很多材料都倾向于解释数据「大」的一面,毕竟当前的大模型一直在由不断增加的「大数据」来推动,而且这条路似乎还没有走到极限。
不过,随着数据获取难度增加以及算力增长出现瓶颈,单纯追求「大模型、大数据」的道路变得愈发难以为继。因此,早在 2022 年,吴恩达就在采访中呼吁大家关注「小数据」,即数据量较小但质量较高的数据。「在数据行业,我认为重点必须从大数据转向优质数据。拥有 50 个精心设计的示例就足以向神经网络解释用户希望它学习什么。」吴恩达表示。
高质量的「小数据」到底有多大威力?最近,来自微软的一篇题为「Textbooks Are All You Need」的论文给出了一个非常直观的答案。
图片
论文链接:https://arxiv.org/pdf/2306.11644.pdf
他们用规模仅为 7B token 的「教科书质量」数据训练了一个 1.3B(13 亿参数)的模型 ——phi-1。phi-1 专注于编码任务,具体来说是编写 Python 函数和对应的文档字符串。训练数据由网上筛选的教科书质量数据(6B token)和 GPT-3.5 生成的教科书及练习数据(1B token)组成。训练时,模型对 70 亿的 token 进行了 8 次遍历。然后在不到 2 亿 token 的数据上进行了微调。整个训练过程在 8 个 A100 上进行,为期 4 天。
结果表明,尽管在数据集和模型大小方面比竞品模型小几个数量级,phi-1 依然在 HumanEval 的 pass@1 上达到了 50.6% 的准确率,在 MBPP 上达到了 55.5%,这是仅使用一个 LLM 生成的最佳自我报告数字之一。
图片
论文作者之一 Sebastien Bubeck 表示,任何在 HumanEval 上达到 50% 以上准确率的模型都要比 phi-1 大得多,比如前段时间超越所有开源模型、击败 Claude 和 Bard、专门用于编程任务的大模型 WizardCoder 参数量达到了 phi-1 的 10 倍以上,而所用的数据集规模则高达百倍。
图片
此外,研究者还提出了一个更小的模型:参数量为 350M 的 phi-1-small。该模型用与 phi-1 相同的 pipeline 进行训练,在 HumanEval 上达到了 45% 的准确率。
从 phi-1 这项研究可以看到,高质量数据的引入改变了模型性能与规模之间的关系,突破了之前的 scaling laws。它表明,高质量数据可以提升大型语言模型(LLM)的 SOTA,同时大大降低数据集的规模和计算量,这对于当前算力紧张的局面来说是个好消息。
在论文第二部分,作者详述了他们的训练过程,并讨论了他们的数据选择过程对于取得这个结果的重要性。此外,尽管 phi-1 的训练 token 远少于现有模型,但它仍然显示出了涌现特性。在第三部分,作者讨论了这些涌现特性,通过比较 phi-1 和 phi-1-small 的输出,确认了参数数量在「涌现」方面起关键作用的假设。这一部分用到的方法与 Sparks of AGI 论文的精神相呼应,该论文主张摆脱静态基准,来测试 LLM 的性能。最后,在第四部分,作者讨论了评估模型的替代基准,而在第五部分,他们研究了他们的训练数据在 HumanEval 方面可能受到的「污染」。
这篇论文引起了不少研究者的关注,认为它代表了一种研究趋势。最近回归 OpenAI 的 Andrej Karpathy 展望说,「我们可能会看到更多创造性的『缩小规模』工作:将数据质量和多样性置于数量之上,更多的合成数据生成以及小型但功能强大的专家模型将会出现。
图片
爱丁堡大学博士生符尧也给予了该文高度评价,认为其通过将数据工程推向极限,充分利用了基础模型(不仅仅是 GPT-3.5)的潜力,同时指出该研究可能过于偏向于 HumanEval 风格的测试,因此未来的研究方向可能需要平衡模型的能力。
图片
他的详细评价如下:

1、Prompt engineering
这可能是最重要 / 棘手的部分,因为作者大量使用 promp 来引导 GPT-3.5 生成预训练的教科书和 SFT 代码练习。显然,大部分性能提升来自这个阶段。我进一步的假设是:
如果将这些数据用于继续训练 GPT-3.5 本身,即教师模型,它也会有进一步改进的性能,就像之前的 LMSI(Large Language Models Can Self-Improve)论文展示的一样,因此我倾向于将 Phi-1 论文视为推动 LMSI 方法的一大步。
将教师模型更改为在足够多代码上进行预训练的任何预训练模型,也可以获得类似质量的数据,当然,这需要一个良好的基础模型。
综合上述观点,基本上对于任何优秀的基础模型,都可以从基础模型中通过 prompt 合成教科书数据,然后使用模型生成的数据来改进自身,或者蒸馏为更小的专门化变体。
2、能力平衡
从论文的印象来看,我觉得预训练和 SFT 数据可能与 HumanEval 过于接近(并且作者证明没有污染)。基本上,作者构建了一个用于 Human Eval 的训练集。这有多重含义:

为感兴趣的测试问题构建训练集没有问题,我猜测大多数部署的模型都这样做。然而,它降低了在分布内泛化的挑战程度,尽管对于与推理相关的任务和小型模型来说,这仍然是个挑战。
然而,LLM 最重要的能力在于分布外泛化,因为更大的模型会泛化到远离其训练 / 微调分布的内容。Phi-1 在小模型的分布内泛化方面做得最好(可能是极限),但在 LLM 时代,我们对分布外、少样本泛化更感兴趣。

推动分布内泛化的极限,会以显著降低通用领域能力为代价,如作者所讨论的(也可以参见我们以前的工作:https://arxiv.org/abs/2301.12726)。因此,下一步工作可能落脚于如何进行好的数据混合,以保持编码性能的同时,也能提高通用能力。
总体而言,这是一项令人印象深刻的工作!我学到了很多!


以下是论文细节。
高质量数据来源及其重要性
phi-1 的训练依赖于三个主要的数据集:

  • 一个经过筛选的代码 - 语言数据集,它是 The Stack 和 StackOverflow 的一个子集,通过使用基于语言模型的分类器获得(包含约 6B token)。
  • 一个合成的教科书数据集,包含不到 1B 个 token 的 GPT-3.5 生成的 Python 教科书。 
  • 一个小型的合成练习数据集,包含大约 180M 个 token 的 Python 习题和答案。


以上数据组成了总 token 量不到 7B 的训练数据集。作者将经过筛选的代码 - 语言数据集和合成的教科书数据集的组合称为「CodeTextbook」,并在预训练阶段使用它来获得一个基础模型 phi-1-base—— 该模型已经在 HumanEval 上达到了 29% 的准确率。然后,他们使用 180M 个 token 的合成练习数据集,称为「CodeExercises」,对 phi-1-base 模型进行微调,以获得 phi-1 模型。尽管「CodeExercises」数据集规模较小,但通过这个数据集进行微调不仅在生成简单的 Python 函数方面带来了巨大的改进(如图 2.1 所示),而且更广泛地解锁了 phi-1 模型中许多有趣的新能力,这些能力在 phi-1-base 模型中没有观察到。
模型架构细节
该研究使用仅含****(decoder-only)的 transformer 模型 —— 使用多头注意力 (MHA) 的 FlashAttention 实现,并参考一些新模型,包括 CodeGen、PaLM 和 GPT-NeoX,在并行配置中使用 MHA 和 MLP 层。
具体来说,1.3B 参数的 phi-1 模型由 24 层组成,隐藏维度为 2048,MLP 内部维度为 8192,使用 32 个注意力头,每个注意力头维度为 64。350M 参数的 phi1-small 模型由 20 层组成,隐藏维度为 1024,MLP 内部维度为 4096,16 个注意力头,每个维度为 64。
值得注意的是,该研究没有使用 Fill-In-the-Middle (FIM)、 Multi-Query-Attention (MQA) 等可以进一步提高模型性能和效率的新方法。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客