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,继续以兼容 Foundation Models 的 API 支持应用选择模型与推理提供方。
版本将本地与托管推理纳入同一套 Swift 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, 让 Swift 应用能够从 Hub 加速下载模型。
也支持托管模型
今年,托管模型支持也有所扩展。 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, 以及 OpenRouter 等其他兼容 OpenAI 的端点, 可通过自定义基础 URL 使用
借助 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。 - LFM2.5 2.6B 来自 Liquid AI,
采用 GGUF 格式,在
Q4_K_M中约占 1.7 GB。 - 适用于 MLX 的 Qwen3.8 27B 来自 Alibaba, 以 4 bit 精度运行时约占 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