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(待…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

