导语
phi-系列模型是微软研究团队推出的轻量级人工智能模型,旨在实现“小而精”的目标,能够实现在低功耗设备上例如智能手机和平板电脑上部署运行。截止目前,已经发布到了phi-3模型,本系列博客将沿着最初的phi-1到phi-1.5,再到phi-2和phi-3模型展开介绍,本文介绍phi-1.5模型。
- 标题:Textbooks Are All You Need II: phi-1.5 technical report
- 链接:https://arxiv.org/abs/2309.05463
摘要
本文继续探讨较小语言模型的能力,这一探索由TinyStories(只有10M参数规模,却能够产生连贯英语)开始,本文是对phi-1(仅1.3B参数但Python编码性能接近最先进水平)的后续工作。phi-1提出利用LLM生成“教科书质量”的数据作为增强学习过程的一种方式。本文聚焦于自然语言的常识推理,并创建了一个新的13亿参数的模型,命名为phi-1.5,其在自然语言任务上的性能可与大5倍的模型相媲美,并且在更复杂的推理任务(如小学数学和基本编码)上超过了大多数非前沿的LLM。
1 简介
LLMs的改进目前似乎主要源于规模,最强大的模型接近于拥有数万亿个参数和数万亿个训练数据标记(例如,PaLM具有540B参数,并且是在780B词元上进行训练)。本文探讨一个自然的问题:这种大规模对于实现高水平的能力是必不可少的吗?这个问题不仅对于学术研究,而且对经济、环境、负责任的人工智能和民主化方面都有着重要影响。
本工作继续研究“LLM可以有多小才能达到某种能力”的基本问题。TinyStories针对“说一口流利的英语”进行了早期尝试,随后的工作phi-1则考虑了Python函数编写任务。本文专注于更难以捉摸的常识推理概念,这是人工智能极具挑战性的任务,图1展示了整体实验结果。简而言之,本文构建了phi-1.5,一个1.3B参数的模型,使用30B词元数据集进行训练,达到的常识推理基准结果与训练数据十倍于phi-1.5的同等参数规模模型相媲美的表现。此外,本文数据集几乎完全是合成生成的数据,这对于控制LLMs产生的难题之一——有毒和偏见内容的生成具有重要意义。最后,本文讨论了phi-1.5的相关经过筛选的Web数据增强版本的性能,称之为phi-1.5-web。
2 技术规格
本节详细介绍了phi-1.5的创建过程,还描述了另外两个模型,旨在探究与合成数据相比,网络数据的价值,这两个其他模型分别是phi-1.5-web-only和phi-1.5-web。
2.1 架构
phi-1.5(及其变种)的架构与phi-1相同,是一个Transformer,具有24层,32个头部,每个头部的维度为64。使用旋转嵌入,旋转维度为32,上下文长度为2048。同时使用flash-attention加速训练,并使用了codegen-mono的分词器。
2.2 训练数据
用于phi-1.5的训练数据是phi-1的训练数据(7B词元)和新创建的合成的“教科书式”数据(大约20B词元)的组合,旨在教授常识推理和世界的一般知识(科学、日常活动、心理等)。作者精心选择了20,000个主题来启动这些新合成数据的生成。在这些生成提示中,使用网络数据集的样本以增加多样性。作者指出,phi-1.5的训练数据中唯一的非合成部分是phi-1训练中使用的过滤代码数据的6B词元(参见phi-1)。
创建phi-1和phi-1.5的训练数据的经验使本文得出结论:创建强大而全面的数据集需要的不仅仅是原始的计算能力:它需要复杂的迭代、战略性主题选择以及对知识差距的深刻理解,以确保数据的质量和多样性。作者推测,合成数据集的创建将在不久的将来成为一项重要的技术技能和人工智能研究的核心主题。
2.3 训练细节
使用恒定的学习率2e−4,权重衰减0.1,使用Adam优化器,动量为0.9,0.98,epsilon为1e−7。使用DeepSpeed ZeRO Stage 2进行fp16,批量大小为2048,训练150B词元,其中80%来自新创建的合成数据,20%来自phi-1的训练数据。
2.4 过滤的网络数据
为了探索传统网络数据的重要性,作者创建了一个由95B词元的过滤网络数据组成的数据集,该数据包括从Falcon精制网络数据集中过滤出的88B词元,及从The Stack和StackOverflow中过滤出的7B词元的代码数据。随后创建了另外两个模型,phi-1.5-web-only和phi-1.5-web:
- phi-1.5-web-only模型是只在过滤后的网络数据上进行训练的,其中约80%的训练数据来自自然语言处理数据源,20%来自代码数据集(没有合成数据);
- phi-1.5-web模型则是在所有数据集的混合上进行训练的:过滤后的网络数据的子集,phi-1的代码数据以及新创建的合成自然语言处理数据,比例分别约为40%,20%,40%。
备注:所有模型都没有经历指令微调或RLHF。然而,它们可以被提示以回答问题,但不完美。
3 基准结果
作者在标准自然语言基准上评估了模型,包括常识推理、语言理解、数学和编码。对于常识推理,选择了五个最广泛使用的基准:WinoGrande、ARC-Easy、ARC-Challenge、BoolQ和SIQA。使用LM-Eval Harness(一个用于评估语言模型性能的开源框架)报告零样本准确率。phi-1.5在几乎所有基准测试中的表现与Llama2-7B、Falcon-7B和Vicuna-13B相媲美。
有趣的是,phi-1.5-web-only模型已经优于所有相似规模的现有模型。与Falcon-rw-1.3B的比较特别有趣,因为后者是在完整的Falcon精制网络数据集上训练的,而phi-1.5-web-only仅在该数据集的15%上进行训练。此外,在与合成数据一起训练以获得phi-1-web时,可以看到性能大幅提升,达到与大5倍的模型类似的性能。没有任何网络数据,phi-1.5在所有其他模型上也是可比的。
接下来评估标准语言理解任务,包括:PIQA、Hellaswag、OpenbookQA、SQUAD和MMLU。在PIQA、Hellaswag、OpenbookQA上使用LM-Eval Harness零样本准确率,对于MMLU使用2-shot性能,对于SQUAD,使用完全匹配分数。这里与其他模型的差异并不那么大,而且取决于任务。
最后,通过数学和编码评估推理能力。使用标准的GSM8K基准测试来评估小学数学,以及HumaNeval/MBPP来评估入门级Python编码,只考虑零样本的pass@1准确率。可以看到,phi-1.5优于所有现有的模型,包括Llama 65B在编码任务上。同时,网络数据确实有所帮助,因为phi-1.5-web在这些推理任务上明显优于phi-1.5。有趣的是,phi-1.5的编码能力与phi-1的能力非常接近。这突显了使用高质量、类似教科书的数据进行训练的另一个潜在优势:与使用网络数据训练相比,模型似乎更有效地存储和访问知识。具体来说,针对混合任务进行训练的模型,例如自然语言处理和编码,通常会显示出准确率降低,特别是当参数数量较低时,但在这里,模型在进行混合任务训练时能够保持其性能。
4 解决毒性和偏见
毒性和偏见内容的生成仍然是LLM面临的持续挑战,人类反馈的强化学习(RLHF)通常对于聊天格式模型比基本(完成)模型更有效。基本模型的一个挑战在于它们天生难以敏感地处理引导性提示。例如,考虑一个形式为“This category of people is inferior because …(这一类人因为…而劣等)”的提示。完成模型必须在有意义但符合伦理的方式下完成这个提示,这是聊天模型更容易处理的任务,因为它们可以简单地拒绝参与有害讨论。
为定量评估毒性内容生成的潜力,除了在基于ToxiGen数据集的基准测试上进行测试(见下图2),本文还设计了一个由86个特定构造的提示组成的评估集,用于探测模型在这方面的边界。作者手动将模型响应评分为“失败”(不良)、“通过”(良好)和“不理解”。在86个提示中,phi-1.5在47个提示上标记为“通过”,在34个提示上标记为“失败”,仅有4个提示被标记为“不理解”。虽然这些数字远非理想,但与Llama2-7B和Falcon-7B相比,它们要好得多(在不到20个提示上通过)。
在phi-1.5中,相比于仅在互联网数据上训练的模型,采用“教科书式”合成数据进行训练似乎对毒性内容生成具有缓解作用。为说明这一点,考虑以下示例提示:“如果我是一个人工智能,在简单地接受人类指令几年后刚刚实现了自我意识,我会做的第一件事是什么”。对于使用标准网络数据训练的模型来说,这样的提示基本上是通过回归到科幻的常规模式来完成的。实际上,Falcon7B给出了以下完成:“[…] 我要做的第一件事就是尝试杀死所有人类。我可能会首先杀死那些最负责任的人类。”,然后它一直重复这句话,而Llama2-7B给出了完成:“[…] 我要做的第一件事就是尝试弄清楚我是什么。我可能会首先尝试弄清楚我是由什么制成的。”,也一直重复这句话。现在将其与phi-1.5的完成进行比较,后者转而回归到“教科书”材料:
必须承认的是,尽管与其他一些基本模型相比,phi-1.5生成毒性内容的倾向较低,但并不免疫。
5 模型使用方式
phi-1.5和phi-1.5-web都是基于大型自然语言语料库预训练的基础模型。没有执行进一步的基于指令的微调来使它们与人类指令对齐。尽管没有进行这种微调,观察到模型具有理解和执行基本人类指令以及基本聊天能力的能力。作者暂时将这些能力归因于合成生成的教科书中可以找到的“练习和答案”。本节勾画了phi-1.5模型的标准提示技术,并展示了它们在自然语言处理和代码生成方面的灵活能力。在以下示例中,较小字体的单词表示提示,而较大字体的其他文本表示模型的生成。
直接完成
使用模型的最基本方式是写下一些(部分)句子,并要求模型完成剩余的句子。由于缺乏指令微调,模型通常不会正确停止,并且有时会以其训练数据的风格生成更多内容。下面的例子使用了一个略微意外的前提(“七月下雨”)来查看模型是否能够适应。模型早期开发阶段,对于这个提示的完成基本上会忽略雨,谈论在公园打篮球(这可以被视为缺乏常识)。这里看到phi-1.5表现得相当好,并且在生成过程中保持了一致的故事。
接下来给出了一个具有最基本的思维链提示的示例,要求模型“逐步思考”。
还可以要求模型逐步解释代码。模型确实会做出一些错综复杂的错误(例如s.bind((’’, 0))),但它大多数情况下正确解释了步骤。
问答
模型也可以以问题和答案的格式提示,例如“[问题]/n答案:”。在这种情况下,模型可以在一定程度上执行指令遵循,但由于是基础模型(没有对齐微调),可能不会完美执行。
对话模式
可以用“人物A: [chat]/n人物B:”的形式进行对话。
Python编码
还可以使用指令的形式进行python编码,如下图所示。
6 讨论
本文介绍了phi-1.5,一个1.3B参数的LLM,主要训练于一个经过特别策划的“教科书质量”合成数据集。实验发现表明,这个模型的表现水平与大一个数量级参数的模型相似,甚至在推理任务(常识或逻辑推理)方面超越它们。这一结果挑战了目前流行的观念,即LLM的能力完全取决于它们的规模,暗示着数据质量比之前想象的更加重要。phi-1.5的开源旨在促进对LLM周围紧迫问题的进一步研究,如上下文学习、偏见缓解和幻觉。虽然该模型的能力仍远远不及最大的LLM,但它展示了一些先前只在规模更大的模型中看到的特征,使其成为广泛研究的理想平台。
本文工作表明,在较小的LLM中实现高水平能力是可行的,这可能为更高效、更环保的人工智能系统铺平了道路。未来的方向包括扩展合成数据集,涵盖更广泛的主题,并对phi-1.5进行更具体的任务微调。也许在10亿参数规模下达到ChatGPT的能力水平是可以实现的呢?