【论文浅尝】Phi-3-mini:A Highly Capable Language Model Locally on Your Phone

Phi-3-mini

phi-3-mini,一个3.8亿个参数的语言模型,训练了3.3万亿个token,其总体性能,通过学术基准和内部测试进行衡量,可以与Mixtral 8x7B和GPT-3.5等模型相媲美(在MMLU上达到69%,在MT-bench上达到8.38),它是足够小,可以部署在手机上。

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

 为了最大限度地造福开源社区,phi-3-mini建立在与Llama-2相似的块结构上,并使用相同的标记器,词汇量为320641。这意味着为Llama-2系列型号开发的所有软件包都可以直接适用于phi-3-mini。该模型使用了3072个隐藏维度,32个头部和32个图层。我们使用bfloat16对总共3.3T token进行了训练。

聊天模板如下:

Phi-3-small

phi-3-small模型(7B参数)利用词汇表大小为100352的tik token标记器(用于更好的多语言标记),默认上下文长度为8K。它遵循7B模型类的标准解码器架构,有32层,隐藏尺寸为4096。为了最小化KV缓存占用,该模型还利用分组查询关注,4个查询共享一个键。此外,phi-3-small使用替代的密集关注层和一种新的块稀疏关注来进一步优化KV缓存节省,同时保持长上下文检索性能。该模型还使用了另外10%的多语种数据 。

由于体积小,phi3-mini可以量化为4bits,只占用约1.8GB的内存。作者通过在带有A16仿生芯片的iPhone 14上部署phi-3-mini来测试量化模型,该芯片在设备上本机运行,完全离线,每秒超过12个token。

Training Methodology

作者遵循了一个前人提出的工作顺序,利用高质量的训练数据来提高小型语言模型的性能,并偏离标准的缩放定律。Phi-3-mini的训练数据包括来自各种开放互联网资源的严格过滤的网络数据以及合成的LLM生成的数据。

预训练分两个不相交的连续阶段进行;第一阶段主要由网络资源组成,旨在教授模型一般知识和语言理解;阶段2将过滤更严格的web数据(阶段1中使用的子集)与一些合成数据合并,这些合成数据可以教授模型逻辑推理和各种利基技能。

Data Optimal Regime

与之前在“计算最佳方案”或“过度训练方案”中训练语言模型的工作不同,我们主要关注给定规模的数据质量。我们尝试校准训练数据,使其更接近小型模型的“数据最佳”方案。特别是,我们过滤web数据以包含正确的“知识”水平,并保留更多可能提高模型“推理能力”的网页。例如,某一天英超联赛的比赛结果可能是前沿模型的良好训练数据,但我们需要删除此类信息,以便为迷你模型的“推理”留下更多模型容量。下图与Llama-2进行了比较。

上图绘制了MMLU误差的对数与模型大小的对数的关系图从左至右:phi-1.5、phi-2、phi-3-mini、phi-3small与基于相同固定数据训练的Llama-2系列模型(7B、13B、34B、70B)的对比。

Post-training

phi-3-mini的后期训练经历了两个阶段,包括监督微调(SFT)和直接偏好优化(DPO)。SFT利用不同领域的高度精选的高质量数据,例如数学、编码、推理、对话、模型身份和安全。SFT数据组合从使用纯英语示例开始。DPO数据涵盖了聊天格式数据、推理和负责任的人工智能(RAI)工作。我们使用DPO通过使用那些输出作为“拒绝”响应来引导模型远离不想要的行为。除了在数学、编码、推理、鲁棒性和安全性方面的改进外,后期训练还将语言模型转换为用户可以高效、安全交互的人工智能助手。

Academic benchmarks

我们与phi-2、Mistral-7 b-v 0.1、Mixtral-8x7b、Gemma 7B、Llama-3-instruct8b和GPT-3.5进行了比较。

 Safety

整体方法包括培训后的安全调整、red-teaming、自动化测试和几十种RAI危害类别的评估。

 Weakness

