Apple WWDC2024 AI相关内容

285 阅读12分钟

官方视频

主发布会视频:WWDC24

所有会场视频,重点关注AI相关:all-videos

Apple 官方开发者QA

developer.apple.com/forums/

Apple 官方论文

machinelearning.apple.com/research

Apple Intelligence

Introducing Apple’s On-Device and Server Foundation Models

一句话总结:所有设备(Mac, iPhone, iPad) 默认自带参数为~3B 的LLM,对不同的task应用(微调的) fine-tuned LoRA Adapters,来处理相应的问题。

搭载网络引擎的iPhone 15 Pro手机端3B模型,采用分组查询注意力技术(grouped-query-attention)、激活和嵌入量化(quantization)等高性能大模型技术。

iPhone 15 Pro实现0.6毫秒的快速首token响应时间(time-to-first-token),30 tokens / s

❌ 服务器模型的规模和详细信息尚未公开。(服务器模型则大约是 GPT-3.5 级别)

image.png

根据需求动态加载、缓存和交换LoRA Adapter模型。

手机端模型拥有49K的词汇量,而服务器端模型则达到100K。

应用了拒绝采样(Rejection Sampling)、下降策略优化(descent policy optimization)以及 leave-one-out,以增强RLHF(基于人类反馈的强化学习)的性能。

采用合成数据(synthetic data)技术,以支持摘要等任务。

对于设备端推理,我们使用low-bit palletization,这是一项关键的优化技术,可满足必要的内存、功率和性能要求。为了保持模型质量,我们使用 LoRA 适配器开发了一个新框架,该框架采用混合 2 位和 4 位配置策略(平均每个权重 3.5 位),以实现与未压缩模型相同的准确度。

此外,我们使用交互式模型延迟和功率分析工具Talaria还未开放使用)来更好地指导每个操作的比特率选择。我们还利用激活量化和嵌入量化,并开发了一种方法,以便在我们的神经引擎上实现高效的键值 (KV) 缓存更新。

每个生产用例经过750个评估样本的严格测试。

该模型似乎专为英语设计,目前对其它语言大支持有待评估。

利用Apple的Apple's AXLearn framework框架(基于JAX)和FSP,在TPU和GPU上进行训练

⚡ 3B+ Adapter在摘要生成任务上超越了Phi-3 mini。

3B+ Apapter在IFEval评估中达到了78.7%的高分,超越了Mistral 7B;服务器模型的表现与GPT-4-Turbo相当。

image.png

image.png

Fine-tuned LoRA Adapters

LoRA(低秩适配矩阵)是深度学习领域的一种技术,它允许对大型语言模型进行高效和有针对性的微调。

传统的微调(fine-tuning):传统微调在特定任务或数据集上更新所有模型参数。这可能在计算上非常昂贵,并可能导致灾难性遗忘,即模型忘记了其预训练的知识。

LoRA Adapter是全面微调的一种轻量级和高效的替代方案。LoRA不是更新所有模型参数,而是在大型语言模型中通过训练低秩矩阵,针对少量特定任务来训练参数。这些额外的参数在训练时,预训练的模型参数保持冻结。

LoRA微调过程比全面微调要高效得多,因为它只更新少量参数。预训练的模型参数保持冻结,这有助于保留模型的通用语言理解能力。LoRA可以轻松添加到各种大型语言模型中,使它们成为一种灵活和适应性强的微调方法。

image.png LoRA Adapters 叠加在通用基础模型之上,是一系列小型模型权重集合。它们可以动态加载和切换,使模型能够即时专注于当前的任务。Apple Intelligence包含了广泛的LoRA Adapter集合,都针对特定的特征进行了精细调整。这是一种高效的方式来扩展基础模型的功能。

Apple Intelligence 架构

官方视频: Platforms State of the Union

章节

Apple Intelligence 架构图:

image.png

