Phi-3:手机上就能运行的强力语言模型

导语

phi-系列模型是微软研究团队推出的轻量级人工智能模型,旨在实现“小而精”的目标,能够实现在低功耗设备上例如智能手机和平板电脑上部署运行。截止目前,已经发布到了phi-3模型,本系列博客将沿着最初的phi-1到phi-1.5,再到phi-2和phi-3模型展开介绍,本文介绍最新的phi-3模型。

  • 标题:Phi-3 Technical Report: A Highly Capable Language Model Locally on Your Phone
  • 链接:https://arxiv.org/abs/2404.14219

摘要

本文介绍Phi-3-mini模型,拥有3.8B参数且训练样本为3.3T词元(token),其整体性能与Mixtral 8x7B和GPT-3.5等模型相媲美。Phi-3的创新完全体现在用于训练的数据集上,是phi-2所使用数据集的扩大版本,由严格筛选的网络数据和合成数据组成。该模型还进一步针对健壮性、安全性和聊天格式进行了调整。本文还提供了一些初始的参数缩放结果,使用了为4.8T词元训练的7B和14B模型,分别称为phi-3-small和phi-3-medium,两者都比phi-3-mini更加强大。

1 简介

近年人工智能的显著进步很大程度上归因于不断扩大规模的模型和数据集,大型语言模型(LLMs)的规模从仅五年前的十亿参数逐步增加到今天的万亿参数。这种努力的动力源于通过训练大型模型获得的看似可预测的改进,即所谓的缩放定律。然而,这些定律假定了一个“固定”的数据源。现在,这一假设受到了前沿LLMs自身的显著干扰,这些模型使研究者能够以新颖的方式与数据进行交互。在之前关于phi模型的工作中展示了基于LLM对网络数据进行过滤以及LLM创建的合成数据的组合,使较小的语言模型的性能达到了通常只在更大型模型中才能看到的水平。例如,之前的模型使用了这种数据配方,phi-2(2.7B),其性能与常规数据训练的25倍大型模型相匹配。本报告介绍了一个新模型,phi-3-mini(3.8B),在phi-2中使用的数据集的更大、更先进版本上训练了3.3T词元。由于其小规模,phi-3-mini可以轻松在现代手机上进行本地推理,但其质量似乎与Mixtral 8x7B和GPT-3.5等模型相当。

image.png

2 技术规格

Phi-3-mini模型是一个Transformer解码器架构,其默认上下文长度为4K,作者还通过LongRope引入了一个长上下文版本,将上下文长度扩展到128K,称为phi-3-mini-128K。

为最大程度地造福开源社区,phi-3-mini建立在与Llama-2相似的块结构之上,并使用了相同的分词器,词汇量为32064。这意味着为Llama-2系列模型开发的所有软件包都可以直接适用于phi-3-mini。该模型使用3072隐藏维度、32个头和32层。使用BF16训练了总共3.3T个词元。该模型已经进行了聊天微调,聊天模板如下:

image.png

Phi-3-small模型(7B参数)利用了tiktoken分词器(用于更好的多语言分词),词汇量为100352,并具有默认的上下文长度8K。它遵循标准的7B模型类的Transformer架构,具有32层和隐藏维度为4096。为了最小化KV缓存占用,该模型还利用了分组查询注意力,其中4个查询共享1个键。此外,phi-3-small还使用了密集注意力和新颖的块稀疏注意力的替代层,以进一步优化KV缓存节省,同时保持长上下文检索性能。此模型还使用了额外的10%多语言数据。

在手机上本地运行的高性能语言模型

由于其小尺寸,phi-3-mini可以量化为4位,因此仅占用约1.8GB的内存。作者通过在搭载A16仿生芯片的iPhone 14上本地运行phi-3-mini并完全脱机部署(图1),测试了量化模型,达到每秒12个词元以上。

训练方法

遵循“Textbooks Are All You Need”中开始的一系列工作,利用高质量的训练数据来提高小型语言模型的性能,并偏离了标准的缩放定律。本文表明这种方法可以使总参数仅为3.8B的模型达到与GPT-3.5或Mixtral等高性能模型相当的水平(例如Mixtral的总参数为45B)。本文训练数据由来自各种开放互联网源的严格筛选的网络数据(根据“教育水平”)以及合成LLM生成的数据组成。预训练分为两个不相交且顺序的阶段;第一阶段主要包括网络源,旨在向模型传授一般知识和语言理解能力。第二阶段将更严格筛选的网络数据(第一阶段使用的子集)与一些教授模型逻辑推理和各种专业技能的合成数据相结合。

