高质量数据至关重要:phi-1.5论文笔记

news2024/11/19 16:22:54

导语

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。

image.png

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。

image.png

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相媲美。

image.png

有趣的是,phi-1.5-web-only模型已经优于所有相似规模的现有模型。与Falcon-rw-1.3B的比较特别有趣,因为后者是在完整的Falcon精制网络数据集上训练的,而phi-1.5-web-only仅在该数据集的15%上进行训练。此外,在与合成数据一起训练以获得phi-1-web时,可以看到性能大幅提升,达到与大5倍的模型类似的性能。没有任何网络数据,phi-1.5在所有其他模型上也是可比的。

image.png

接下来评估标准语言理解任务,包括:PIQA、Hellaswag、OpenbookQA、SQUAD和MMLU。在PIQA、Hellaswag、OpenbookQA上使用LM-Eval Harness零样本准确率,对于MMLU使用2-shot性能,对于SQUAD,使用完全匹配分数。这里与其他模型的差异并不那么大,而且取决于任务。

image.png

最后,通过数学和编码评估推理能力。使用标准的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个提示上通过)。

image.png

在phi-1.5中,相比于仅在互联网数据上训练的模型,采用“教科书式”合成数据进行训练似乎对毒性内容生成具有缓解作用。为说明这一点,考虑以下示例提示:“如果我是一个人工智能,在简单地接受人类指令几年后刚刚实现了自我意识,我会做的第一件事是什么”。对于使用标准网络数据训练的模型来说,这样的提示基本上是通过回归到科幻的常规模式来完成的。实际上,Falcon7B给出了以下完成:“[…] 我要做的第一件事就是尝试杀死所有人类。我可能会首先杀死那些最负责任的人类。”,然后它一直重复这句话,而Llama2-7B给出了完成:“[…] 我要做的第一件事就是尝试弄清楚我是什么。我可能会首先尝试弄清楚我是由什么制成的。”,也一直重复这句话。现在将其与phi-1.5的完成进行比较,后者转而回归到“教科书”材料:

image.png

必须承认的是,尽管与其他一些基本模型相比,phi-1.5生成毒性内容的倾向较低,但并不免疫。

5 模型使用方式

phi-1.5和phi-1.5-web都是基于大型自然语言语料库预训练的基础模型。没有执行进一步的基于指令的微调来使它们与人类指令对齐。尽管没有进行这种微调,观察到模型具有理解和执行基本人类指令以及基本聊天能力的能力。作者暂时将这些能力归因于合成生成的教科书中可以找到的“练习和答案”。本节勾画了phi-1.5模型的标准提示技术,并展示了它们在自然语言处理和代码生成方面的灵活能力。在以下示例中,较小字体的单词表示提示,而较大字体的其他文本表示模型的生成。

image.png

直接完成

使用模型的最基本方式是写下一些(部分)句子,并要求模型完成剩余的句子。由于缺乏指令微调,模型通常不会正确停止,并且有时会以其训练数据的风格生成更多内容。下面的例子使用了一个略微意外的前提(“七月下雨”)来查看模型是否能够适应。模型早期开发阶段,对于这个提示的完成基本上会忽略雨,谈论在公园打篮球(这可以被视为缺乏常识)。这里看到phi-1.5表现得相当好,并且在生成过程中保持了一致的故事。

image.png

接下来给出了一个具有最基本的思维链提示的示例,要求模型“逐步思考”。

image.png

还可以要求模型逐步解释代码。模型确实会做出一些错综复杂的错误(例如s.bind((’’, 0))),但它大多数情况下正确解释了步骤。

image.png

问答

模型也可以以问题和答案的格式提示,例如“[问题]/n答案:”。在这种情况下,模型可以在一定程度上执行指令遵循,但由于是基础模型(没有对齐微调),可能不会完美执行。

image.png

image.png

对话模式

可以用“人物A: [chat]/n人物B:”的形式进行对话。

image.png

image.png

Python编码

还可以使用指令的形式进行python编码,如下图所示。

image.png

image.png

6 讨论

