苹果WWDC重磅发布的IOS 18、Apple Intelligence背后的技术分析!
2024年6月10日,在2024年WWDC全球开发者大会上,苹果推出了Apple Intelligence,这是深度集成到iOS 18、iPadOS 18和macOS Sequoia中的个人智能系统。
为了让大模型能在 iPhone 端侧跑,苹果还是做了很多事情的。接下来就跟大家介绍一下苹果在端侧部署大模型的做法以及在机器学习方面的一些研究。
端侧模型大小为 3B,在 iPhone 上延迟为 6 毫秒,每秒可以输出 30 个 Token。使用 AXLearn 框架进行模型训练,并采用了多种并行化技术来提高训练效率。通过使用Lora来微调其基础模型,使其能够适应用户的日常活动,并且能够即时调整以适应特定任务。
Apple Intelligence介绍
Apple Intelligence 由多个功能强大的生成模型组成,这些模型专门用于用户的日常任务,并可以根据用户的当前活动进行动态调整。Apple Intelligence 内置的基础模型已针对用户体验进行了微调,例如编写和优化文本、确定通知的优先级和摘要、为与家人和朋友的对话创建有趣的图像,以及采取应用内操作以简化跨应用交互。
图 1:Apple 基础模型的建模概述。
在以下概述中,我们将详细介绍其中两个模型(一个约 30 亿参数的设备语言模型,以及一个更大的基于服务器的语言模型,该模型可通过私有云计算获得并在 Apple 硅服务器上运行)是如何构建和调整以高效、准确和负责任地执行专门任务的。这两个基础模型是 Apple 为支持用户和开发人员而创建的更大的生成模型系列的一部分;这包括一个用于在 Xcode 中构建智能的编码模型,以及一个用于帮助用户以视觉方式表达自己的传播模型,例如在信息应用中。
专注于负责的人工智能开发
Apple Intelligence 的设计每一步都秉承我们的核心价值观,并建立在突破性的隐私创新基础之上。
此外,我们还制定了一套负责任的人工智能原则来指导我们如何开发人工智能工具及其支撑模型:
-
为用户提供智能工具:我们确定可以负责任地使用人工智能的领域,以创建满足特定用户需求的工具。我们尊重用户选择如何使用这些工具来实现他们的目标。
-
代表我们的用户:我们打造高度个性化的产品,旨在真实地代表全球用户。我们不断努力避免在我们的 AI 工具和模型中延续刻板印象和系统性偏见。
-
精心设计:我们在流程的每个阶段都采取预防措施,包括设计、模型训练、功能开发和质量评估,以确定我们的 AI 工具可能被滥用或导致潜在危害的方式。我们将在用户反馈的帮助下不断主动改进我们的 AI 工具。
-
保护隐私:我们利用强大的设备处理能力和突破性的基础设施(如私有云计算)保护用户的隐私。在训练基础模型时,我们不会使用用户的私人个人数据或用户互动。
这些原则体现在实现 Apple Intelligence 的整个架构中,将功能和工具与专门的模型连接起来,并扫描输入和输出,为每个功能提供负责任地运行所需的信息。
预训练
我们的基础模型是在Apple 的 AXLearn 框架上训练的,这是我们于 2023 年发布的一个开源项目。它建立在 JAX 和 XLA 之上,使我们能够在各种训练硬件和云平台上高效且可扩展地训练模型,包括 TPU 以及云和本地 GPU。我们结合使用数据并行、张量并行、序列并行和完全分片数据并行 (FSDP) 来沿数据、模型和序列长度等多个维度扩展训练。
我们利用授权数据训练基础模型,包括为增强特定功能而选择的数据,以及我们的网络爬虫 AppleBot 收集的公开数据。网络出版商可以通过数据使用控制选择不将其网络内容用于 Apple Intelligence 训练。
我们在训练基础模型时绝不会使用用户的私人个人数据或用户互动,并且会应用过滤器来删除网络上公开的个人身份信息,例如社保号和信用卡号。我们还会过滤脏话和其他低质量内容,以防止将其纳入训练语料库。除了过滤之外,我们还执行数据提取、重复数据删除和基于模型的分类器的应用,以识别高质量文档。
训练后
我们发现数据质量对于模型成功至关重要,因此我们在训练流程中采用了混合数据策略,结合了人工注释数据和合成数据,并进行了彻底的数据管理和过滤程序。我们在训练后开发了两种新算法:
-
带有教师委员会的拒绝抽样微调算法,以及 - - 带有镜像下降策略优化和留一优势估计器的人工反馈强化学习 (RLHF) 算法。
我们发现这两种算法可以显著提高模型的指令遵循质量。
优化
除了确保我们的生成模型性能强大之外,我们还采用了一系列创新技术,在设备和私有云上优化生成模型,以提高速度和效率。我们针对第一个 token 和扩展 token 推理性能应用了一系列优化措施。
设备和服务器模型均使用分组查询注意机制。我们使用共享的输入和输出词汇嵌入表来降低内存需求和推理成本。这些共享的嵌入张量映射时不会出现重复。设备模型使用的词汇大小为 49K,而服务器模型使用的词汇大小为 100K,其中包括额外的语言和技术标记。
对于设备端推理,我们使用低位托盘化,这是一项关键的优化技术,可满足必要的内存、功率和性能要求。为了保持模型质量,我们使用 LoRA 适配器开发了一个新框架,该框架采用混合 2 位和 4 位配置策略(平均每个权重 3.5 位),以实现与未压缩模型相同的准确度。
此外,我们使用交互式模型延迟和功率分析工具Talaria来更好地指导每个操作的比特率选择。我们还利用激活量化和嵌入量化,并开发了一种方法,以便在我们的神经引擎上实现高效的键值 (KV) 缓存更新。
通过这组优化,我们在 iPhone 15 Pro 上能够实现每个 token 约 0.6 毫秒的首次 token 延迟,以及每秒 30 个 token 的生成率。值得注意的是,这一性能是在采用 token 推测技术之前实现的,从中我们可以看到 token 生成率的进一步提升。
图 2:适配器是覆盖在通用基础模型上的一小批模型权重。它们可以动态加载和交换,使基础模型能够针对手头的任务即时进行专门化。Apple Intelligence 包含一组广泛的适配器,每个适配器都针对特定功能进行了微调。这是扩展基础模型功能的有效方法。
我们使用 16 位来表示适配器参数的值,对于约 30 亿个参数的设备模型,等级 16 适配器的参数通常需要数十兆字节。适配器模型可以动态加载、临时缓存在内存中并进行交换 - 使我们的基础模型能够即时专门处理手头的任务,同时高效管理内存并保证操作系统的响应能力。
为了方便适配器的训练,我们创建了一个高效的基础设施,使我们能够在基础模型或训练数据更新时快速重新训练、测试和部署适配器。使用优化部分中介绍的准确度恢复适配器初始化适配器参数。
模型适配
我们的基础模型针对用户的日常活动进行了微调,并可以根据手头的任务动态地进行专门化。我们利用适配器(可插入预训练模型各个层的小型神经网络模块)来针对特定任务微调我们的模型。对于我们的模型,我们调整了注意矩阵、注意投影矩阵和点式前馈网络中的全连接层,以适应 Transformer 架构的一组合适的解码层。
通过仅对适配器层进行微调,基础预训练模型的原始参数保持不变,保留模型的一般知识,同时定制适配器层以支持特定任务。
绩效与评估
我们专注于提供生成模型,使用户能够通过 Apple 产品进行交流、工作、表达自己和完成任务。在对我们的模型进行基准测试时,我们专注于人工评估,因为我们发现这些结果与用户在我们产品中的体验高度相关。我们对特定功能的适配器和基础模型都进行了性能评估。
为了说明我们的方法,我们来看看我们如何评估我们的摘要适配器。由于电子邮件和通知摘要的产品要求在细微但重要的方面有所不同,我们在托盘化模型的基础上微调了准确度恢复低秩 (LoRA) 适配器以满足这些特定要求。我们的训练数据基于从更大的服务器模型生成的合成摘要,并通过拒绝采样策略进行过滤,仅保留高质量的摘要。
为了评估特定于产品的摘要,我们使用了一组针对每个用例精心采样的 750 个响应。这些评估数据集强调了我们的产品功能在生产中可能面临的各种输入,并包括不同内容类型和长度的单个和堆叠文档的分层混合。作为产品功能,根据代表实际用例的数据集评估性能非常重要。我们发现,与同类模型相比,带有适配器的模型可以生成更好的摘要。
作为负责任的开发的一部分,我们识别并评估了摘要固有的特定风险。例如,摘要有时会以不良方式删除重要的细微差别或其他细节。但是,我们发现摘要适配器在超过 99% 的目标对抗示例中并未放大敏感内容。我们将继续进行对抗性探索以识别未知危害并扩大我们的评估范围,以帮助指导进一步的改进。
图 3:两个摘要用例的“好”和“差”响应相对于所有响应的比例。根据评分者在五个维度上的得分,摘要被分为“好”、“中”、“差”。如果所有维度都很好(越高越好),则结果被归类为“好”。如果任何一个维度很差(越低越好),则结果被归类为“差”。我们的带有适配器的模型比同类模型生成更好的摘要。
除了评估由基础模型和适配器驱动的特定功能性能外,我们还评估基于设备和服务器的模型的一般功能。我们利用一套全面的真实世界提示评估集来测试一般模型功能。这些提示在不同难度级别上各不相同,涵盖头脑风暴、分类、封闭式问答、编码、提取、数学推理、开放式问答、重写、安全、总结和写作等主要类别。
我们将我们的模型与开源模型(Phi-3、Gemma、Mistral、DBRX)和同等规模的商业模型(GPT-3.5-Turbo、GPT-4-Turbo)1进行了比较。我们发现,与大多数同类竞争模型相比,我们的模型更受人类评分者的青睐。在这个基准测试中,我们的设备模型(约 3B 个参数)优于包括 Phi-3-mini、Mistral-7B 和 Gemma-7B 在内的大型模型。我们的服务器模型与 DBRX-Instruct、Mixtral-8x22B 和 GPT-3.5-Turbo 相比毫不逊色,而且效率很高。
图 4:Apple 基础模型与同类模型的并排评估中首选答案的比例。我们发现我们的模型更受人类评分者的青睐。
我们使用一组不同的对抗性提示来测试模型在有害内容、敏感主题和事实性方面的表现。我们根据此评估集上的人工评分者评估每个模型的违规率,衡量违规率,数字越低越好。设备和服务器模型在面对对抗性提示时都表现稳健,违规率低于开源和商业模型。
图 5:针对有害内容、敏感话题和事实的违规回应比例(越低越好)。我们的模型在面对对抗性提示时非常稳健。
与竞争对手的模型相比,我们的模型在这些提示中更安全、更实用,因而受到人类评分者的青睐。然而,考虑到大型语言模型的广泛功能,我们了解安全基准的局限性。我们正在积极与内部和外部团队进行手动和自动红队测试。
图 6:Apple 基础模型与安全提示方面的同类模型的并排评估中首选答案的比例。人类评分员发现我们的答案更安全、更有帮助。
为了进一步评估我们的模型,我们使用指令遵循评估 (IFEval) 基准来将其指令遵循能力与同等规模的模型进行比较。结果表明,我们的设备和服务器模型都比同等规模的开源和商业模型更好地遵循详细的指令。
图 7:Apple 基础模型和同等大小模型的指令跟踪能力(用 IFEval 测量)(越高越好)。
我们根据内部摘要和写作基准(由各种写作说明组成)评估模型的写作能力。这些结果不涉及我们针对摘要的特定功能适配器(见图3),我们也没有专注于写作的适配器。
图8:内部总结和作文基准的写作能力(越高越好)。
结论
在 WWDC24 上推出的 Apple 基础模型和适配器是 Apple Intelligence 的基础,Apple Intelligence 是深度集成到 iPhone、iPad 和 Mac 中的全新个人智能系统,可在语言、图像、动作和个人情境方面提供强大的功能。我们创建模型的目的是帮助用户在 Apple 产品上进行日常活动,并且在每个阶段都负责任地进行开发,并以 Apple 的核心价值观为指导。我们期待很快分享有关我们更广泛的生成模型系列的更多信息,包括语言、扩散和编码模型。
相关文章:
苹果WWDC重磅发布的IOS 18、Apple Intelligence背后的技术分析!
2024年6月10日,在2024年WWDC全球开发者大会上,苹果推出了Apple Intelligence,这是深度集成到iOS 18、iPadOS 18和macOS Sequoia中的个人智能系统。 为了让大模型能在 iPhone 端侧跑,苹果还是做了很多事情的。接下来就跟大家介绍一…...
Linux基础IO【II】
今天,我们接着在上一篇文章的基础上,继续学习基础IO。观看本文章之前,建议先看:Linux基础IO【I】,那,我们就开始吧! 一.文件描述符 1.重新理解文件 文件操作的本质:进程和被打开文件…...
DevExpress学习系列文章
一:DevExpress Installed 二:Application UI 三:Data Management Controls 四:Skins 五:DevExpress 控件和库 系列文章相关代码:DevExpressDemo: DevExpress学习过程中的Demo...
在大数据时代:为何硬盘仍是数据中心存储的核心
在云计算和人工智能应用场景不断涌现的时代背景下,数据集的价值急剧上升,硬盘对于数据中心运营商来说变得比以往任何时候都更为关键。硬盘存储了全球大部分的艾字节(EB)数据,行业分析师预计,在艾字节持续增…...
安装TrinityCore NPCBot(尝试中)
安装TrinityCore NPCBot 基本安装方法 Follow TrinityCore Installation Guide (https://TrinityCore.info/) to install the server firstDownload NPCBots.patch and put it into your TrinityCore folderApply the patch using patch -p1 < NPCBots.patch command (crea…...
Java SE LTS版本商用收费,有那些开源的替代方案?
🚀 Java SE LTS版本商用收费,有那些开源的替代方案? 摘要 Java 对于云服务、大数据、电子商务、支付、欺诈和身份、交易等许多应用程序来说都是至关重要的语言。然而,Oracle 对 Java SE LTS 版本的商用收费政策引发了广泛关注和…...
Win系统 锁屏自动暂停音乐
Windows 的系统锁屏功能可以让我们在离开电脑前时保护我们的系统安全,而如果你正在播放音乐的话,锁屏开启后默认是继续播放的。 这就导致在公共场合下别人很容易能够通过你的电脑屏幕看到你在听什么,这里介绍一种通过 AutoHotkey 实现锁屏自动…...
ffmpeg实现视频播放 ----------- Javacv
什么是Javacv和FFmpeg? Javacv是一个专门为Java开发人员提供的计算机视觉库,它基于FFmpeg和Opencv库,提供了许多用于处理图 像、视频和音频的功能。FFmpeg是一个开源的音视频处理工具集,它提供了用于编码、解码、转换和播放音视频…...
解决更新Android Studio后下载Gradle超时
随着Android Studio的更新,所需要的最低Gradle版本也在变化,这时候构建项目的时候就需要先下载所需的Gradle发行版。对于Gradle构建项目,我们已经知道项目使用的Gradle是在根项目的gradle/wrapper/gradle-wrapper.properties文件中定义的&…...
智能合约漏洞类型
Are We There Yet? Unraveling the State-of-the-Art Smart Contract Fuzzers | Proceedings of the IEEE/ACM 46th International Conference on Software Engineering...
6.7.31 使用端到端训练的基于 EfficientNet 的卷积网络在双视图乳房 X 线摄影中进行乳腺癌诊断
最好的技术之一进行了两次迁移学习:第一种是使用在自然图像上训练的模型来创建“块分类器”,对子图像进行分类;第二种是使用块分类器扫描整个乳房 X 光检查并创建“单视图全图像分类器”。建议进行第三次迁移学习,以获得一个“双视图分类器”,以使用两个乳房 X 光检查视图…...
访问方法(反射)
文章目录 前言一、访问成员方法的方法二、Method类 1.常用方法2.实操展示总结 前言 为了实现在某类中随时可以调用其他类的方法,java.lang.reflect包中提供了Method方法类来实现该效果。每一个Method对象代表着一个方法,利用Methoc对象可以操纵相应的方法…...
探索Excel的隐藏功能:如何求和以zzz开头的列
哈喽,大家好,我是木头左! 步骤一:定位"zzz"开头的列 需要找到所有以"zzz"开头的列。在Excel中,你可以通过以下几种方法来实现: 手动查找:滚动查看列标题,找到…...
git:切换到指定的commit
背景 今天合并人家代码的时候,报冲突了,然后解决完冲突以后,发现有个冲突干错了,但是都已经commit了,所以我就想那就回到这次merge之前的我的分支的commit 解决过程 取消合并 我先查了能否直接取消合并,…...
js之事件监听以及相关案例
这里写目录标题 一级目录二级目录三级目录 Web APIs02一、事件监听1.定义2.调用语法3.事件监听三要素4.事件监听版本 二、事件类型随机点名之事件监听版本案例要求大致思路先获取dom对象理解程序运行 完整代码 一级目录 二级目录 三级目录 Web APIs02 一、事件监听 1.定义…...
pip 安装出现 ERROR: Command errored out with exit status 1: 问题解决
使用pip 安装第三方库,前面在升级pip(使用python.exe -m pip install --upgrade pip)也出现如下错误: ERROR: Command errored out with exit status 1: command: d:\python_3_7_6\python.exe C:\Users\xxxXXXXoooOOOO\AppData…...
图的遍历介绍
概念 特点 无论是进行哪种遍历,均需要通过设置辅助数组标记顶点是否被访问来避免重复访问!!!! 类型 深度优先遍历 可以实现一次遍历访问一个连通图中的所有顶点,只要连通就能继续向下访问。 因此&#x…...
实验二、网络属性设置《计算机网络》
精神状态 be like:边写边崩溃,越写越得劲儿。 目录 一、实验目的: 二、实验内容 三、实验步骤: 四、实验小结 一、实验目的: 掌握 IP 地址、子网掩码等网络属性的设置。 二、实验内容 预备知识: 1、…...
【Python数据魔术】:揭秘类型奥秘,赋能代码创造
文章目录 🚀一.运算符🌈1. 算术运算符🌈2. 身份运算符🌈3. 成员运算符⭐4. 增量运算符⭐5. 比较运算符⭐6. 逻辑运算符 🚀二.可变与不可变🚀三.字符串转义🚀四.编码与解码💥1. 基础使…...
Android Glide loading Bitmap from RESOURCE_DISK_CACHE slow,cost time≈2 seconds+
Android Glide loading Bitmap from RESOURCE_DISK_CACHE slow,cost time≈2 seconds 加载一张宽高约100px多些的小图,是一张相当小的正常图片,loading Bitmap from RESOURCE_DISK_CACHE竟然耗时达到惊人的3秒左右!(打开Glide调试…...
微调技术:人工智能领域的神奇钥匙
在人工智能的浪潮中,深度学习技术凭借其强大的数据处理和学习能力,已成为推动科技进步的重要引擎。然而,深度学习模型的训练往往需要大量的数据和计算资源,这在某些特定场景下成为了限制其发展的瓶颈。为了解决这个问题࿰…...
MyBatis 参数上的处理的细节内容
1. MyBatis 参数上的处理的细节内容 文章目录 1. MyBatis 参数上的处理的细节内容2. MyBatis 参数上的处理3. 准备工作4. 单个(一个)参数4.1 单个(一个)简单类型作为参数4.2 单个(一个) Map集合 作为参数4.3 单个(一个) 实体类POJO作为参数 5. 多个参数5.1 Param注解(命名参数)…...
水帘降温水温
不同环境下的水帘啊,使用水温是不一样的,夏天使用水疗的水有两种,一个是常温的循环水,20~26左右,另外一个呢,就是深井水,重点是啥呢?就是无论我们用哪一种,能够把温度降到…...
kafka如何保证消息不丢失
Kafka发送消息是异步发送的,所以我们不知道消息是否发送成功,所以会可能造成消息丢失。而且Kafka架构是由生产者-服务器端-消费者三种组成部分构成的。要保证消息不丢失,那么主要有三种解决方法。 生产者(producer)端处理 生产者默认发送消息…...
流媒体学习之路(WebRTC)——音频NackTracker优化思路(8)
流媒体学习之路(WebRTC)——音频NackTracker优化思路(8) —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标:可以让大家熟悉各类Qos能力、带宽估计能力,提供每个环节关键参数调节接口并实…...
Java基础面试重点-2
21. JVM是如何处理异常(大概流程)? 如果发生异常,方法会创建一个异常对象(包括:异常名称、异常描述以及异常发生时应用程序的状态),并转交给JVM。创建异常对象,并转交给…...
【活动文章】通用大模型VS垂直大模型,你更青睐哪一方
垂直大模型和通用大模型各有其特定的应用场景和优势。垂直大模型专注于特定领域,提供深度的专业知识和技能,而通用大模型则具备广泛的适用性和强大的泛化能力。以下是一些垂直大模型和通用大模型的例子: 垂直大模型 BERT-Financial…...
记录一个Qt调用插件的问题
问题背景 使用Qt主程序插件的方式开发,即主程序做成一个框,定义好插件接口,然后主程序上通过插件接口与插件进行交互。调试过程中遇到了两个问题,在这里记录一下。 问题1(信号槽定义) 插件与主程序之间&am…...
9.1 Go 接口的定义
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
易于上手的requests
Python中的requests库主要用于发送HTTP请求并获取响应结果。在现代网络编程中,HTTP请求是构建客户端与服务器之间通信的基础。Python作为一种高级编程语言,其丰富的库支持使得它在网络数据处理领域尤为突出。其中,requests库以其简洁、易用的…...
wordpress分类二级域名/免费seo技术教程
Hello!宝宝们,今天是2021.1.22,这里是甜小姐的后花园。岁岁常欢愉,万事皆顺意🎏可是磕磕绊绊就是成长的过程,万事顺意的或许是上辈子拯救过世界的仙女吧🌈🍓当你遇到你觉着特别不公平的事情的那…...
泉州专业建站公司/深圳seo关键词优化
1.自定义指令 在angular中,module下面的directive方法用于创建自定义指令,用法: m1.directive(myTab,function(){ return { restrict : AE, replace : true, templateUrl : , }; }); 大致用法如上,在directive的第二个参数里面ret…...
兰州电商平台网站建设/网站运营维护的基本工作
陕西移动掌上装维app是陕西移动专门为家宽装维人员开发的手机应用,装维人员可以使用这款软件快速的查询光路以及线路,检测宽带故障,快速的进行安装和调试,提升工作效率,需要的朋友可以来西西下载陕西移动掌上装维app进…...
手机网站关闭窗口代码/排名优化seo公司
首先说一下什么是依赖循环,比如:我现在有一个ServiceA需要调用ServiceB的方法,那么ServiceA就依赖于ServiceB,那在ServiceB中再调用ServiceA的方法,就形成了循环依赖。Spring在初始化bean的时候就不知道先初始化哪个be…...
如何判断网站被google k/今日头条网页版入口
//总组件!!!!!!!,这里引入其他组件的 /*组件名应该和文件名一样 */ const App()>{const onClickHandler(event)>{event.preventDefault();//取消默认行为event.stopPropagatio…...
网站营销型/桂平网络推广
各位兄弟,大家好,通过一段时间的学习,我想和大家分享一下科来网络分析系统进行网络故障分析的一般方法,很多网络故障,如网络丢包严重、网速慢、网络***等等,往往会让我们感觉无从下手,这时&…...