执行流程:

  • 内置语义索引->从各个app组织个人信息
  • App Intents Toolbox->了解app的能力->代表用户使用这些能力
  • 用户提出一个请求->Apple Intelligence通过->{ ->设备内置的智能堆栈

->Private Cloud Compute } 处理请求

  • 语义索引->在相关的个人语境中落实每个请求->使用App Intents Toolbox 为用户执行操作

image.png

Private Cloud Compute

目前PCC 测试版还没有推出

对于需要使用更大的基础模型对复杂数据进行推理的高级功能,Apple创建了私有云计算 (PCC)。PCC 采用定制的 Apple 芯片和专为隐私设计的强化操作系统构建。采用端到端加密,对于不适合使用端到端加密的云服务,Apple会以临时方式或使用不相关的随机标识符来处理用户数据,以掩盖用户的身份。

Apple设计私有云计算核心要求:

  1. 对个人用户数据进行无状态计算。私有云计算必须将其收到的个人用户数据专门用于满足用户的请求。这些数据绝不能提供给除用户以外的任何人,即使是 Apple 员工,即使在主动处理期间也不行。在将响应返回给用户后,不得保留这些数据,包括通过日志记录或调试。换句话说,我们希望有一种强大的无状态数据处理形式,其中个人数据不会在 PCC 系统中留下任何痕迹。

  2. 可执行的保证。安全和隐私保证在技术上完全可执行时是最强的,这意味着必须能够约束和分析对整个私有云计算系统的保证至关重要的所有组件。使用我们之前的示例,很难推断 TLS 终止负载平衡器在调试会话期间会对用户数据执行什么操作。因此,PCC 不能依赖此类外部组件来实现其核心安全和隐私保证。同样,收集服务器指标和错误日志等操作要求必须通过不破坏隐私保护的机制来支持。

  3. 无特权运行时访问。私有云计算不得包含特权接口,这些接口可使 Apple 站点可靠性工作人员绕过 PCC 隐私保证,即使在解决中断或其他严重事件时也是如此。这也意味着 PCC 不得支持可在运行时扩大特权访问范围的机制,例如通过加载其他软件。

  4. 非目标性。攻击者应该无法在不尝试广泛入侵整个 PCC 系统的情况下尝试入侵属于特定、目标私有云计算用户的个人数据。即使是那些能够尝试对供应链中的 PCC 节点进行物理攻击或尝试恶意访问 PCC 数据中心的极其老练的攻击者,这一点也必须适用。换句话说,有限的 PCC 入侵不得允许攻击者将特定用户的请求引导到被入侵的节点;针对用户应该需要进行可能被检测到的广泛攻击。为了更直观地理解这一点,将其与传统的云服务设计进行对比,在传统的云服务设计中,每个应用程序服务器都配备了整个应用程序数据库的数据库凭据,因此入侵单个应用程序服务器就足以访问任何用户的数据,即使该用户与被入侵的应用程序服务器没有任何活动会话。

  5. 可验证的透明度。安全研究人员需要能够高度自信地验证我们对私有云计算的隐私和安全保证是否符合我们的公开承诺。我们早先已经要求我们的保证是可执行的。那么,假设安全研究人员有足够的系统访问权限,他们就能够验证这些保证。但最后一个要求,即可验证的透明度,更进一步,消除了假设:安全研究人员必须能够验证私有云计算的安全和隐私保证,并且他们必须能够验证在 PCC 生产环境中运行的软件是否与他们在验证保证时检查的软件相同。

在 Apple 平台上探索机器学习

官方视频:在 Apple 平台上探索机器学习

开始简要了解 Apple 平台上的机器学习框架。无论你是准备实现首个 ML 模型,还是 ML 方面的专家,我们都将提供相应的指导,帮你根据 App 的具体需求选择合适的框架。

章节

CoreML底层两个架构:

MPS Graph:GPU

BNNS Graph:CPU

支持:PyTorch、TensorFlow、JAX、MLX训练

MLX designed for apple silicon 量化、加速,看起来暂时只开放支持CPU、GPU

github.com/ml-explore/…

ml-explore.github.io/mlx/build/h…

使用MLX加速 examples

