Transformers 新增了在 Apple Silicon 上运行量化 GGUF 模型的支持

18 十月 20267 视图

文章介绍了如何将 llama.cpp 的 GGUF 格式集成到 Transformers:在 Mac 上进行本地推理、通过库的 API 加载模型,以及启动兼容 OpenAI 的服务器。文章以 Qwen3.5-4B 为例,展示了量化级别的选择如何影响权重大小和内存需求。

Transformers 新增了在 Apple Silicon 上运行量化 GGUF 模型的支持

发生了哪些变化

2026年9月22日,Hugging Face 宣布通过 Transformers 库熟悉的 API 支持 GGUF 模型。初期重点是 Apple Silicon 上的本地推理,首先支持 Qwen3.5 架构。

ggml-org、Unsloth、LM Studio Community 和 bartowski 已在 Hub 上提供量化 GGUF 检查点。这些模型已被下载数百万次。

量化如何影响模型大小

GGUF 由 llama.cpp 团队开发。这种格式将权重和元数据(包括分词器信息以及可选的聊天模板)整合到一个文件中。

量化会牺牲一定精度来减少内存占用。例如,Q4_K_M 主要使用 4 位权重,同时为敏感张量保留更高精度。

来源中给出了 Unsloth 的 Qwen3.5-4B 的以下大小:

版本文件大小
BF168.42 GB
Q6_K3.53 GB
Q5_K_M3.14 GB
Q4_K_M2.74 GB

来源建议从 Q4_K_M 开始;如果有更多内存,可以尝试 Q5_K_M 或 Q6_K。质量与量化之间的权衡取决于模型和任务。

本地运行所需条件

运行需要一台搭载 Apple Silicon 的 Mac,以及与已发布的 ggml-quantization kernels 构建版本兼容的 PyTorch 版本。来源指出,通常支持最新的两个 PyTorch 版本。

此外,还需要:

  • 最新版 Transformers——目前需要使用 main 分支,直到下一个版本发布;
  • 兼容版本的 kernels 库。

实际操作时,建议在下载模型前检查已安装的 PyTorch 与 kernels 是否兼容。如果没有兼容的量化 kernel,加载器会对模型进行反量化,这会占用更多内存。

Transformers 如何加载 GGUF

通过 from_pretrained 加载模型:在 gguf_file 参数中指定 Hub 上的模型 ID 和文件名。例如,Qwen3.5-4B 位于仓库 unsloth/Qwen3.5-4B-GGUF,文件名为 Qwen3.5-4B-Q4_K_M.gguf。

如果权重在 Metal 上保持打包状态,Transformers 会自动加载兼容的 ggml/Metal layer kernels。Attention 使用 ggml-org/ggml-attn。

如果 attention kernel 不可用,模型会在发出警告后切换到 sdpa。也可以通过 attn_implementation="sdpa" 显式指定此模式。

如何通过 API 连接客户端

可以使用 Transformers 的 serve 命令运行 GGUF 检查点。它会提供兼容 OpenAI 的 API,模型参数的格式为 <model_id>:<filename>.gguf。

参数示例:unsloth/Qwen3.5-4B-GGUF:Qwen3.5-4B-Q4_K_M.gguf。可以将 Jan 或 Pi 作为兼容 OpenAI 的客户端连接到服务器。

连接参数:

  • Base URL:http://localhost:8000/v1;
  • Model ID:unsloth/Qwen3.5-4B-GGUF:Qwen3.5-4B-Q4_K_M.gguf。

模型在 Mac 上运行,客户端则提供对话界面。

常问问题

Transformers 新增了在 Apple Silicon 上运行量化 GGUF 模型的支持