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

news2024/11/19 13:36:52

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.coloradmin.cn/o/1624592.html

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

相关文章

python_django农产品物流信息服务系统6m344

Python 中存在众多的 Web 开发框架:Flask、Django、Tornado、Webpy、Web2py、Bottle、Pyramid、Zope2 等。近几年较为流行的,大概也就是 Flask 和 Django 了 Flask 是一个轻量级的 Web 框架,使用 Python 语言编写,较其他同类型框…

13 如何利用缓存实现万级并发扣减

在上一讲的实现方案里我们讨论了采用纯数据库的扣减实现方案,如果以常规的机器或者 Docker 来进行评估,此方案较难实现单机过万的 TPS。之所以介绍,是想告诉你,架构是面向业务功能、成本、实现难度、时间等因素的取舍,…

广工电工与电子技术实验报告-8路彩灯循环控制电路

实验代码 module LED_water (clk,led); input clk; output [7:0] led; reg [7:0] led; integer p; reg clk_1Hz; reg [7:0] current_state, next_state; always (posedge clk) begin if(p25000000-1)begin …

对2023年图灵奖揭晓看法

2023年图灵奖揭晓,你怎么看? 2023年图灵奖,最近刚刚颁给普林斯顿数学教授 Avi Wigderson!作为理论计算机科学领域的领军人物,他对于理解计算中的随机性和伪随机性的作用,作出了开创性贡献。这些贡献不仅推…

C++修炼之路之多态---多态的原理(虚函数表)

目录 一:多态的原理 1.虚函数表 2.原理分析 3.对于虚表存在哪里的探讨 4.对于是不是所有的虚函数都要存进虚函数表的探讨 二:多继承中的虚函数表 三:常见的问答题 接下来的日子会顺顺利利,万事胜意,生活明朗--…

PPSSPPSDL for Mac v1.17.1 PSP游戏模拟器(附500款游戏) 激活版

PPSSPPSDL for Mac是一款模拟器软件,它允许用户在Mac上运行PSP(PlayStation Portable)游戏。通过这款模拟器,用户可以体验到高清甚至更高的分辨率的游戏画面,同时还能够升级纹理以提升清晰度,并启用后处理着…

安卓手机连接电脑实用技巧:实现文件传输与共享

在手机使用过程中,我们常常需要将手机中的文件传输到电脑,或者将手机与电脑进行共享。为了实现这一需求,掌握一些实用的安卓手机连接电脑技巧就显得尤为重要。本文将为您详细介绍2种简单、高效且安全的方法,让您轻松实现安卓手机与…

【网络安全】安全事件管理处置 — 事件分级分类

专栏文章索引:网络安全 有问题可私聊:QQ:3375119339 目录 一、安全事件分级 二、应急事件分级 三、安全事件分类 四、常见安全事件原因分析 1.web入侵 2.漏洞攻击 3.网络攻击 一、安全事件分级 在对安全事件的应急响应过程中&#xf…

如何最大程度使用AWS?

随着云计算技术的不断发展,AWS已经成为众多企业的首选,为其提供了强大的基础设施和服务。那么如何最大程度地、灵活地利用AWS,成为许多企业专注的焦点。九河云作为AWS的合作伙伴,为读者们提供一些技巧和策略,帮助读者充…

物联网鸿蒙实训解决方案

一、建设背景 在数字化浪潮汹涌的时代,华为鸿蒙系统以其前瞻的技术视野和创新的开发理念,成为了引领行业发展的风向标。 据华为开发者大会2023(HDC. Together)公布的数据,鸿蒙生态系统展现出了强劲的发展动力&#x…

Qt : 禁用控件默认的鼠标滚轮事件

最近在写一个模拟器,在item中添加了很多的控件,这些控件默认是支持鼠标滚动事件的。在数据量特别大的时候,及容易不小心就把数据给修改了而不自知。所有,我们这里需要禁用掉这些控件的鼠标滚轮事件。 实现的思想很简单&#xff0c…

[Swift]组件化开发

一、组件化开发基础 1.组件定义 在软件开发中,一个组件是指一个独立的、可替换的软件单元,它封装了一组相关的功能。组件通过定义的接口与外界交互,并且这些接口隔离了组件内部的实现细节。在Swift语言中,组件可以是一个模块、一…

新品发布!无人机装调检修实训系统

近年,我国密集出台相关产业政策,推动低空经济从探索走向发展,根据新华网数据,2030年低空经济规模有望达2万亿。无人机专业属于跨学科的综合性专业,其中装调检测技术是无人机教培的重要组成部分。 天途推出无人机装调检…

easyExcel - 带图片导出

目录 前言一、情景介绍二、问题分析三、代码实现1. 单图片导出2. 多图片导出3. 多图片导出(优化) 前言 Java-easyExcel入门教程:https://blog.csdn.net/xhmico/article/details/134714025 之前有介绍过如何使用 easyExcel,以及写…

分布式文件系统--MinIO

1 MinIO安装(Docker) ●在root目录下新建docker_minio文件夹 ●在docker_minio文件夹下新建config文件夹,data文件夹 ●在root目录下新建docker_compose文件夹,在docker_compose文件夹中添加docker-compose.yaml services:minio:image: quay.io/minio/miniocontainer_name: mi…

Maya vs Blender:制作3D动画首选哪一个?

就 3D 动画而言,有两款3D软件引发了最多的争论:Blender 与 Maya。这两个强大的平台都提供强大的工具集,使动画故事和角色栩栩如生。但作为一名3D动画师,您应该投入时间学习和创作哪一个呢?下面我将从以下六点给您一个清…

从0开始用C写贪吃蛇(基于链表)

目录 1. 游戏背景 2. 游戏效果演示​编辑​编辑​编辑 3. 实现目标 4. 技术要点 5. 控制台程序 5.1 设置控制台窗口的长宽和名字 5.2 控制台屏幕上的坐标COORD 6.Win32 API 6.1 GetStdHandle 6.2 GetConsoleCursorInfo 6.3 CONSOLE_CURSOR_INFO 6.4 SetConsole…

python监听html click教程

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Python实现监听HTML点击事件 在Web开发中,经常需要在用户与页面交互时执行一些…

电磁兼容(EMC):静电放电(ESD)抗扰度试验深度解读(七)

目录 1. 第一步 确定电磁环境 2. 第二步 确认设备工作状态 3. 第三步 制定试验计划 4. 间接施加的放电 4.1 水平耦合板 4.2 垂直耦合板 静电抗扰度的试验测试细节对测试结果影响比较大,本文详细介绍静电抗扰度试验的测试程序和注意事项。 1. 第一步 确定电磁…

工作任务管理平台作品集源文件 figma格式UX/UI设计师作品集

交付文件:作品集源文件项目源文件包装样机源文件字体文件 交付格式:figma、psd 作品集文件页数:28页 项目文件页数:12页(Web)12页(App) 以下重点哦,请认真阅读&#…