github.com/ml-explore/…

使用 Core ML 和 MLX 在 Apple Silicon 上运行Diffusion模型,包含将PyTorch模型转成CoreML模型

基于 Apple GPU 训练机器学习和 AI 模型

官方视频:基于 Apple GPU 训练机器学习和 AI 模型

了解如何借助适用于 PyTorch、JAX 和 TensorFlow 的 Metal 工具,在 Apple 芯片上训练模型。充分利用新的注意力操作和量化支持,提升设备端 Transformer 模型性能。

利用 Core ML 在设备端部署机器学习和 AI 模型

官方视频:利用 Core ML 在设备端部署机器学习和 AI 模型

了解在通过 Core ML 转换及运行机器学习和 AI 模型时,可以借助哪些新方式来优化速度表现和内存利用率。我们会介绍有关模型表示、性能洞察信息、执行以及模型拼接的新选项,你可以搭配使用这些选项,打造引人入胜又注重隐私保护的设备端体验。

章节

在 CPU 上助力实现实时 ML 推理

官方视频:在 CPU 上助力实现实时 ML 推理

探索如何使用 BNNSGraph 加快机器学习模型在 CPU 上的执行。我们将展示如何使用 BNNSGraph 在 CPU 上编译和执行机器学习模型,并介绍它通过哪些方式为音频或信号处理模型提供实时保证,例如避免运行时内存分配,以及采用单线程运行。

章节

利用 Metal 加快机器学习

官方视频: 利用 Metal 加快机器学习

了解如何利用 Metal Performance Shaders Graph 中的新功能来加快你的机器学习 Transformer 模型。我们还将介绍如何提升自己模型的计算带宽和质量,并利用全新的 MPSGraph 视图直观呈现模型。

章节

Filtering Images with MPSGraph FFT Operations

Metal Performance Shaders Graph

MPSGraph

MPS Graph 可以直接插入到Metal Command Queue 中

MPS KV cache

Xcode 提供新可视化工具:MPS Graph viewer

mpsgraphtool工具(mac命令行自带 /usr/bin/mpsgraphtool),可以把各种模型文件转换成.mpsgraphpackage格式

mpsgraphtool convert -coremlpackage Mistral7B.mlpackage -packageName Mistral7B

还没有实验成功,可能需要更新mac系统

MPS Graph viewer

测试可以用,可以查看模型内部详细结构图

Metal Performance Shaders

Metal Performance Shaders

新版本像是提供了一些数组、向量、矩阵等量化接口

Xcode16

官方视频:Xcode 基础知识Xcode16

新特性

官方视频:Xcode 16 的新功能

Predictive Code Completion (测试版已上):专门针对Swift、Apple SDK训练,运行在Mac本地可以在离线状态下工作

Swift Assist(今年晚些时候上线):运行在云端,可以回答有关Coding问题,可以帮你写代码

CoreML模型性能分析

官方视频:

.mlpackage格式模型,可拖入Xcode 16查看模型属性。Performance功能可以选择Apple **Silicon设备测试模型性能。

分析堆内存

官方视频:分析堆内存

深入探索 App 动态内存的基础:堆!了解如何利用 Instruments 和 Xcode 来衡量、分析并修复常见的堆问题。我们还将介绍一些相关的技巧和推荐做法,帮助你为自己的 App 诊断瞬时增长、持久增长以及内存泄露问题。

章节

了解 Create ML 组件

官方视频:了解 Create ML 组件

Create ML 使为图像分类、物体检测、声音分类、手势分类、动作分类、表格数据回归等构建自定义机器学习模型变得更加简单。借助 Create ML 组件框架,您可以进一步自定义底层任务并优化您的模型。我们将探索组成此类任务的特征提取器、转换器和估算器,并向您介绍如何将其与其他组件和预处理步骤组合起来,以便为图像回归等概念构建自定义任务。 要了解有关创建复杂可自定任务的更多信息,我们建议您观看 WWDC22 的“利用 Create ML 组件构建高级模型”。