AnyLanguageModel 1.0 发布:Apple 平台本地模型支持满一年
AnyLanguageModel 1.0: One Year of Local Models on Apple Platforms
Hugging Face 发布 AnyLanguageModel 1.0,同时推出 swift-huggingface 1.0 和 swift-xet 1.0。
原文梳理了 AnyLanguageModel 1.0 在本地与托管模型间统一 API 的能力变化,可帮助开发者判断迁移成本。
去年11月,我们在这个博客上介绍了 AnyLanguageModel:它是 Apple Foundation Models 框架的直接替代品,让你可以选择应用所使用的模型和提供商。我们听到一些应用开发者对本地模型感到好奇,但并不总是清楚该如何上手。他们也不想承担支持多个推理提供商所带来的额外复杂性。AnyLanguageModel 正是源于这些反馈。
本地推理和托管推理各有优势,二者在构建新一代智能应用中都有一席之地。共享的 API 让为每项任务选择合适的模型变得更加容易。
一年过去、历经数十个版本之后,AnyLanguageModel 1.0 正式发布,同时发布的还有 swift-huggingface 1.0 和 swift-xet 1.0。
以下是变化之处,以及接下来的计划:
可直接替换的兼容 API
AnyLanguageModel 的核心理念始终未变:使用 Foundation Models API,搭配适合你应用的模型。要开始使用,只需修改你的 import 语句:
- import FoundationModels
+ import AnyLanguageModel
之后,同一段会话代码即可用于系统模型、通过 llama.cpp、MLX 和 Core ML 使用的开放权重模型,以及下面列出的托管提供商。
过去一年里,我们新增了几项重要功能:
- 工具调用适用于所有提供商。
- 引导式生成同样适用于所有提供商,包括嵌套的
@Generable类型及其数组。 - 图像支持让你可以使用 Foundation Models 27 的语法将图像附加到提示中,包括在 iOS、macOS 和 visionOS 27 上使用系统模型时。
在 OS 27 上,AnyLanguageModel 还可用于任何符合 Foundation Models 的 LanguageModel 协议的模型,包括 Core AI 模型。
除了 AnyLanguageModel,我们还构建了 swift-huggingface 和 swift-xet,将 Hub 的加速模型下载功能带给 Swift 应用。
托管模型同样支持
今年对托管模型的支持也有所扩展。AnyLanguageModel 现在支持:
- OpenAI 的 Chat Completions 和 Responses API
- Open Responses,适用于任何具有兼容端点的提供商
- Anthropic 的 Messages API,支持自适应思考和 effort 选项
- Google 的 Gemini API
- Ollama
- OS 27 上的 Private Cloud Compute
- Hugging Face Inference Providers,以及通过自定义 base URL 使用的其他 OpenAI 兼容端点,例如 OpenRouter
借助 Inference Providers,你可以用同一段会话代码使用那些大到无法在设备上运行的开放权重模型:
let model = OpenAILanguageModel(
baseURL: URL(string: "https://router.huggingface.co/v1/")!,
apiKey: ProcessInfo.processInfo.environment["HF_TOKEN"]!,
model: "openai/gpt-oss-120b",
apiVariant: .chatCompletions
)
托管提供商与本地模型拥有相同的功能:引导式生成、带流式传输的工具调用,以及响应中的 token 用量。
推理内容现在也成为对话记录的一部分。当你切换提供商时,如果新提供商无法重放推理块,这些推理块会自动从请求中省略。
API 密钥来自闭包而非字符串,因此你的应用可以从自己的服务器获取短期令牌。README 说明了何时让用户自带密钥,以及何时通过代理路由请求。
AnyLanguageModel 也可在 Linux 上运行,因此同一份代码可以在服务器上使用。
开放权重模型变得更强了
在我们让本地模型更易用的同时,模型本身也变得更加强大,使得小模型成为一个不错的起点。以下是目前 Hub 上下载量最高的一些模型:
- 来自 Google 的 Gemma 4 E2B,GGUF 格式,在
Q4_0下约 3.4 GB,采用量化感知训练。 - 来自 Liquid AI 的 LFM2.5 2.6B,
GGUF 格式,在
Q4_K_M处约 1.7 GB。 - 来自阿里巴巴的 Qwen3.8 27B for MLX, 4 位量化下约 16 GB。
前两个模型可以在 iPhone 上运行, 而 Qwen3.8 27B 可在内存为 32 GB 或以上的 Mac 上运行。 选择 MLX 模型只需一行:
let model = MLXLanguageModel(modelId: "mlx-community/Qwen3.8-27B-4bit")
如果你手头有四台顶配 Mac Studio, 来自 Z.ai 的 GLM-5.3 在 BF16 下约需 1.5 TB。 对我们其他人来说,可以通过 Inference Providers 使用它。
升级到 1.0
dependencies: [
.package(
url: "https://github.com/huggingface/AnyLanguageModel",
from: "1.0.0",
traits: ["MLX"]
)
]
如果你要升级现有应用,请参阅 AnyLanguageModel、 swift-huggingface 和 swift-xet 发行说明中的迁移指南, 以帮助更新你的代码。
社区反馈和贡献塑造了我们的多项主要功能。 感谢所有贡献者 帮助 AnyLanguageModel 对应用开发者更加实用。
下一步
语言模型已被证明是将智能构建到产品中的强大工具。 它们也是开发者可以使用的众多模型类型之一。 我们很高兴将同样的方法带到更多能力上: 熟悉的 Swift API,并可在设备上运行多种模型供选择。 即将推出:能够决策的模型,以及能够聆听的模型。
链接
来源:Hugging Face Blog · huggingface.co