Platforms State of the Union (ASL)
Essentials 进阶 20m

平台技术全景:Apple Intelligence 架构、Swift 6 与工具链更新

Platforms State of the Union (ASL)

2024年6月10日

在 Apple 官方观看视频

一句话判断

Platforms State of the Union 是开发者视角的 WWDC 重头戏——Apple Intelligence 的端侧模型架构(Adapter 机制 + 4-bit 量化 + Neural Engine 优化)、Private Cloud Compute 的安全设计、Swift 6 的并发安全迁移、以及 Xcode 16 的预测代码补全,这些都会直接影响你接下来的开发工作。

这场 Session 讲了什么

开场就切入 Apple Intelligence 的技术架构。端侧基础模型是一个大语言模型,Apple 用 Adapter(适配器)机制让一个基础模型服务多个任务——每个 Adapter 是一组小权重,叠加到基础模型上实现专业化。模型量化到平均不到 4 bit/参数,配合推测解码、上下文剪枝和分组查询注意力优化 Neural Engine 推理效率。图像生成用的是扩散模型,同样用 Adapter 处理不同风格和 Genmoji。

需要更大模型时,Private Cloud Compute 接手。它的安全架构基于 Apple Silicon:Secure Enclave 保护密钥,Secure Boot 验证系统签名,Trusted Execution Monitor 确保只运行签名代码。每次请求设备与云端建立端到端加密连接,数据在返回后不保留。Apple 承诺公开每个生产构建的虚拟镜像供安全研究者审查。

工具链方面,Xcode 16 引入了预测代码补全(用端侧模型驱动),Swift 6 正式发布并完成并发安全模型,新的 Testing 框架替代 XCTest。visionOS 2 带来 TabletopKit、企业 API 和空间媒体 API。Controls API 让第三方 App 可以提供控制中心小组件。

值得深挖的点

Apple Intelligence 的 Adapter 机制与工程权衡

Adapter 是今年 Apple Intelligence 架构中最值得关注的工程决策。传统做法是为每个任务(总结、校对、回复等)微调出独立的模型,但这意味着每个模型都要塞进设备存储。Apple 的方案是保留一个基础模型,为每个任务训练一组小权重(Adapter),运行时动态加载。

这背后有几个关键权衡。首先是延迟:加载 Adapter 需要时间,但 Adapter 体积小(相比完整模型),加载开销可接受。其次是精度:Adapter 微调的效果通常不如全参数微调,但 Apple 认为在设备端这个精度损失是值得的——换来的是存储效率和灵活性。量化到 4 bit 进一步压缩了模型体积,配合 Neural Engine 优化让推理在移动设备上可行。

这个架构对开发者的启示是:当你需要端侧 AI 能力时,不一定非要塞一个大模型。考虑用小模型 + Adapter 的方式,既节省空间又能服务多个任务。

Private Cloud Compute 的信任模型

PCC 的信任模型非常值得研究。传统云服务的信任建立在”我相信服务商不会偷看我的数据”上。PCC 的信任建立在”技术上不可能偷看”上——没有持久存储(重启后数据消失)、没有远程 Shell 访问、所有代码经过签名验证。

更激进的是可验证性承诺。Apple 会公开每个 PCC 构建的虚拟镜像,安全研究者可以检查是否有后门。用户的设备在发送请求前会通过密码学证明验证 PCC 集群运行的是被公开审查过的构建版本。如果 PCC 运行的是未公开的构建,设备会拒绝发送数据。

这种”可验证的隐私”在云 AI 领域几乎没有先例。对于处理敏感用户数据的 App 开发者来说,PCC 提供了一个有说服力的后端选项。

代码片段

App Intents 与 Apple Intelligence 的集成

import AppIntents

// 定义一个可以被 Siri 和 Apple Intelligence 发现的操作
struct SendReportIntent: AppIntent {
    static var title: LocalizedStringResource = "发送报告"
    static var description = IntentDescription("将当前内容作为报告发送给指定联系人")
    
    @Parameter(title: "收件人")
    var recipient: PersonEntity
    
    @Parameter(title: "报告内容")
    var content: String
    
    func perform() async throws -> some IntentResult & ReturnsValue<Bool> {
        // 执行发送逻辑
        try await ReportService.send(to: recipient, content: content)
        return .result(value: true)
    }
    
    // 提供快捷方式用于 Spotlight 和 Shortcuts App
    static var parameterSummary: some ParameterSummary {
        Summary("发送报告给 \(\.$recipient)")
    }
}

场景:Apple Intelligence 理解”帮我把这个报告发给张三”时,通过 App Intents 匹配到你的 App 的发送功能并自动调用。

坑点titledescription 是 Apple Intelligence 理解你 App 功能的主要依据,写得越具体越容易被正确匹配。

Swift Testing 框架

import Testing

@Test("餐车销量预测功能")
func testSalesForecast() async throws {
    let forecaster = SalesForecaster()
    let historicalData = try loadTestData()
    
    let predictions = try await forecaster.predict(
        from: historicalData,
        horizon: 7
    )
    
    // 验证预测结果的基本合理性
    #expect(predictions.count == 7)
    #expect(predictions.allSatisfy { $0.quantity >= 0 })
}

场景:用新的 Swift Testing 框架替代 XCTest。@Test 宏替代了 XCTestCase 方法,#expect 替代了各种 XCTAssert 函数。

控制中心控件

import WidgetKit
import AppIntents

// 提供一个控制中心可用的控件
struct SmartLightControl: ControlWidget {
    var body: some ControlWidgetConfiguration {
        StaticConfiguration(
            kind: "com.example.smart-light",
            provider: SmartLightProvider()
        ) { value in
            ControlWidgetToggle(
                "客厅灯",
                isOn: value.isOn,
                action: ToggleLightIntent()
            )
            .tint(.yellow)
        }
    }
}

场景:智能家居 App 在控制中心提供灯开关控件,用户无需打开 App 就能控制。

最佳实践

  • 为你的 App 添加全面的 App Intents,这是 Apple Intelligence 发现和调用你 App 的入口
  • Swift 6 迁移可以逐步进行:先解决并发相关的 warning,再启用严格并发检查
  • Xcode 16 的预测代码补全在本地运行,不会把代码发送到云端
  • Testing 框架和 XCTest 可以共存,不需要一次性迁移
  • PCC 处理需要更大模型的 AI 任务时,你的 App 通过标准 API 调用,不需要关心底层的安全细节

还有什么值得关注

  • Xcode 16 的代码补全用的是端侧优化过的模型,不依赖网络
  • visionOS 2 的 TabletopKit 降低了桌面协作类 App 的开发门槛
  • Swift 6 的正式发布意味着 strict concurrency 不再是实验性功能
  • Controls API 同时支持控制中心和锁屏,是 App 触达用户的新通道
WWDC 2024