Apple 智能基础语言模型
Introducing Apple’s On-Device and Server Foundation Models
technical details June 10, 2024
在2024年的全球开发者大会上,苹果推出了Apple Intelligence,这是一个深度集成到iOS 18、iPadOS 18和macOS Sequoia中的个人智能系统。Apple Intelligence由多个高性能生成模型组成,专门为用户的日常任务提供支持,并可以根据当前活动进行实时调整。内置于Apple Intelligence中的基础模型经过精细调整,用于改善用户体验,例如撰写和完善文本、优先处理和总结通知、创建与家人和朋友对话时有趣的图像以及简化跨应用程序交互所需的应用内操作。在接下来的概述中,
本文将详细介绍其中两个模型——一个拥有约30亿参数的设备上语言模型以及一个更大且运行在苹果自研芯片服务器上并可通过私有云计算使用的服务器端语言模型——它们如何被构建和适应以高效、准确且负责任地执行特定任务。这两个基础模型是苹果创建用于支持用户和开发者而形成更大生成模型家族中一部分;该家族还包括编码模型(用于向Xcode添加智能功能)以及扩散模型(帮助用户在消息应用程序等场景下进行视觉表达)。我们期待很快分享关于这一更广泛模型集合的更多信息。

全面详细的技术说明:Apple 的设备端与服务器端基础模型
在 2024 年全球开发者大会(WWDC24)上,Apple 引入了 Apple Intelligence,一个深度集成于 iOS 18、iPadOS 18 和 macOS Sequoia 的个人智能系统。Apple Intelligence 由多个高性能的生成模型组成,这些模型专注于用户的日常任务,并能根据当前活动快速适应。本文档将详细介绍 Apple 的设备端(约 30 亿参数)和服务器端(基于 Private Cloud Compute)语言模型,探讨它们的构建、优化及在多种任务中的表现。
模型架构与训练
-
训练框架与数据
Apple 的基础模型基于开源的 AXLearn 框架进行训练,该框架建立在 JAX 和 XLA 之上,支持在各种训练硬件和云平台上高效扩展,包括 TPU 和 GPU。模型训练数据主要来自公开数据集和 AppleBot 爬取的网页内容,后者是 Apple 的网络爬虫工具。所有使用的内容均经过数据使用者控制(Data Usage Control)处理,确保数据合法合规。
在数据处理阶段,Apple 过滤掉个人身份信息和低质量内容,如信用卡号码、社会安全号码和脏话。同时,通过数据提取、去重和模型分类器应用,选择高质量文档进行训练。此外,Apple 还利用人工标注和合成数据混合的策略,以提升模型训练效果。
-
预训练与后训练优化
预训练阶段,Apple 使用并行处理技术,包括数据并行、张量并行、序列并行和全分片数据并行(FSDP),以提高训练效率。后训练阶段,则引入了两个关键算法:拒绝采样微调算法和教师委员会,以及从人类反馈中学习的强化学习算法(RLHF),这些算法显著提高了模型遵循指令的质量。
apple_inteligence
模型优化
-
设备端优化
为了在资源受限的设备上高效运行,Apple 对设备端模型进行了多项优化。首先,采用低比特量化技术,如低比特调色板化和激活量化,以减少内存和计算需求。对于关键组件,如 LoRA 适配器,Apple 采用混合 2 位和 4 位配置策略,平均每个权重为 3.7 比特,几乎保持了与未压缩模型相同的精度。
此外,Apple 使用了分组查询注意力机制(grouped-query-attention)和共享输入输出词汇嵌入表,进一步减少内存占用和推理成本。设备端模型的词汇量被设置为 49K,适用于大多数日常应用场景。
-
服务器端优化
服务器端模型则部署在 Apple 硅服务器上,利用 Private Cloud Compute 提供高性能计算能力。尽管服务器端模型不受设备资源限制,但 Apple 仍对其进行了优化,如使用更大的词汇量(100K)以支持更广泛的语言和技术术语。同时,通过共享嵌入表和查询注意力机制,保持高效推理。
任务适配与评估
-
适配器机制
Apple 通过 LoRA 适配器为不同用户任务进行微调,如文本摘要、优先级排序和通知总结等。每个适配器针对具体任务需求进行训练,以确保模型输出满足用户期望。例如,在邮件摘要任务中,适配器会根据邮件内容生成简洁明了的摘要,同时保持关键信息的完整性。
-
性能评估
Apple 采用多种评估方法来衡量模型性能,包括自动评估和人类评估。自动评估通过标准基准测试(如 IFEval)衡量模型的指令遵循能力和写作能力。人类评估则通过真实用户场景下的使用反馈,确保模型输出的有用性和无害性。
在摘要任务中,Apple 的设备端和服务器端模型均表现出色,生成的摘要在准确性、相关性和有用性方面优于其他可比模型。特别是在处理敏感内容和对抗性样本时,Apple 的模型展现出较高的鲁棒性和安全性。





