跳到正文
Hugging Face Blog·· 4 天前精选AI 评分67

AnyLanguageModel 1.0 发布:Apple 平台本地模型工具迎来一周年更新

AnyLanguageModel 1.0: One Year of Local Models on Apple Platforms

AI 导读

Hugging Face 发布 AnyLanguageModel 1.0,并同步推出 swift-huggingface 1.0 和 swift-xet 1.0,继续以兼容 Foundation Models 的 API 支持应用选择模型与推理提供方。

推荐理由

版本将本地与托管推理纳入同一套 Swift API,并加入工具调用、引导式生成和图片支持,展示了其面向应用开发者的扩展方向。

正文 · AI 翻译

去年 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