Textbooks Are All You Need

本文是LLM系列文章,针对《Textbooks Are All You Need》的翻译。

摘要

我们介绍了phi-1,这是一种新的大型代码语言模型,其大小明显小于竞争模型:phi-1是一种基于Transformer的模型,具有1.3B参数,在8个A100上训练了4天,使用了来自网络的“教科书质量”数据(6Btoken)和GPT-3.5(1Btoken)的综合生成教科书和练习。尽管规模很小,但phi-1pass@1HumanEval和MBPP的准确率分别为50.6%和55.5%。与phi-1-base(我们在编码练习数据集上微调阶段之前的模型)和phi-1-small(一个较小的模型,使用与phi-1相同的管道训练350M个参数,在HumanEval上仍达到45%)相比,它还显示出令人惊讶的涌现特性。

1 引言

2 训练细节和高质量数据的重要性

3 对CodeExercise进行微调后的模型能力峰值

4 LLM评分对非常规问题的评价

5 数据修剪用于公正的性能评估

6 结论

正如一本全面、精心制作的教科书可以为学生提供掌握新学科所需的知识一样,我们的工作证明了高质量数据在磨练语言模型在代码生成任务中的熟练程度方面的显著影响。通过制作“教科书质量”的数据,我们能够训练出一个模型,该模型在HumanEval和MBPP等编码基准上几乎超过所有开源模型,尽管模型大小小了10倍,数据集大小小了100倍。我们假设,这种高质量的数据极大地提高了代码语言模型的学习效率,因为它们提供了清晰、独立、有指导性和平衡的编码概念和技能示例。
与较大的代码模型相比,我们的模型仍然存在许多局限性。首先,phi-1专门从事Python编码,与多语言模型相比,这限制了它的通用性。其次,phi-1缺乏大型模型的特定领域知识,例如使用特定API编程或使用不太常见的包。最后,由于数据集的结构化性质以及语言和风格缺乏多样性,phi-1对提示中的风格变化或错误的鲁棒性较差(例如,当提示中出现语法错误时,其性能会显著下降)。我们对这些限制进行了扩展,并在附录B中给出了phi-1失效模式的示例。
这些限制似乎都不是根本性的,随着更多的工作,我们的方法可以用来解决每一个限制,尽管尚不清楚克服这些限制可能需要什么样的缩放(无论是模型大小还是数据集大小)。我们还认为,使用GPT-4而不是GPT-3.5生成合成数据可以获得显著的收益,因为我们注意到GPT-3.5数据的错误率很高。有趣的是,尽管存在这些错误,phi-1仍然能够实现如此高的编码熟练度(在[AZL23]中观察到类似的现象,其中语言模型可以在100%错误率的数据上进行训练,并且在测试时仍然生成正确的答案)。
更普遍地说,我们的工作提供了证据,证明开发创建高质量数据集的良好方法是推进自然语言处理和相关领域研究的中心方向(另见[JWJ+23]以获取更多证据)。然而,创建高质量的数据集并不是一项微不足道的任务,它带来了一些需要解决的挑战。一个挑战是确保数据集涵盖了希望模型学习的所有相关内容和概念,并以平衡和有代表性的方式做到这一点。另一个挑战是确保数据集真正多样化且不重复,这样模型就不会简单地过度拟合数据或记住特定的模式或解决方案。这需要找到在数据生成过程中注入随机性和创造性的方法,同时保持示例的质量和连贯性。此外,即使在创建了这样的数据集之后,我们也缺乏一种良好的方法来衡量和评估数据中的多样性和冗余性。例如,如果我们有一个包含编码练习的数据集,那么很难确定每个练习有多少不同的变体,以及它们如何在数据集中分布。最后,由于语言模型本身将被用于为未来的语言模型策划数据,这进一步增加了训练此类模型的道德和社会影响的紧迫性,例如数据和参与这一过程的模型的问责制、透明度和偏见。

猜你喜欢

转载自blog.csdn.net/c_cpp_csharp/article/details/132847430