当前位置: 首页 > 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 的核心价值观为指导。我们期待很快分享有关我们更广泛的生成模型系列的更多信息,包括语言、扩散和编码模型。

相关文章:

  • [消息队列 Kafka] Kafka 架构组件及其特性(二)Producer原理
  • 【通信协议-RTCM】RTCM通信协议常用英文缩写词汇对照表
  • CCNA 0基础入门
  • AOSP12隐藏首页搜索框----隐藏google 搜索栏
  • 高考之后第一张大流量卡应该怎么选?
  • vue3 递归循环展示下级盒子
  • GLM4-Chat-1M(号称可以输入200万字)的长文本测试结果(推理时间,推理效果)
  • 主成分分析学习
  • 仓库风格-系统架构师(九)
  • Mysql分组如何使用
  • GoogleDeepMind联合发布医学领域大语言模型论文技术讲解
  • GO语言 环境搭建
  • Android native层的线程分析(C++),以及堆栈打印调试
  • Solidity智能合约事件(event)
  • VS2019专业版 C#和MFC安装
  • 【知识碎片】第三方登录弹窗效果
  • 07.Android之多媒体问题
  • Babel配置的不完全指南
  • CAP 一致性协议及应用解析
  • CentOS 7 修改主机名
  • css系列之关于字体的事
  • Cumulo 的 ClojureScript 模块已经成型
  • JAVA之继承和多态
  • leetcode98. Validate Binary Search Tree
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • SpringBoot几种定时任务的实现方式
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 多线程 start 和 run 方法到底有什么区别?
  • 仿天猫超市收藏抛物线动画工具库
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 力扣(LeetCode)357
  • 学习Vue.js的五个小例子
  • No resource identifier found for attribute,RxJava之zip操作符
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • #QT(QCharts绘制曲线)
  • #QT(TCP网络编程-服务端)
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (Ruby)Ubuntu12.04安装Rails环境
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (全注解开发)学习Spring-MVC的第三天
  • (十六)串口UART
  • (原创)可支持最大高度的NestedScrollView
  • (转)程序员技术练级攻略
  • ..回顾17,展望18
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .Net 基于MiniExcel的导入功能接口示例
  • .net通用权限框架B/S (三)--MODEL层(2)
  • @GetMapping和@RequestMapping的区别
  • @Mapper作用
  • @property @synthesize @dynamic 及相关属性作用探究
  • [ 数据结构 - C++] AVL树原理及实现
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [AIGC] CompletableFuture的重要方法有哪些?
  • [C++] Boost智能指针——boost::scoped_ptr(使用及原理分析)