返回 文章 apply CMS 文章

AnyLanguageModel 1.0 发布:在 Apple 平台上灵活选用本地与托管模型

AnyLanguageModel 1.0 让开发者用同一套 Swift API 在 Apple 设备上自由切换本地与云端语言模型。

AnyLanguageModelAppleSwift本地模型
成长分 / 100 72 综合收获、行动、留存与影响

AnyLanguageModel 1.0 发布:在 Apple 平台上灵活选用本地与托管模型
为什么值得读了解如何通过简单修改 import 语句,将现有 Foundation Models 代码迁移到 AnyLanguageModel,从而支持多种模型和提供商。

掌握 AnyLanguageModel 1.0 的新特性,包括工具调用、引导生成、图像支持以及对托管模型(如 OpenAI、Anthropic、Gemini 等)的扩展支持。

关键洞察
  1. AnyLanguageModel 是 Foundation Models 框架的即插即用替代品,只需将 `import FoundationModels` 改为 `import AnyLanguageModel`,即可使用相同的会话代码与系统模型、本地开源模型(通过 llama.cpp、MLX、Core ML)以及托管提供商配合工作。
  2. 1.0 版本新增了工具调用、引导生成(包括嵌套 @Generable 类型和数组)和图像支持,这些功能在所有提供商上均可用。
  3. 托管模型支持范围扩大,包括 OpenAI Chat Completions 和 Responses API、Open Responses、Anthropic Messages API(带自适应思考)、Google Gemini API、Ollama、Private Cloud Compute 以及 Hugging Face Inference Providers 等。
转成行动

深入阅读

正文与原文对照

原文保真覆盖:全文原文字符:6477

去年十一月,我们在这个博客上介绍了 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,搭配可在设备上运行的多种模型选择。即将推出:做决策的模型,以及倾听的模型。

链接