Hugging Face来源发布时间

AnyLanguageModel 1.0:Apple 平台上本地模型的一年

去年 11 月,我们在这篇博客上介绍了 AnyLanguageModel :它是 Apple 的 Foundation Models 框架的直接替代品, 让你可以自由选择应用所使用的模型和提供商。 我们收到了一些应用开发者的反馈,他们对本地模型很感兴趣, 但不确定如何入手。

去年 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
  • Private Cloud Compute,在 OS 27 上
  • 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 上下载量最高的一些模型:

  • Gemma 4 E2B 来自 Google, GGUF 格式,约 3.4 GB,位于 Q4_0 ,采用了量化感知训练。
  • LFM2.5 2.6B 来自 Liquid AI, GGUF 格式,约 1.7 GB,位于 Q4_K_M.
  • Qwen3.8 27B,MLX 格式 来自阿里巴巴, 4 比特约 16 GB。

前两个模型可以装进 iPhone, 而 Qwen3.8 27B 可在拥有 32 GB 或更多内存的 Mac 上运行。 选择 MLX 模型只需一行代码:

let model = MLXLanguageModel(modelId: "mlx-community/Qwen3.8-27B-4bit")

如果你手头有四台满配的 Mac Studio, GLM-5.3 来自 Z.ai,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

内容说明

原始发布及相关权利归来源方。

机器翻译 · 请以原文为准