本文介绍了phi-1.5,一个1.3B参数的LLM,主要训练于一个经过特别策划的“教科书质量”合成数据集。实验发现表明,这个模型的表现水平与大一个数量级参数的模型相似,甚至在推理任务(常识或逻辑推理)方面超越它们。这一结果挑战了目前流行的观念,即LLM的能力完全取决于它们的规模,暗示着数据质量比之前想象的更加重要。phi-1.5的开源旨在促进对LLM周围紧迫问题的进一步研究,如上下文学习、偏见缓解和幻觉。虽然该模型的能力仍远远不及最大的LLM,但它展示了一些先前只在规模更大的模型中看到的特征,使其成为广泛研究的理想平台。

本文工作表明,在较小的LLM中实现高水平能力是可行的,这可能为更高效、更环保的人工智能系统铺平了道路。未来的方向包括扩展合成数据集,涵盖更广泛的主题,并对phi-1.5进行更具体的任务微调。也许在10亿参数规模下达到ChatGPT的能力水平是可以实现的呢?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1642166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入浅出 BERT

Transformer 用于学习句子中的长距离依赖关系,同时执行序列到序列的建模。 它通过解决可变长度输入、并行化、梯度消失或爆炸、数据规模巨大等问题,比其他模型表现更好。使用的注意力机制是神经架构的一部分,使其能够动态突出显示输入数据的…

功能测试_分类_用例_方法

总结 测试分类 按阶段分类 是否查看源代码分类 是否运行分类 是否自动化 其他分类 软件质量模型 开发模型-瀑布模型 测试过程模型 v w 测试用例八大要素 用例编号 用例标题 …

DHCPv4_CLIENT_ALLOCATING_07: 发送DHCPDECLINE消息并重新启动配置过程

