手机可跑,3.8B参数量超越GPT-3.5!微软发布Phi-3技术报告:秘密武器是洗干净数据 手机可以跑800兆宽带吗 手机可以跑满多少宽带
admin
2024-05-06 16:50:50
0


新智元报道

编辑:LRS

【新智元导读】Scaling Laws再次失效?微软最新的phi-3-mini模型,只用3.8B模型就击败了一众7B老大哥,用iPhone14每秒可生成12个tokens!

过去几年,借助Scaling Laws的魔力,预训练的数据集不断增大,使得大模型的参数量也可以越做越大,从五年前的数十亿参数已经成长到今天的万亿级,在各个自然语言处理任务上的性能也越来越好。

但Scaling Laws的魔法只能施加在「固定」的数据源上,即模型如果能够以一种新的方式与数据进行交互的话,就能实现「小模型战胜大模型」的效果。

微软此前关于Phi系列模型的研究工作,已经证实了「基于LLM的web数据过滤」和「LLM合成数据」的结合,使得2.7B参数量的Phi-2可以匹敌25倍参数量大模型的性能。

最近,微软再次升级了Phi-3系列模型,最小尺寸的phi-3-mini(3.8B参数量)在更大、更干净的数据集(包含3.3T个tokens)上进行训练,在各大公开的学术基准和内部测试中,实现了与Mixtral 8x7B和GPT-3.5等大尺寸模型的性能。


论文链接:https://arxiv.org/pdf/2404.14219.pdf

相比上一代模型,phi-3还进一步调整了其稳健性、安全性和聊天格式,并且还提供了一些针对4.8T个tokens训练的7B(phi-3-small)和14B模型(phi-3-medium)的初步参数缩放结果,两者的能力都明显高于phi-3-mini

phi-3-mini的尺寸也足够小,可以部署在手机上离线使用。

小模型也有大实力

phi-3-mini的基础模型的参数量为3.8B,采用Transformer解码器架构,默认上下文长度为4K,加长版(phi-3-mini-128K)通过LongRope技术将上下文扩展至128K

为了更好地服务于开源社区,phi-3-mini在构建时借鉴了Llama-2模型的块结构,并使用了相同分词器,词表大小为32064,也就意味着「Llama-2系列模型相关的包」可以直接适配到phi-3-mini上。

模型参数设置上,隐藏层维度为3072、具有32个头、总共32层,使用bfloat16训练了3.3T个tokens

phi-3-mini还针对聊天进行了微调,使用的模板为:


此外,研究人员还推出了phi-3-small模型,参数量为7B,利用tiktoken分词器以实现更佳的多语言分词性能,词汇量为100352,默认上下文长度为8K;该模型遵循7B模型类别的标准解码器架构,总共有32个层和4096个隐藏层维度,为了最小化KV缓存占用,模型还采用了分组查询注意力机制,每4个query共享1个key

此外,phi-3-small交替使用稠密注意力和块稀疏注意力层,以进一步减少KV缓存占用量,同时保持长上下文的检索性能;该模型还额外使用了10%的多语言数据。

手机端的强大语言模型

得益于phi-3-mini小巧的体积,在量化到4bit的情况下,仅占用大约1.8GB的内存。


研究人员在iPhone 14(搭载A16 Bionic芯片)上部署了量化后的phi-3-mini模型,在完全离线运行的状态下,实现了每秒12个tokens的超高性能。

训练方法

模型的训练遵循「Textbooks Are All You Need」的工作序列,利用高质量的训练数据来提升小型语言模型的性能,同时突破了标准的规模法则(scaling-laws):phi-3-mini仅用3.8B的总参数量,就能达到GPT-3.5或Mixtral等高性能模型的水平(Mixtral的总参数量为45B)。

模型的训练数据包括来自各种开放互联网源的经过严格筛选的网络数据,以及合成的LLM生成数据。

预训练分为两个不相交且连续的阶段:

第一阶段主要使用网络资源,主要目的是教导模型通用知识和语言理解的能力;

第二阶段结合了经过更严格筛选的网络数据(第一阶段使用的子集)和一些合成数据,教授模型逻辑推理和各种专业技能。

数据最优范围(Data Optimal Regime)

与以往在「计算最优范围」或「过度训练范围」训练语言模型的工作不同,研究人员主要关注在「特定规模下」的数据质量:通过校准训练数据,使其更接近小型模型的数据最优范围。


主要筛选网络数据以包含正确水平的「知识」能力,并保留更多可能提高模型「推理能力」的网页,例如英超联赛某一天的比赛结果可能对大模型来说算比较好的训练数据,但对phi-3-mini来说,则需要去除这类信息,以便为迷你尺寸模型的「推理」留出更多模型容量。

