当前位置: 首页 > news >正文

苹果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版本商用收费,有那些开源的替代方案?

&#x1f680; Java SE LTS版本商用收费&#xff0c;有那些开源的替代方案&#xff1f; 摘要 Java 对于云服务、大数据、电子商务、支付、欺诈和身份、交易等许多应用程序来说都是至关重要的语言。然而&#xff0c;Oracle 对 Java SE LTS 版本的商用收费政策引发了广泛关注和…...

Win系统 锁屏自动暂停音乐

Windows 的系统锁屏功能可以让我们在离开电脑前时保护我们的系统安全&#xff0c;而如果你正在播放音乐的话&#xff0c;锁屏开启后默认是继续播放的。 这就导致在公共场合下别人很容易能够通过你的电脑屏幕看到你在听什么&#xff0c;这里介绍一种通过 AutoHotkey 实现锁屏自动…...

ffmpeg实现视频播放 ----------- Javacv

什么是Javacv和FFmpeg&#xff1f; Javacv是一个专门为Java开发人员提供的计算机视觉库&#xff0c;它基于FFmpeg和Opencv库&#xff0c;提供了许多用于处理图 像、视频和音频的功能。FFmpeg是一个开源的音视频处理工具集&#xff0c;它提供了用于编码、解码、转换和播放音视频…...

解决更新Android Studio后下载Gradle超时

随着Android Studio的更新&#xff0c;所需要的最低Gradle版本也在变化&#xff0c;这时候构建项目的时候就需要先下载所需的Gradle发行版。对于Gradle构建项目&#xff0c;我们已经知道项目使用的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.实操展示总结 前言 为了实现在某类中随时可以调用其他类的方法&#xff0c;java.lang.reflect包中提供了Method方法类来实现该效果。每一个Method对象代表着一个方法&#xff0c;利用Methoc对象可以操纵相应的方法…...

探索Excel的隐藏功能:如何求和以zzz开头的列

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 步骤一&#xff1a;定位"zzz"开头的列 需要找到所有以"zzz"开头的列。在Excel中&#xff0c;你可以通过以下几种方法来实现&#xff1a; 手动查找&#xff1a;滚动查看列标题&#xff0c;找到…...

git:切换到指定的commit

背景 今天合并人家代码的时候&#xff0c;报冲突了&#xff0c;然后解决完冲突以后&#xff0c;发现有个冲突干错了&#xff0c;但是都已经commit了&#xff0c;所以我就想那就回到这次merge之前的我的分支的commit 解决过程 取消合并 我先查了能否直接取消合并&#xff0c…...

js之事件监听以及相关案例

这里写目录标题 一级目录二级目录三级目录 Web APIs02一、事件监听1.定义2.调用语法3.事件监听三要素4.事件监听版本 二、事件类型随机点名之事件监听版本案例要求大致思路先获取dom对象理解程序运行 完整代码 一级目录 二级目录 三级目录 Web APIs02 一、事件监听 1.定义…...

pip 安装出现 ERROR: Command errored out with exit status 1: 问题解决

使用pip 安装第三方库&#xff0c;前面在升级pip&#xff08;使用python.exe -m pip install --upgrade pip&#xff09;也出现如下错误&#xff1a; ERROR: Command errored out with exit status 1: command: d:\python_3_7_6\python.exe C:\Users\xxxXXXXoooOOOO\AppData…...

图的遍历介绍

概念 特点 无论是进行哪种遍历&#xff0c;均需要通过设置辅助数组标记顶点是否被访问来避免重复访问&#xff01;&#xff01;&#xff01;&#xff01; 类型 深度优先遍历 可以实现一次遍历访问一个连通图中的所有顶点&#xff0c;只要连通就能继续向下访问。 因此&#x…...

实验二、网络属性设置《计算机网络》

精神状态 be like&#xff1a;边写边崩溃&#xff0c;越写越得劲儿。 目录 一、实验目的&#xff1a; 二、实验内容 三、实验步骤&#xff1a; 四、实验小结 一、实验目的&#xff1a; 掌握 IP 地址、子网掩码等网络属性的设置。 二、实验内容 预备知识&#xff1a; 1、…...

【Python数据魔术】:揭秘类型奥秘,赋能代码创造

文章目录 &#x1f680;一.运算符&#x1f308;1. 算术运算符&#x1f308;2. 身份运算符&#x1f308;3. 成员运算符⭐4. 增量运算符⭐5. 比较运算符⭐6. 逻辑运算符 &#x1f680;二.可变与不可变&#x1f680;三.字符串转义&#x1f680;四.编码与解码&#x1f4a5;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多些的小图&#xff0c;是一张相当小的正常图片&#xff0c;loading Bitmap from RESOURCE_DISK_CACHE竟然耗时达到惊人的3秒左右&#xff01;&#xff08;打开Glide调试…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...