就LLM功能而言,尽管phi-3-mini模型实现了与大得多的模型相似的语言理解和推理能力水平,但对于某些任务来说,它仍然受到其大小的根本限制。

该模型根本没有能力存储太多的“事实知识”,例如在TriviaQA上的低性能就可以看出这一点。然而,我们认为这种弱点可以通过增加搜索引擎来解决。下图中展示了一个使用HuggingFace默认聊天界面和phi-3-mini的例子。与模型能力相关的另一个弱点是我们主要将语言限制为英语。探索小语种模型的多语言功能是重要的下一步,通过包含更多多语言数据,phi-3-small取得了一些初步的有希望的结果。

 尽管在RAI方面做出了不懈的努力,但与大多数LLM一样,在事实不准确(或幻觉)、偏见的再现或放大、不适当的内容生成和安全问题方面仍然存在挑战。使用精心策划的培训数据和有针对性的后期培训,以及来自 red-teaming 洞察的改进,可以从各个方面显著缓解这些问题。然而,要充分应对这些挑战,还有大量工作要做。

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

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

相关文章

深圳证券交易所Binary行情数据接口规范

对接深圳证券交易所Binary行情数据接口其实并不难,你需要具备以下知识。 1、需要了解Binary报文设计结构,消息头消息体消息尾。 消息体: 如果是纯map结构的比较简单,字段平铺开来即可。如{"id":"1","…

WEB服务的配置与使用 Apache HTTPD

服务端:服务器将发送由状态代码和可选的响应正文组成的 响应 。状态代码指示请求是否成功,如果不成功,则指示存在哪种错误情况。这告诉客户端应该如何处理响应。较为流星的web服务器程序有: Apache HTTP Server 、 Nginx 客户端&a…

bugfix: com.alibaba.druid.sql.parser.EOFParserException: EOF

前言 在日常的开发工作中,我们经常会遇到各种各样的问题,其中涉及数据库操作的接口联调尤其容易出现意想不到的状况。今天我就遇到了一个关于Druid SQL解析异常的问题,具体表现为com.alibaba.druid.sql.parser.EOFParserException: EOF。通过…

基于SpringBoot开发的同城租房系统租房软件APP小程序源码

项目背景 一、市场前景 随着城市化进程的加快和人口流动性的增强,租房市场正逐渐成为一个不可忽视的巨大市场。传统的租房方式往往存在着信息不对称、效率低下等问题,而同城租房软件的出现,则有效地解决了这些问题,为租房市场注…

k8s日常动手实践 ~~ pod访问 pod请求 k8s api ~ 含新版带curl的busybox镜像

前言: 可以使用 Kubernetes API 获取集群信息。使用 Service Account(SA)进行身份验证,可以以安全的方式访问 Kubernetes API,而无需在 Pod 中使用明文凭据。 以下是一个使用 Service Account 访问 Kubernetes API 获…

每日OJ题_DFS回溯剪枝①_力扣46. 全排列(回溯算法简介)

目录 回溯算法简介 力扣46. 全排列 解析代码 回溯算法简介 回溯算法是一种经典的递归算法,通常⽤于解决组合问题、排列问题和搜索问题等。 回溯算法的基本思想:从一个初始状态开始,按照⼀定的规则向前搜索,当搜索到某个状态无…

【韩国】UE5的MetaHuman确实可以导入Blender进行编辑。

UE5的MetaHuman确实可以导入Blender进行编辑。根据网络上的信息,你可以将MetaHuman模型导出为FBX文件,然后在Blender中进行修改。修改完成后,你可以将其重新导入到Unreal Engine 5中4。请注意,当你在Blender中编辑模型时&#xff…

虚拟线程的定义及使用

0.前言 长期以来,虚拟线程是 Java 中最重要的创新之一。 它们是在 Project Loom 中开发的,自 Java 19 作为预览功能以来一直包含在 JDK 中,自 Java 21 作为最终版本 (JEP 444) 以来,它们已包含在 JDK 中。 1.虚拟线程的作用 任…

Docker——开源的应用容器的引擎

目录 一、前言 1.虚拟化产品有哪些 1.1寄居架构 1.2源生架构 2.虚拟化产品对比/介绍 2.1虚拟化产品 2.1.1仿真虚拟化 2.1.2半虚拟化 2.1.3全虚拟化 2.2重点 2.2.1KVM——Linux内核来完成的功能和性能 2.2.2ESXI——用的比较多 二、Docker概述 1.Docker定义 2.Do…

BGP的基本配置

l 按照以下步骤配置BGP协议: 第1步:设备基本参数配置,AS内配置IGP确保内部网络连通性; l 配置IGP(OSPF协议等)路由解决peer对等体的源和目标IP之间连通性,确保peer之间TCP(179&a…

怎样把PDF分割成多个文件?有哪些方法可以分割PDF文件?这几个方法成功率很高!

一,引言 PDF分割,即将一个完整的PDF文档拆分为多个较小的部分,是许多用户在处理 PDF文件时经常需要执行的操作。无论是为了单独提取某个章节、创建电子书章节、还是为了在多个设备间轻松共享,PDF分割都显得非常实用。本文将详细介…

动手学深度学习——矩阵

1. 基本概念 1.1 标量 标量由只有一个元素的张量表示。 所以标量计算与程度开发中的普通变量计算没有差异。 import torchx torch.tensor(3.0) y torch.tensor(2.0)x y, x * y, x / y, x**y(tensor(5.), tensor(6.), tensor(1.5000), tensor(9.))1.2 向量 向量泛化自标量…

IDEA 中如何通过连接数据库自动生成代码

目录 1、IDEA 中安装 MyBatisX 插件 2、点击 IDEA 右侧的 database 数据库按钮,点击新建数据源 Data Source 3、编辑数据库连接信息 4、选择你要生成代码的数据库表 5、编辑你代码生成的基本路径以及一些配置项 6、选择annotation:mybatis-plus3&a…

华为数字化转型与数据管理实践介绍(附PPT下载)

华为作为全球领先的信息与通信技术(ICT)解决方案提供商,在数字化转型和数据管理领域拥有丰富的实践经验和技术积累。其数字化转型解决方案旨在帮助企业通过采用最新的ICT技术,实现业务流程、组织结构和文化的全面数字化&#xff0…

SpringBoot+RabbitMQ实现MQTT协议通讯

一、简介 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件 。此…

一文解读:阿里云 AI 基础设施的演进与挑战

云布道师 2024 年 4 月 18-19 日,2024 中国生成式 AI 大会在北京 JW 万豪酒店举行,阿里云高级技术专家、阿里云异构计算 AI 推理团队负责人李鹏受邀在【AI Infra】专场发表题为《AI 基础设施的演进与挑战》的主题演讲。李鹏从 AIGC 对云基础设施的挑战、…

HarmonyOS hsp制作与引用

1. HarmonyOS hsp制作与引用 1.1 介绍 HSP动态共享包(模块),应用内HSP指的是专门为某一应用开发的HSP,只能被该应用内部其他HAP/HSP使用,用于应用内部代码、资源的共享。应用内HSP跟随其宿主应用的APP包一起发布,与该…

react —— useState 深入

基础用法 useState Hook 提供了这两个功能: State 变量 在第一次重新渲染期间,这将具有作为参数传递的值State setter 函数 set 函数将允许将状态的值更新为不同的值,如果 set 函数中提供的值不同,则将触发重新渲染。 注意&…

MyBatis基础操作

黑马程序员JavaWeb开发教程 文章目录 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发一、环境准备1、准备数据库表emp2、创建一个新的springboot工程,选择引入对应的起步依赖(mybatis、mysql驱动、lombok&…

【树莓派4B】如何点亮树莓派的LED灯

在之前一系列文章中,使用python、行人入侵检测,确没有使用树莓派的硬件。控制引脚进行输出: 如何写python点亮led灯闪烁,我灯接在gpio13,GPIO19,gpio26。我都想闪烁。 你可以使用Python的GPIO库来控制树莓派上的LED灯。首先&…