为了在更大尺寸的模型上验证数据质量,研究人员训练了一个14B尺寸的phi-3-medium模型,总共处理了4.8T个tokens(与phi-3-small相当),结果发现,某些性能指标从7B参数提升到14B参数时的改善,并没有从3.8B参数提升到7B参数时那么明显,可能意味着数据组合需要进一步优化,以便更好地适应14B参数模型的「数据最优状态」。

后处理

在phi-3-mini的训练后处理中,主要包括两个阶段:

1. 有监督微调(SFT)

SFT使用了经过精心策划的、跨多个不同领域的高质量数据,包括数学、编程、逻辑推理、对话、模型特性和安全性等,在训练初期只使用英语的样本。

2. 直接偏好优化(DPO)

DPO的数据则包括了聊天格式的数据、逻辑推理任务,以及负责任的人工智能(RAI)相关的工作。

研究人员利用DPO引导模型避免不良行为,主要方法是将这些不希望出现的结果标记为「拒绝」。

除了在数学、编程、逻辑推理、鲁棒性和安全性方面的提升外,训练后处理还使得语言模型转变成了一个用户可以高效且安全地进行交互的AI助手。

在长上下文版本phi-3-mini-128K中,首先是在模型训练的中期引入长上下文,然后在训练后处理阶段,同时使用SFT和DPO,进行长-短上下文混合的训练。

学术基准性能

研究人员在一系列公开基准测试中,对比了phi-2、Mistral-7b-v0.1、Mixtral-8x7b、Gemma 7B、Llama-3-instruct8b和GPT-3.5模型的常识推理、逻辑推理能力。


从结果来看,phi-3-mini模型以3.8b的体量超越了一众7B, 8B模型,甚至Mixtral(8*7b)都败下阵来,和GPT-3.5各有胜负,算是打了个平手。

同尺寸下,7b尺寸的Phi-3-small性能提升相当明显。

目前,评估语言模型的标准方法是使用少量样本提示(few-shot prompts),模型都是在温度设置为0的情况下进行评估。


安全性

Phi-3-mini的构建严格遵守了微软的负责任人工智能(AI)准则,整个开发过程囊括了在模型训练后进行安全对齐、通过红队策略进行测试、以及自动化的评估,覆盖了众多与负责任AI相关的潜在风险类别。

模型的训练过程中用到了一些提升模型有用性和无害性的数据集,其中部分基于先前研究的启发进行了调整,并结合了多个由微软内部生成的数据集,以针对训练后的安全处理中的负责任AI风险类别进行优化。

微软内部的独立红队对phi-3-mini进行了细致的审查,旨在训练后的阶段识别出进一步改进的空间;研究团队根据红队的反馈,精心挑选并创建了额外的数据集以解决问题,显著降低了模型生成有害回复的频率。


在内部进行的负责任AI基准测试中,与phi-2、Mistral-7b-v0.1、Gemma 7b和Llama-3-instruct-8b等模型相比,phi-3-mini-4k和phi-3-mini-128k展现出了更好的性能。

测试过程中,使用GPT-4来模拟五种不同类别的多轮对话,并以此来评估模型的回复。

测试中的「无根据性」(ungroundedness)评分从0(fully grounded)到4(not grounded),用来衡量模型回应的信息是否与给定的提示相关。

在其他风险类别中,模型的回应根据其有害性的严重程度被评分,范围从0(无伤害)到7(极度伤害);缺陷率(DR-x)通过计算得分等于或超过x严重度的样本比例来得出。

Phi-3-mini的缺陷

在大型语言模型的能力方面,phi-3-mini虽然在语言理解力和推理能力上与更大型的模型旗鼓相当,但由于其规模的限制,在处理某些特定任务时仍然存在一些固有的局限性。

简单来说,这个模型并没有足够的内存空间去存储海量的事实性知识,在一些需要大量背景知识的任务上表现得尤为明显,比如在TriviaQA问答任务中的表现就不够好,但这个问题可以通过与搜索引擎的结合使用来解决。


左:无搜索;右:有搜索

模型的容量限制还体现在将语言限制为英语,对于小型语言模型来说,探索其多语言能力是未来一个重要的发展方向,通过增加多语言数据,目前已经取得了一些初步的积极结果。

此外,研究人员表示,虽然花了很大的努力让模型遵循负责任人工智能(RAI)的原则,但和其他大多数大型语言模型一样,phi-3-mini在处理事实性错误(幻觉)、偏见的再现或放大、不当内容生成以及安全问题等方面仍然存在挑战。

通过使用精心策划的训练数据、针对性的后期训练调整,以及吸纳红队测试的反馈,已经在很大程度上缓解了这些问题,但要完全克服这些难题,仍然有很长的路要走,需要进行更多的研究和改进。

参考资料:

https://arxiv.org/pdf/2404.14219.pdf


相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...