责任性 AI 原则
Apple 在开发 AI 工具及其底层模型时,始终坚持责任性 AI 原则。这些原则包括:
- 赋能用户:识别 AI 可以负责任地用于创建满足用户特定需求的工具。
- 代表用户:构建能够真实反映全球用户的深度个性化产品,避免刻板印象和系统性偏见。
- 设计需谨慎:在设计、模型训练、功能开发和质量评估的每个阶段采取预防措施,防止 AI 工具被误用或造成潜在伤害。
- 保护隐私:通过强大的设备端处理和创新的基础设施(如 Private Cloud Compute)保护用户隐私。
Apple 的设备端和服务器端基础模型作为 Apple Intelligence 的核心组成部分,展示了强大的生成能力和广泛的应用潜力。通过持续的技术创新和优化,Apple 致力于为用户提供更加智能、高效和安全的个人智能体验。未来,Apple 计划分享更多关于其生成模型家族的信息,包括语言模型、扩散模型和编码模型等,进一步推动 AI 技术的发展和应用。
相关文章:
Apple 智能基础语言模型
Introducing Apple’s On-Device and Server Foundation Models technical details June 10, 2024 在2024年的全球开发者大会上,苹果推出了Apple Intelligence,这是一个深度集成到iOS 18、iPadOS 18和macOS Sequoia中的个人智能系统。Apple Intelligen…...
GreptimeDB融资数百万美元; Oracle提供免费长期MySQL; 谷歌大模型支持云数据库问题洞察
重要更新 1. 开源时序数据库 GreptimeDB宣布完成数百万美元的新一轮融资。GreptimeDB是一款Rust 语言编写的时序数据库,具有分布式,开源,云原生,兼容性强等特点,帮助企业实时读写、处理和分析时序数据的同时࿰…...
Java中的抽象类与接口
1. 抽象类 1.1 抽象类概念 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的, 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 比如&…...
云计算概念以及与云服务的区别
目录 1.云的概念 1.1 什么是云? 1.2 云计算的类型 1.3 云计算的服务模式 1.4 云计算的优势 2.云计算和云服务的区别 2.1 定义 2.2 范围 2.3 角色 2.5 举例 2.6使用者 3.总结 1.云的概念 1.1 什么是云? “云”在计算机科学和信息技术领域通常…...
Netty技术全解析:LengthFieldBaseFrameDecoder类深度解析
❃博主首页 : 「码到三十五」 ,同名公众号 :「码到三十五」,wx号 : 「liwu0213」 ☠博主专栏 : <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 :…...
深入InnoDB核心:揭秘B+树在数据库索引中的高效应用
目录 一、索引页与数据行的紧密关联 (一)数据页的双向链表结构 (二)记录行的单向链表结构 二、未创建索引情况 (一)无索引下的单页查找过程 以主键为搜索条件 以非主键列为搜索条件 (二…...
c++(面向对象的性质:抽象,封装,继承,多态)
ctrla全选,ctrli对齐 ctrl/ 一起注释 ctrlz 退回上一步 一些基础的内容: cout:输出流对象 cin:输入流对象 输入一个i和一个j,然后输出ij的和: 值不变的原因: 值传递,a和i是…...
java基础学习笔记1
Java编程规范 命名风格 1. 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例:_name / __name / $name / name_ / name$ / name__ 2. 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直…...
[VBA]使用VBA在Excel中 操作 形状shape 对象
excel已关闭地图插件,对于想做 地图可视化 的,用形状来操作是一种办法,就是要自行找到合适的 地图形状,修改形状颜色等就可以用于 可视化展示不同省市销量、人口等数据。 引言 在Excel中,通过VBA(Visual Basic for Applications)可以极大地增强数据可视化和报告自动化…...
Apache POI 实现 Excel 表格下载
这里以苍穹外卖中数据导出功能为例,记录下 Apache POI 导出 Excel 表格的过程。 首先在 pom.xml 中导入相关依赖 <!-- poi 用于操作 excel 表格--> <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId&…...
大华嵌入式面试题大全及参考答案(2万字长文)
目录 在C语言中,static 关键字有哪些主要用途? static 修饰的全局变量与普通全局变量有什么区别? 为什么要在嵌入式系统中使用 static 修饰函数? 虚函数与纯虚函数了解么? strcpy 给你加结束符吗,还是要自己加? select 的作用是什么,它和 epoll 的区别? map 与…...
C语言——查漏补缺
前言 本篇博客主要记录一些C语言的遗漏点,完成查漏补缺的工作,如果读者感兴趣,可以看看下面的内容。都是一些小点,下面进入正文部分。 1. 字符汇聚 编写代码,演示多个字符从两端移动,向中间汇聚 #inclu…...
Python | Leetcode Python题解之第328题奇偶链表
题目: 题解: class Solution:def oddEvenList(self, head: ListNode) -> ListNode:if not head:return headevenHead head.nextodd, even head, evenHeadwhile even and even.next:odd.next even.nextodd odd.nexteven.next odd.nexteven even…...
吉瑞外卖笔记
1.项目整体搭建 这里用到的是springboot3mybatisplus 1.1数据库搭建 整体表搭建,这里我是直接用的老师给的数据库 1.2maven项目搭建 依赖 这两个jar包第一次用,记录一下 fastjson json处理,可将对象转化为json形式 可将对象中的属性…...
Perl套接字编程指南:构建网络通信应用
摘要 Perl是一种功能强大的脚本语言,广泛应用于系统管理、网络编程等多种场景。Perl的套接字编程能力允许开发者创建客户端和服务器端的网络应用。本文将详细介绍Perl中套接字的使用,包括基础概念、API的使用,以及构建简单客户端和服务器的示…...
达梦数据库(十) -------- mybatis-plus 整合达梦时,自动生成的 sql 语句报错
一丶【问题描述】: mybatis-plus 整合达梦时,应用系统项目的 sql 语句中包含数据库关键字,导致 mybatis-plus 自动生成的 sql 语句会报错,如下图所示: 二丶【问题解决】: 问题原因:mybatis-pl…...
停止项目大小调整,开始搜索层自动缩放!
作者:来自 Elastic Matteo Piergiovanni,John Verwolf 我们新的 serverless 产品的一个关键方面是允许用户部署和使用 Elastic,而无需管理底层项目节点。为了实现这一点,我们开发了搜索层自动扩展,这是一种根据我们将在…...
VScode的环境编译器选择
按快捷键 Ctrl Shift P 选择即可...
在Linux中通过docker安装和配置supervisor进程守护
先在Linux中安装docker,然后在docker中安装appnode,并进行docker网络端口映射。接着登录appnode面板安装supervisor。 supervisor用于守护进程,在进程意外终止后将其重启。 supervisor没有监听内部程序和自动重启的功能。 docker安装 第一…...
CanMV-K230自学笔记系列(不定期更新)
笔记内容主要为CanMV-K230的学习过程,目前陆续有新的k230开发板 CanMV-K230 V1.0 V1.1(已上市) CanMV-K230-01Studio(刚上市) DshanPI-CanMV K230(刚上市) BPI-CanMV-K230D-Zero(待…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...
渗透实战PortSwigger Labs指南:自定义标签XSS和SVG XSS利用
阻止除自定义标签之外的所有标签 先输入一些标签测试,说是全部标签都被禁了 除了自定义的 自定义<my-tag onmouseoveralert(xss)> <my-tag idx onfocusalert(document.cookie) tabindex1> onfocus 当元素获得焦点时(如通过点击或键盘导航&…...