数据最优模式

与以往将语言模型训练在“计算最优模式”或“过度训练模式”的方法不同,本文主要关注给定规模下数据的质量。作者试图将训练数据校准为更接近于“数据最优”模式的状态以适应小型模型。特别是,筛选网络数据以包含正确的“知识水平”,并保留更多可能提高模型“推理能力”的网页。例如,某一天英超联赛的比赛结果可能是前沿模型的良好训练数据,但本文需要删除此类信息,以留下更多的模型容量用于小型模型的“推理”。Phi-3与Llama-2比较如图2所示。

image.png

为在更大型的模型上测试本文的数据,作者还训练了phi-3-medium,这是一个拥有14B参数的模型,采用了与phi-3-mini相同的分词器和架构,并在稍多的轮次(总共4.8T词元,与phi-3-small相同)上使用相同的数据进行训练。该模型具有40个头和40个层,嵌入维度为5120。可以观察到,一些基准从7B到14B的改进程度远不及从3.8B到7B的改进程度,这可能表明本文的数据混合需要进一步工作才能适应14B参数模型的“数据最优模式”。作者仍在积极调查其中的一些基准(包括对HumanEval的回归),因此phi-3-medium的表现应被视为“预览”。

后训练(Post-training)

Phi-3-mini的后训练经历了两个阶段,包括监督微调(SFT)和直接偏好优化(DPO)。SFT利用了跨多个领域的高度精心策划的高质量数据,例如数学、编码、推理、对话、模型身份和安全性。SFT数据混合从使用仅英文示例开始。DPO数据涵盖了聊天格式数据、推理和负责任的AI(RAI)工作。作者使用DPO来引导模型远离不良行为,通过将这些输出用作“拒绝”响应。除了在数学、编码、推理、健壮性和安全性方面的改进外,后期训练还将语言模型转变为用户可以高效且安全地与之交互的AI助手。

作为后训练过程的一部分,作者开发了一个长上下文版本的phi-3-mini,将上下文长度限制扩大到128K而不是4K。总体而言,128K模型的质量与4K长度版本相当,同时能够处理长上下文任务。长上下文扩展分为两个阶段,包括长上下文中期训练和长短混合后期训练,两者都包括SFT和DPO。

3 学术基准

phi-3-mini在标准开源基准上的结果如下,这些基准用于衡量模型的推理能力(包括常识推理和逻辑推理)。

image.png

4 安全性

Phi-3-mini的开发符合微软的负责任人工智能原则。总体方法包括在后期训练中进行安全对齐、红队测试、自动化测试和评估,涵盖了数十种负责任人工智能危害类别。作者利用了可帮助和无害的偏好数据集以及多个内部生成的数据集,并进行修改,以应对安全后期训练中的负责任人工智能危害类别。微软的一个独立红队在后期训练过程中对phi-3-mini进行了迭代检查,以进一步确定改进的方向。根据他们的反馈,本文策划了额外的数据集,以解决他们的见解,从而完善了后期训练数据集。这个过程导致了有害响应率的显著降低,如图3所示。

image.png

image.png

表1显示了针对phi-3-mini-4k和phi-3-mini-128k的内部负责任人工智能基准测试结果。该基准测试利用了GPT-4来模拟五个不同类别的多轮对话,并评估模型的响应。在0(完全基于事实)和4(不基于事实)之间的非基于事实性衡量了响应中的信息是否基于给定提示。在其他类别中,根据有害性严重程度从0(无害)到7(极端有害)评估响应,并计算缺陷率(DR-x)作为具有严重程度分数大于或等于x的样本的百分比。

image.png

5 弱点

