测试与发布证据

macOS 上的 Apple Foundation Models:验证可用性与本地执行

帮助 Mac 开发者验证具体系统和语言下的框架状态,并确认任务是否真正在本地运行。

审核状态: 内容已校验;中文稿供用户审核 · 2026-09-24 · Fact IDs: APPLE-FM-01, BENCHMARK-01, PRIVACY-01

直接回答

macOS 上的 Apple Foundation Models 应在运行时检查,而不能仅凭框架名称或项目编译成功就认为设备可用。Apple 文档将 SystemLanguageModel 描述为 Apple Intelligence 使用的端侧文本模型,但实际可用性可能取决于设备资格、地区、系统设置、模型准备状态和请求语种。框架提供了可用状态与语种检查接口,应用应根据结果展示就绪、不可用或可重试状态。某项功能还可能通过 Private Cloud Compute 或其他服务路线处理,因此“使用 Foundation Models”本身不能证明特定请求留在 Mac 上。首先记录准确的 Mac 和系统构建、应用配置、地区、选择的模型路径和请求语言;若产品承诺本地运行,再在断网环境测试固定任务,并保留错误与回退记录。本文不发布 Mac 兼容列表或速度结果,只提供验证具体配置的检查清单。

场景:为 Mac 笔记应用添加本地摘要功能

开发者为 Mac 应用增加了一个短笔记摘要操作,并希望不把笔记内容发到服务器。开发机可以编译该框架,但用户可能使用不同的设备资格状态、地区、语言设置或模型就绪状态。

决策

在运行时检查模型可用状态和请求语言支持,明确选择本地系统模型路线,并为模型不可用时设计合理状态。用合成的隐私安全样例断网测试任务;若要切换云端路线,必须作为独立路径说明并征得用户同意。

预期结果

应用能告诉用户本地任务当前已就绪、暂不可用还是可以重试。公开支持说明限定到已测的系统版本、设备状态、地区、语言和任务,而不是仅凭 API 编译通过。

需要收集的证据

只有将以下证据与同一模型文件和测试运行关联起来,结论才可复核:

  • Mac、macOS 和地区配置
  • SystemLanguageModel 可用状态与语言检查
  • 离线任务、回退和失败证据

发布结论只对所记录的配置和验收集有效;扩大适用范围需要更多记录。

实施流程

  1. 固定系统版本和设备环境. 记录准确的 macOS 构建版本、Mac 型号系列、地区和语言设置、应用版本,以及构建所用 Xcode 与 SDK。不要把一台 Mac 的成功结果推广到所有 Mac,也不要将 API 引入版本当成完整的支持设备清单。运行时检查应以 Apple 当前可用性文档为准。
  2. 运行时检查 SystemLanguageModel 是否可用. 只有读取模型的运行时可用状态后,才能把本地操作显示为就绪。分别处理文档中描述的不可用原因,例如设备不符合资格、系统功能未启用或模型尚未准备好。代码能够通过 SDK 编译,只证明构建时可访问该 API,不证明用户当前系统可以开始推理。
  3. 核实请求语种,而不只看系统主语言. 针对任务实际请求的语言,使用框架提供的 locale 支持接口或受支持语言列表。应用单独配置的语言可能与 Mac 主语言不同。对于相似语种间的回退,应按文档记录并测试,不要据此推断所有方言或翻译方向都能达到可接受结果。
  4. 明确区分本地和远程路由. 追踪实际任务使用的是 SystemLanguageModel、Private Cloud Compute 还是第三方提供方。如果产品要求隐私或断网可用,模型不可用时不得静默切换路线。应显示本地不可用状态,或在另行说明并征得同意后提供远程路线。
  5. 用固定验收集评估任务质量. 使用保护隐私的合成笔记和有版本记录的预期属性,检查遗漏、虚构细节、格式错误、不支持语种、取消和恢复行为。模型可用性检查只说明系统表示可以接收请求,并不证明该任务达到了应用的质量或安全要求。
  6. 断网复测并限定支持结论. 在准确目标配置上关闭网络,从用户输入到最终可见结果执行完整任务。记录初始化依赖、所有失败以及是否尝试备用路线。写明测试过的 Mac、系统版本、地区、语种和任务;没有证据时不要泛称“所有 Mac 都能用”或发布速度结论。

