【论文浅尝】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.rhkb.cn/news/313916.html

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

相关文章

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

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

用Python将原始边列表转换为邻接矩阵

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在图论和网络分析中,图是一种非常重要的数据结构,它由节点&#xff…

C++感受6-Hello World 交互版

变量、常量输入、输出、流getline() 函数读入整行输入Hello() 函数复习新定义函数 Input() 实现友好的人机交互还有 “痘痘” 为什么挤不到的分析…… 1. DRY 原则简介 上一节课,我们写了两版“问候”程序。第一版的最大问题是重复的内容比较多,每一次问…

运行django

确保app被注册 urls.py中编写url 视图对应关系 命令行启动 python manage.py runserver

完美运营版商城/拼团/团购/秒杀/积分/砍价/实物商品/虚拟商品等全功能商城

源码下载地址:完美运营版商城.zip 后台可以自由拖曳修改前端UI页面 还支持虚拟商品自动发货等功能 挺不错的一套源码 前端UNIAPP 后端PHP 一键部署版本

Python浅谈清朝秋海棠叶版图

1、清朝疆域概述: 清朝是我国最后一个封建王朝,其始于1616年建州女真部努尔哈赤建立后金,此后统一女真各部、东北地区。后又降服漠南蒙古,1644年入关打败农民起义军、灭南明,削三藩,复台湾。后又收外蒙&am…

网络安全之防范钓鱼邮件

随着互联网的快速发展,新的网络攻击形式“网络钓鱼”呈现逐年上升的趋势,利用网络钓鱼进行欺骗的行为越来越猖獗,对互联网的安全威胁越来越大。网络钓鱼最常见的欺骗方式就是向目标群体发送钓鱼邮件,而邮件标题和内容,…

Qt配置CMake出错

一个项目需要在mingw环境下编译Opencv源码,当我用Qt配置opencv的CMakeLists.txt时,出现了以下配置错误: 首先我根据下述博文介绍,手动配置了CMake,但仍不能解决问题。 Qt(MinGW版本)安装 - 夕西行 - 博客园 (cnblogs.…

使用CNN实现新闻文本分类

一、实验目的: 理解卷积神经网络的基本概念和原理;了解卷积神经网络处理文本数据的基本方法;掌握卷积神经网络处理文本数据的实践方法,并实现新闻文本的分类任务。 实验要求: 使用Keras框架定义并训练卷积神经网络模…

【BFPTR】震惊!竟然还有比 快速排序 更快的算法...

在介绍 堆 和 加强堆 的文章中,我们探讨了当有新的元素加入时,如何实时更新前 K 个元素的方法。 (还没学习过的小伙伴赶快关注,在 「堆」 合集里查看哦!) 今天我们介绍一种新的方法,使用 bfp…

【云计算】云数据中心网络(七):负载均衡

《云网络》系列,共包含以下文章: 云网络是未来的网络基础设施云网络产品体系概述云数据中心网络(一):VPC云数据中心网络(二):弹性公网 IP云数据中心网络(三)…

QT C++ sqlite 对多个数据库的操作

//本文描述,QT 对多数据库的操作。 //你可能会想,多数据库的操作时,查询语句怎么知道是哪个数据库。 //QT提供了这样一种构造函数 QSqlQuery(const QSqlDatabase &db) //指定数据库 //在QT6.2.4 MSVC2019调试通过。 //效果见下图&am…

uniapp对uni.request()的封装以及使用

官方文档 uni.request(OBJECT) | uni-app官网 (dcloud.net.cn) uni.request参数 参数名说明url是写api地址的data是用来传值的对于 GET 方法,会将数据 转换为 query string。例如 { name: name, age: 18 } 转换后的结果是 namename&age18。对于 POST 方法且 …

项目管理中常用的三个工具:甘特图、看板、燃尽图

在日常项目管理的实践中,为了更有效地追踪项目进度、优化资源配置和提高团队协作效率,管理者常常会借助一些工具来辅助工作。这些工具的本质在于将抽象复杂的项目管理任务具象化、简单化,以更直观、方便的方式呈现出来。 以下介绍项目管理中…

【opencv 加速推理】如何安装 支持cuda的opencv 包 用于截帧加速

要在支持CUDA的系统上安装OpenCV,您可以使用pip来安装支持CUDA的OpenCV版本。OpenCV支持CUDA加速,但需要安装额外的库,如cuDNN和NVIDIA CUDA Toolkit。以下是一般步骤: 安装NVIDIA CUDA Toolkit: 首先,您需要安装NVID…

【学习笔记】Python 使用 matplotlib 画图

文章目录 安装中文显示折线图、点线图柱状图、堆积柱状图坐标轴断点参考资料 本文将介绍如何使用 Python 的 matplotlib 库画图,记录一些常用的画图 demo 代码 安装 # 建议先切换到虚拟环境中 pip install matplotlib中文显示 新版的 matplotlib 已经支持字体回退…

【Linux】常用命令

1. 切换命令: cd 语法: cd [相对路径或绝对路径] 使用小tips: 输入文件夹名称过程中可以使用Tab来自动不全。 演示效果: 使用了相对路径和绝对路径,可以看到它们的效果是一样的。 2. 创建目录:mkdir 语法: mkdir […

OpenHarmony音视频—opus

简介 Opus是一种用于在互联网上进行交互式语音和音频传输的编解码器。它可以从低比特率窄带语音扩展到非常高的高品质立体声音乐。 下载安装 直接在OpenHarmony-SIG仓中搜索opus并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 将下载的opus库代码存在以下路径&a…

【JAVA】PO、VO、DAO、BO、DTO、POJO你分得清吗?

在Java开发中,PO、VO、DAO、BO、DTO、POJO这些词汇是比较常见的,每个术语都有其特定的含义和用途。下面是它们的具体区别: 名称简要概况用途和特定PO (Persistence Object) 持…

基于Python实现的推箱子小游戏

Python贪吃蛇小游戏实现: 推箱子曾经在我们的童年给我们带来了很多乐趣。推箱子这款游戏现在基本上没人玩了,甚至在新一代人的印象中都已毫无记忆了。。。但是,这款游戏可以在一定程度上锻炼自己的编程能力。 运行效果如图所示: 游戏关卡有点…