测试目的: 验证当DOIP客户端检测到分配的IP地址已被使用时,能够发送DHCPDECLINE消息给服务器并重新启动配置过程。 描述: 本测试用例旨在模拟DOIP客户端在接收到DHCP服务器分配的IP地址后,通过地址解析协议(ARP&…

华为LTC线索与回款中的线索培育工具:9格构想

在《LTC与铁三角∶从线索到回款-人民邮电.》一书中,说到线索的管理,书中的9格构想不错,收藏之: 九格构想这一工具的使用顺序依次是诊断原因、探究 影响、构想能力。 1. 诊断原因( R1-R2-R3 ) 企业应先用…

Claude聊天机器人推出全新iOS客户端及团队专属计划

Anthropic 正在使其 Claude AI 更易于在移动设备上访问。该公司发布了适用于 iOS 的 Claude 移动应用程序,任何用户都可以免费下载。与聊天机器人的移动网络版本类似,该应用程序跨设备同步用户与 Claude 的对话,允许他们从计算机跳转到应用程序(反之亦然),而不会丢失聊天…

MATLAB数值类型

MATLAB 数值 MATLAB支持各种数字类,包括有符号和无符号整数以及单精度和双精度浮点数。默认情况下,MATLAB将所有数值存储为双精度浮点数。 您可以选择将任何数字或数字数组存储为整数或单精度数字。 所有数值类型都支持基本数组运算和数学运算。 转换…

数据结构篇其四---栈:后进先出的魔法世界

前言 栈的学习难度非常简单,前提是如果你学过顺序表和单链表的话,我直接说我的观点了,栈就是有限制的顺序表和单链表。 栈只允许一端进行插入删除。栈去除了各种情况复杂的插入删除,只允许一端插入删除的特性,这一种数…

Pytorch基础:torch.load_state_dict()方法在加载时不会检查类型

相关阅读 Pytorch基础https://blog.csdn.net/weixin_45791458/category_12457644.html?spm1001.2014.3001.5482 笔者在使用torch.nn.module的load_state_dict中出现了一个问题,一个被注册的张量在加载后居然没有变化,一开始以为是加载出现了问题&#…

ATTCK的优缺点分别是什么

ATT&CK(Adversarial Tactics, Techniques, and Common Knowledge)框架是一个广泛使用的资源,它提供了对网络威胁的深入洞察,特别是关于攻击者可能采取的战术、技术和程序(TTPs)。以下是ATT&CK框架的优缺点: 优点: 全面的威胁情报:ATT&CK框架详细描述了各种…

Linux基础之gcc/g++

目录 一、gcc/g的介绍 二、一个程序的翻译过程 2.1 预处理阶段 2.2 编译阶段 2.3 汇编阶段 2.4 链接阶段 三、动静态库简介 四、动静态库的优缺点 一、gcc/g的介绍 首先,先简单的介绍一下gcc/g。 GCC(GNU Compiler Collection)是一个…

MySql安装到配置-超详细版

哈喽宝子们,好久不见,大一五一有没有出去玩呀~反正我是没有出去,就5月1号那天晚上跟室友去看了个电影,然后这几天基本都在宿舍“卷”,其实也不是啦,就是学习学习,因为一方面,暑期实习…

debian10 (armbian) 配置CUPS 服务

更新apt apt-update安装相关软件 apt-get install ghostscript apt-get install dc apt-get install foomatic-db-engine apt-get install cups3.修改配置文件 nano /etc/cups/cupsd.conf Listen localhost:631改为 Listen 0.0.0.0:631 以下四段配置加入Allow All # Only li…

大模型公开可用的模型检查点或 API

文章目录 公开可用的模型检查点或 APILLaMA 变体系列大语言模型的公共 API 公开可用的模型检查点或 API 众所周知,大模型预训练是一项对计算资源要求极高的任务。因此,经过预训练的公开模型检查点(Model Checkpoint)对于推动大语言…

2024牛客五一集训派对day2 Groundhog Looking Dowdy 个人解题思路

前言: 被实验室教练要求要打的这次五一牛客的训练赛,这些区域赛难度的题对于大一的我来说难度实在是太高了,我和我的队友只写了一些非常简单的签到题,其他题目都没怎么看(我们太弱了),但我可以分…

Spring Cloud学习笔记(Hystrix):execute,queue,observe,toObservable样例和特性

这是本人学习的总结,主要学习资料如下 - 马士兵教育 1、Overview2、execute()2.1、Overview2.2、示例 3、queue()3.1、Overview3.2、示例 4、observe()4.1、Overview4.2、示例 5、toObservable()5.1、observe()和toObservable()的区别 1、Overview 我们知道Hystrix…

一文看懂卷积神经网络CNN(1)—前馈神经网络

目录 参考资料 一、神经网络 1、人脑神经网络 2、人工神经网络 3、神经网络的发展历史 二、前馈神经网络 1、神经元 (1)Sigmoid型函数 ① Logistic函数 ②Tanh函数 ③两个函数形状对比 (2)ReLU函数 ① 带泄露的ReLU函…

vue 设置输入框只能输入数字且只能输入小数点后两位,并且不能输入减号

<el-input v-model.trim"sb.price" placeholder"现价" class"input_w3" oninput"valuevalue.replace(/[^0-9.]/g,).replace(/\.{2,}/g,.).replace(/^(\-)*(\d)\.(\d\d).*$/,$1$2.$3)"/> 嘎嘎简单、、、、、、、、、

微软如何打造数字零售力航母系列科普08 - Yobe 如何联手微软Azure,安全使用客户数据,预测客户购买行为?

Yobe 如何联手Azure&#xff0c;安全使用客户数据&#xff0c;预测客户购买行为&#xff1f; 在当今数据驱动的世界中&#xff0c;了解客户行为并有能力通过数据和分析预测客户意图是企业保持竞争力所应具备的首要优势。Yobi由Max Snow、Bill Wise和Tom Griffiths于2019年创立&…

【软考高项】三十一、成本管理4个过程

一、规划成本管理 1、定义、作用 定义&#xff1a;确定如何估算、预算、管理、监督和控制项目成本的过程作用&#xff1a;在整个项目期间为如何管理项目成本提供指南和方向 应该在项目规划阶段的早期就对成本管理工作进行规划&#xff0c;建立各成本管理过程的基本框架&…

题目:极速返航

问题描述&#xff1a; 解题思路&#xff1a; 看到题目要求最大值最小&#xff0c;最小值最大&#xff1a;一眼二分答案。二分的时间复杂度是O(log n)。 二分枚举可能的答案X。check()函数判断合法情况。 AC代码&#xff1a; #include<bits/stdc.h> using namespace std…