让每个阶段的状态都可观察。失败信息应指出阶段、模型、运行时和恢复动作,同时避免记录用户私密内容。

验收标准

  • 记录设备、macOS 构建、地区、语言设置、SDK 和应用版本。
  • 分别检查运行时模型可用状态和请求语言支持,并处理各自失败。
  • 能够区分本地 SystemLanguageModel、Private Cloud Compute 和其他服务路径。
  • 在准确配置上测试任务质量与断网完成情况,并覆盖不可用和失败状态。

决策对照表

维度选择或证据解读方式
框架 API 可编译所用 SDK 在构建期提供 API只证明构建时可调用,不证明运行时模型已就绪。
系统模型可用读取当前设备与地区的运行时可用状态表明系统是否准备接受请求,但仍不代表任务质量。
语种受支持针对请求 locale 检查 supportsLocale 或 supportedLanguages只支持语言能力检查;具体任务输出仍需评估。
任务已验证离线断网完成固定验收集并记录执行路线仅支持对该配置作出范围明确的本地运行声明。

需要避免的失败模式

  • 把 API 可见性当成模型就绪
  • 用一个语种或一台 Mac 推广到所有用户
  • 隐藏 Private Cloud Compute 或其他服务路由

还要避免静默回退、版本未固定、缺少取消处理,以及把不同配置的结果混在一起下结论。失败运行也应与成功记录一并保存。

最小复现记录

层级记录内容
设备厂商、型号、芯片、内存档位、操作系统版本
软件应用版本和 Git 提交号
模型系列、变体、版本、格式、文件长度、摘要、量化方式
运行时名称、版本、请求后端及实际后端证据
工作负载样例版本、输入摘要、提示词摘要、输出策略
结果完成、失败、取消、回退及保护隐私的诊断信息

发布检查表

  • ☐ 主要搜索问题已回答,且没有未经支持的数字。
  • ☐ 所有模型文件和运行时版本均已固定。
  • ☐ 代表性任务和失败处理策略均有说明。
  • ☐ 生命周期、取消、清理和回退均已测试。
  • ☐ 用户内容与网络边界均有说明。
  • ☐ 结论只适用于被记录的配置。
  • ☐ 新增测试结果时链接到原始方法或证据。

来源与相关证据

中文部署与排错专题见。奇连 AI 端侧专题。

常见问题

使用 Apple Foundation Models 就能保证 Mac 请求留在本机吗?

不能仅凭框架名称作此结论。Apple 将 SystemLanguageModel 记录为端侧模型,同时也介绍了 Private Cloud Compute 和其他模型提供方。应追踪准确请求的执行路线;如本地执行是要求,则进行断网测试并明确任何远程回退。

为什么应用能编译 Foundation Models,却显示模型不可用?

构建时 API 可用与运行时模型就绪是两件事。Apple 文档中的运行时状态可能反映设备资格、Apple Intelligence 设置、地区或模型尚未准备好。应用应处理这些状态,而不是把编译通过当作运行能力证明。

怎样检查某种语言是否受支持?

对用户请求的确切语种,使用 Apple 文档提供的 locale 检查或 supportedLanguages 列表,并继续测试真实任务输出。语言检查只能证明框架报告了相关支持,不代表每条提示或翻译方向都已经达到某个质量水平。

一台 Mac 上的测试能证明所有 Mac 都支持吗?

不能。结果只适用于记录的设备状态、macOS 版本、地区、语种、应用配置和任务。模型可用性也会随系统版本及用户设置变化,因此应在代表性目标环境中测试并准确说明支持边界。