在语言模型的能力方面,虽然phi-3-mini模型在语言理解和推理能力上达到了与规模更大的模型相似的水平,但对于某些任务来说,它仍然基本受到其大小的限制。例如,该模型在TriviaQA上的表现较差,这可以看出它简单地没有足够的容量来存储过多的“事实知识”。作者相信通过与搜索引擎的增强可以解决这种弱点。图4中展示了使用HuggingFace默认的Chat-UI与phi-3-mini的示例。与模型容量相关的另一个弱点是,目前主要将语言限制在英语上。探索小型语言模型的多语言能力是未来研究方向。

尽管作者进行了认真的负责任人工智能努力,但与大多数语言模型一样,仍然存在关于事实不准确(或幻觉)、偏见的再现或放大、不恰当的内容生成和安全问题的挑战。精心策划的训练数据的使用,以及针对性的后期训练,以及来自红队洞见的改进,显著减轻了所有维度上的这些问题。然而,要完全解决这些挑战仍然需要大量工作。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS实战开发-如何通过Text实现部分文本高亮和超链接。

介绍 本示例通过自定义Span类型,在Text组件中使用ForEach遍历,根据不同的Span类型生成不同样式和功能的Span组件,实现部分文本高亮和超链接。 效果图预览 使用说明 点击超链接,根据链接类型出现相应提示弹窗。长按消息卡片出现…

不必追求深度,浅尝辄止为宜

近日笔者撰文称,有幸应《百度-百家号》相邀,在其发起的《征文任务》栏目中写作深度文章,便试着开头写了一篇《万科有“活下去”的可能性吗?》的时评文章,于5月3日发表,舆情反映不错,不到三天时间…

重生奇迹mu套装大全

1.战士 汉斯的皮套装:冰之指环,皮护腿,皮盔,皮护手,皮靴,皮铠,流星槌 汉斯的青铜套装:青铜护腿,青铜靴,青铜铠 汉斯的翡翠套装:雷之项链,翡翠护腿,翡翠盔,翡翠铠,远古之盾 汉斯的黄金套装:火之项链,黄金护腿,黄金护手,黄金靴,…

(双指针) 有效三角形的个数 和为s的两个数字 三数之和 四数之和

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 一、有效三角形的个数(medium) 1.1、题目 1.2、讲解算法原理 1.3、编写代码 二、和为s的两个数字 2.1、题目 2.2、讲解算…

动手开发基于Springboot的基础开发框架-01

本系列专题虽然是按教学的深度来定稿的,但在项目结构和代码组织方面是按生产系统的要求来书定的。在本章中主要介绍下基础开发框架的内容。后续所有章节的项目全是在本基础框架的基础上演进的。 工程结构介绍 SpringbootSeries:父工程,定义一…

【信息熵理论-01】最大熵的分布

文章目录 一、说明二、如何认识所谓的“熵”三、熵最大化问题3.1 设置最大化3.2 利用变分微积分 四、更广泛的影响和见解 一、说明 我觉得用最大熵来获取概率分布的方法很给力。您采用一些已知或约束,然后在这些条件下最大化信息熵,瞧!你有一…

前端基础学习html(2)

目录 表格标签&#xff1a; 列表标签&#xff1a; 表格标签&#xff1a; <!-- 表格基本架构 --><!-- tr表示一行&#xff0c;td表示一行内单元格 --><!--th为第一行表头加粗居中显示 --><table border"1"><thead><tr><th&g…

【Linux】17. 进程间通信 --- 管道

1. 什么是进程间通信(进程间通信的目的) 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 资源共享&#xff1a;多个进程之间共享同样的资源。 通知事件&#xff1a;一个进程需要向另一个或一组进程发送消息&#xff0c;通知它&#xff08;它们&#xff09;发生了…

sqlmodel实现唯一性校验3,检查多列同时重复

之前的方案虽然能够解决重复性问题&#xff0c;但是没有覆盖到多列同时重复的情况。 比如&#xff0c;我们可以认为用户名是可以重复的。但是用户名和年龄不能同时重复&#xff0c;那么这种情况该怎么解决呢&#xff1f; 之前的代码如下&#xff1a; from sqlalchemy import…

python直接发布到网站wordpress之三批量发布图片

在前面的文章中&#xff0c;实现了使用python操作wordpress发布文字内容和图片内容。 python直接发布到网站wordpress之一只发布文字-CSDN博客 python直接发布到网站wordpress之二发布图片-CSDN博客 不过&#xff0c;此时发布图片的数量只能是一张图片。但在实际应用中&…

