要点速览
- fm 随 macOS 27 预装。在终端输入
fm即可列出它的命令,例如respond、chat和schema(Apple)。 - 默认使用 macOS 自带的设备端模型。加上
--model pcc后,提示会改为发送到苹果大得多的私密云计算(Private Cloud Compute)模型,该模型有使用限制。 - 设备端模型需要支持 Apple Intelligence 的 Mac(M1 或更新机型)。在配备 M3 或更新芯片且内存不少于 12GB 的 Mac 上,Apple Intelligence 最多占用 14GB 存储空间,其他 Mac 最多 8GB(Apple)。
- 它的上下文窗口很小:苹果文档写的是 4,096 个 token,WWDC26 的一个代码示例显示 8,192 个。处理长文档或更难的任务,用 Mac GPU 运行的开放模型能走得更远:看看你的 Mac 能运行什么。
1fm 是什么
fm 是苹果为 Apple Foundation Models(Apple Intelligence 背后的模型)提供的命令行工具。苹果在 WWDC26 的相关讲座中说:“Starting from macOS 27, this command line tool comes pre-installed on your Mac”;打开终端输入 fm 即可(Apple)。苹果把它定位为脚本和自动化工具,“without writing a line of app code”(Apple)。
它可以调用两个模型。默认使用“the on-device model that comes with macOS, and that's always available”。它也能使用私密云计算上的 Apple Foundation Model,苹果称之为“a much bigger model than the on-device model”,“will perform better on complex problems”,并且“has usage limits”(Apple)。设备端模型在你的 Mac 上运行,无需联网(Apple);发往私密云计算的提示则会传到苹果的服务器。
fm 是苹果的软件,与 MLX Network 无关。MLX Network 是独立项目,与苹果没有关联。
2命令一览
以下是苹果在 WWDC26 讲座中展示的命令和选项(Apple、Apple):
| 命令或选项 | 作用 |
|---|---|
fm | 列出可用的命令。 |
fm respond "…" | 向模型发送提示并打印回答,适合脚本和一次性提问。 |
fm chat | 在终端里进行交互式对话。对话中用 /model 切换到私密云计算模型,用 /save 保存对话以便之后继续。 |
fm schema object | 创建一个 schema,让 fm respond 返回结构化 JSON。 |
--model pcc | 把提示发送到私密云计算模型,而不是设备端模型。 |
--image | 在提示中加入一张图片。 |
--schema | 让回答遵循用 fm schema object 创建的 schema。 |
--instructions | 在提示之外单独给模型指令。 |
--help | 显示所有选项。 |
fm 就能列出全部。苹果在讲座中给出的示例:
fm respond "Provide a basic regex in Swift to parse an email address"
fm respond "Provide a comprehensive regex in Swift to parse an email address" --model pcc
fm schema object --name AppsIdentified --string app_names --array > schema.json
fm respond "What apps are the user actively using in this screenshot?" \
--image Screenshot.png --model pcc --schema schema.json
# {"app_names": ["Messages", "Mail", "Calendar"]}
fm respond --helpfm serve、fm available 和 fm license 等命令。苹果的 WWDC26 讲座和我们读过的 Foundation Models 文档都没有介绍它们,所以本指南也不介绍。在你的 Mac 上运行 fm,看看你的版本有哪些命令。3需要什么,要下载多少
- macOS 27。 fm 随它一起提供(Apple)。
- 支持 Apple Intelligence 的 Mac。 Apple Foundation Models 需要它(Apple);在 macOS 27 上,任何配备 M1 或更新芯片的 Mac 都可以(Apple)。
- 受支持的语言。 Apple Intelligence 要求设备语言和 Siri 语言设为同一种受支持的语言,目前也不能在中国大陆购买的设备上使用(Apple)。
- 可用的磁盘空间,供 Apple Intelligence 使用,见下表。
| Mac | macOS 27 上 Apple Intelligence 占用的存储空间 |
|---|---|
| 配备 M3 或更新芯片、统一内存至少 12GB | 最多 14GB |
| 其他支持 Apple Intelligence 的 Mac(M1、M2,或内存少于 12GB) | 最多 8GB |
打开 Apple Intelligence 后,模型可能会有一段时间不可用:苹果的框架会报告它尚未就绪,“because it's downloading or because of other system reasons”(Apple)。
对于使用同一个设备端模型的 Python SDK,苹果列出的要求是 macOS 26.0 或更高版本、已接受许可协议的 Xcode 26.0 或更高版本,以及 Python 3.10 或更高版本(Apple),并且要在 Apple 芯片 Mac 上运行(Apple)。
4设备端模型擅长什么,到哪里为止
苹果说得很直白:设备端模型擅长各种文本生成任务,比如摘要、实体提取、文本和图像理解、润色、游戏对话、生成创意内容等;需要更强的推理能力和更大的上下文时,请使用私密云计算或任何服务器端模型提供商(Apple)。
- 上下文窗口很小。 苹果文档写明设备端模型有“a context window of 4096 tokens per session”(Apple),并列出设备端 4K、私密云计算 32K(Apple)。在 WWDC26 关于 macOS 27 的讲座中,苹果的代码示例打印出的
contextSize是 8,192(Apple)。提示、指令和回答共用这个窗口。 - 能装下多少。 英文中一个 token 通常是三到四个字符(Apple),所以 8,192 个 token 大约是输入和输出合计 25,000 到 33,000 个英文字符:几页内容,而不是一本书或一个代码库。
- 简短、简单的提示。 “An on-device model has fewer parameters and a small context window”,所以苹果要求提示“short and succinct”,并说设备端模型“have limited reasoning abilities”:把难的任务拆成几步(Apple)。
- 它会随 macOS 变化。 苹果通过系统更新来更新模型,macOS 27 带来了新版本(Apple)。更新之后,脚本的结果可能会变。
苹果在这些页面上没有给出设备端模型的大小,所以我们也不写。
5在脚本和代码中使用 fm
fm respond 会把回答打印出来,所以可以放进任何 shell 脚本。加上 --schema,回答就是 JSON,可以交给 jq 处理。苹果在讲座里就用这种方法整理一个项目文件夹:让模型判断哪些文件是终稿、哪些是草稿,再复制和移动它们。以下是苹果示例的精简版(Apple):
fm schema object --name "TriagedFileList" \
--string 'final_files' --array \
--string 'draft_files' --array > /tmp/schema.json
output=$(fm respond \
--instructions "Return the latest files, then separately all draft files." \
"This is the list of all files:\n\n${files_list}" \
--schema /tmp/schema.json
)
echo "${output}" | jq -r '.draft_files[]'Python 可以用苹果的 Foundation Models SDK,pip install apple_fm_sdk,同样是设备端模型,支持引导式生成和工具调用(Apple)。苹果的示例:
import apple_fm_sdk as fm
model = fm.SystemLanguageModel()
is_available, reason = model.is_available()
if is_available:
session = fm.LanguageModelSession(model=model)
response = await session.respond(prompt="Hello!")
print(response)很多 App 和编程智能体需要的是本地端口上的 OpenAI 或 Anthropic 风格 API。如果你需要这个,mlx_lm.server 可以在 localhost:8080 以 OpenAI 风格的 API 提供你选择的开放模型(mlx-lm),LM Studio 的本地服务器则支持 OpenAI 和 Anthropic 格式(LM Studio)。更多选择:在 Mac 上运行大模型的最佳应用。
6什么时候换成开放模型
短任务用 fm 就好:总结一条笔记、给文件起名、从文本里提取字段、问个简单问题。它已经在 Mac 上,无需设置。当输入装不进几千个 token、任务需要更强的推理或写代码、你想自己挑模型,或者某个工具需要 API 时,就该用开放模型了。
开放模型在 Mac 的 GPU 上运行,能装下什么取决于统一内存。我们 Compare 页面的计算默认按 GPU 可用约 75% 来算,并为上下文留出空间:
| Mac 内存 | GPU 可用 | 运行流畅的例子 | 所需内存 |
|---|---|---|---|
| 8GB | 约 6GB | 4-bit 的 Llama 3.1 8B | 4.5GB,含上下文 6.0GB |
| 16GB | 约 12GB | 8-bit 的 Llama 3.1 8B,6-bit 的 Qwen3.5 9B | 8.5GB 和 7.3GB,含上下文 10.0GB 和 8.8GB |
| 24GB | 约 18GB | gpt-oss-20b,原生 4.25-bit | 13.8GB,含上下文 15.3GB |
| 32GB | 约 24GB | 4-bit 的 Qwen3.6 35B A3B | 19.7GB,含上下文 21.3GB |
这些模型的模型卡列出了长得多的上下文窗口:Llama 3.1 8B 为 128K 个 token,Qwen3.6 35B A3B 为 262,144 个,不过长上下文需要的内存超出上面计算的余量。不确定你的 Mac 有多少内存?在苹果菜单的“关于本机”里查看,然后看看按芯片分类的 Mac。
mlx-lm 是运行它们的一种方式:Apple 自己的 MLX 工具可以从 Hugging Face 下载 MLX 模型,在终端里和它们聊天,并提供上面提到的本地 API。LM Studio 和 Ollama 在 App 里做同样的事(在 Mac 上运行大模型的最佳应用)。你不用 Mac 时,MLX Node 可以在你设定的限制内为 MLX Network 运行 AI 任务,并为经过验证的工作赚取 MLX 代币。MLX 代币可能贬值,请阅读 风险说明。
7常见问题
- macOS 的 fm 命令免费吗?
- 它随 macOS 27 预装,默认使用 macOS 自带的设备端模型。更大的私密云计算模型有使用限制(Apple)。
- fm 能离线使用吗?
- 用设备端模型可以:苹果说它无需联网即可工作(Apple)。不过要先下载 Apple Intelligence,而
--model pcc或fm chat里的/model会使用苹果的服务器。 - fm 能接受多长的提示?
- 提示、指令和回答共用一个上下文窗口:苹果文档写的是 4,096 个 token,苹果针对 macOS 27 的 WWDC26 示例显示 8,192 个(Apple)。英文中大约三到四个字符算一个 token。
- fm 提供 OpenAI 兼容的 API 吗?
- 苹果的 WWDC26 讲座和我们读过的 Foundation Models 文档都没有介绍服务器模式,所以我们无法确认它如何工作。如果需要有文档的本地 API,
mlx_lm.server会在 localhost:8080 以 OpenAI 风格提供开放模型,LM Studio 则支持 OpenAI 和 Anthropic 格式。 - 哪些 Mac 可以使用 fm?
- 运行 macOS 27 且支持 Apple Intelligence 的 Mac:任何配备 M1 或更新芯片的 Mac,设为受支持的语言,并有最多 14GB(M3 或更新芯片且内存不少于 12GB)或最多 8GB 的可用存储空间(Apple)。
来源
- Appledeveloper.apple.com
- Applesupport.apple.com
- Appledeveloper.apple.com
- Appledeveloper.apple.com
- Appledeveloper.apple.com
- Appledeveloper.apple.com
- Applegithub.com
- Appledeveloper.apple.com
- Appledeveloper.apple.com
- Appledeveloper.apple.com
- mlx-lmgithub.com
- LM Studiolmstudio.ai
- Llama 3.1 8Bhuggingface.co
- Qwen3.6 35B A3Bhuggingface.co
- mlx-lmgithub.com