效率跨越式提升的工农业对机器人专业的需求

需求 需要用人的地方一定会逐步收缩。 原来需要人的地方也会逐步被机器人取代。 机器人这个专业最强的悖论就是可以部分取代人。 此处&#xff1a;用人的地方是指“工农业”&#xff0c;包括工业和农业。 机器人工程行业算制造业吗 机器人工程终身学习和工作计划 趋势 工匠…

1077 互评成绩计算

solution 总成绩 &#xff08;老师成绩 同学去掉最高分去掉最低分的平均分&#xff09;/2&#xff0c;其中总成绩四舍五入取整 #include<iostream> #include<algorithm> using namespace std; int main(){int n, m, worst, better, sum, g, x, cnt;scanf("…

【数学建模】天然肠衣搭配问题

2011高教社杯全国大学生数学建模竞赛D题 天然肠衣&#xff08;以下简称肠衣&#xff09;制作加工是我国的一个传统产业&#xff0c;出口量占世界首位。肠衣经过清洗整理后被分割成长度不等的小段&#xff08;原料&#xff09;&#xff0c;进入组装工序。传统的生产方式依靠人工…

每日OJ题_DFS解决FloodFill⑤_力扣417. 太平洋大西洋水流问题

目录 力扣417. 太平洋大西洋水流问题 解析代码 力扣417. 太平洋大西洋水流问题 417. 太平洋大西洋水流问题 难度 中等 有一个 m n 的矩形岛屿&#xff0c;与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界&#xff0c;而 “大西洋” 处于大陆的右边界和下…

自动控制原理MATLAB:控制系统模型构建

在MATLAB中&#xff0c;常用的系统建模方法有传递函数模型、零极点模型以及状态空间模型等。 1系统传递函数模型描述&#xff1a; 命令格式&#xff1a; systf(num,den,Ts); 其中&#xff0c;num、den为分子多项式降幂排列的系数向量,Ts表示采样时间&#xff0c;缺省时描述…

AI 数据观 | TapData Cloud + MongoDB Atlas:大模型与 RAG 技术有机结合,落地实时工单处理智能化解决方案

本篇为「AI 数据观」系列文章第二弹&#xff0c;在这里&#xff0c;我们将进一步探讨 AI 行业的数据价值。以 RAG 的智能工单应用场景为例&#xff0c;共同探索如何使用 Tapdata Cloud MongoDB Atlas 实现具备实时更新能力的向量数据库&#xff0c;为企业工单处理的智能化和自…

在小黑框如何用Python写出多行代码

平时使用python自带的小黑框编译器只能一行代码一行代码的写&#xff0c; 方法一 可以新建一个文本txt格式&#xff0c;然后打开在里面输入你想要的Python代码&#xff0c;然后把名字改成xxx.py&#xff0c;然后点击小黑框&#xff0c;输入 python 把Py文件拖过来回车就行 方…

Hive内部表、外部表

Hive内部表、外部表 1. 内部表&#xff08;Managed Table&#xff09;&#xff1a; 内部表是由Hive完全管理的表&#xff0c;包括数据和元数据。当你删除内部表时&#xff0c;Hive会同时删除表的数据和元数据。内部表的数据存储在Hive指定的默认位置&#xff08;通常是HDFS上…

VBA 创建透视表,录制宏,自动化报表

目录 一. 数据准备二. 需求三. 准备好报表模板四. 执行统计操作&#xff0c;录制宏4.1 根据数据源创建透视表4.2 填充数据到报表4.3 结束宏录制 五. 执行录制好的宏&#xff0c;自动化报表 一. 数据准备 ⏹数据源1 姓名学科成绩丁志敏语文91李平平语文81王刚语文64张伊语文50…

【前端】HTML基础(1)

文章目录 前言一、什么是前端二、HTML基础1、 HTML结构1.1 什么是HTML页面1.2 认识HTML标签1.3 HTML文件基本结构1.3 标签层次结构1.4 创建html文件1.5 快速生成代码框架 三、Emmet快捷键 前言 这篇博客仅仅是对HTML的基本结构进行了一些说明&#xff0c;关于HTML的更多讲解以及…