- 大模型
- 本地部署
- 人工智能
【免费下载链接】K2-Horizon-MoVA-36B-A4B-bf16
想在 Mac 上本地运行一个36B 参数的 MoE 大模型,还要支持512K 超长上下文?K2-Horizon-MoVA-36B-A4B-bf16 就是这个目标的答案:它是 IFM 稀疏 K2-Horizon 模型的MLX bf16 无量化转换版,专为 Apple Silicon 打造,配合mlx-lm即可在 Mac Studio / MacBook Pro 上开箱推理,无需任何 GPU 驱动折腾。本文带你从硬件要求到第一条回复,完整跑通它。
🧠 先搞懂:K2-Horizon MoVA 是什么
K2-Horizon-MoVA 是一款"稀疏"大模型,名字里藏着两个关键设计:
| 概念 | 含义 | 本模型参数 |
|---|---|---|
| MoE(专家混合) | 总参数很大,但每个 token 只激活一小部分"专家" | 36B 总参数,每 token 仅激活4B |
| MoVA(Values 混合) | 注意力中的 Value 也来自路由专家,64 个值专家中每次选 4 个 | mova_num_experts: 64 |
用大白话说:模型"身体"很大(374 亿+参数),但每次思考只动用其中一小撮,所以推理速度能接近小模型。而max_position_embeddings: 524288意味着它原生支持524288(512K)token的上下文,相当于一次性吞下几十万字的文档。
这些关键参数都可以在仓库的 config.json 中直接看到,例如num_experts: 100、num_experts_per_tok: 8、vocab_size: 250624等。
📦 仓库里有什么
这个仓库不是训练代码库,而是一个可以直接下载的模型仓库,内容非常精简:
- 15 个 model-00001-of-00015.safetensors 权重分片(共约 70 GB,bf16 无量化,与官方原始权重逐位一致)
- 权重索引文件:model.safetensors.index.json
- MLX 模型实现:k2_horizon.py —— 这是本仓库的核心亮点,下文细说
- 对话模板:chat_template.jinja(支持工具调用、推理强度调节)
- 词表与配置:tokenizer.json、tokenizer_config.json、generation_config.json
💡为什么仓库里要带模型代码?因为官方mlx-lm尚未内置k2_horizon架构,本仓库直接随附了移植好的 k2_horizon.py,通过 config.json 中的"model_file": "k2_horizon.py"字段让 mlx-lm 自动加载。也就是说,现有的 mlx-lm 版本即可原样运行,无需等待架构合并。
这份 MLX 移植实现经过了严格验证:在 fp32 下与官方 PyTorch 实现逐层对比,全部 48 层相对误差 ≤ 1e-6,且逐 token 预测完全一致(详见 k2_horizon.py 顶部的说明注释)。
🖥️ 硬件要求:你的 Mac 够格吗
bf16 是无量化版本,"个头"最大,硬件门槛也最高:
| 项目 | 数值 |
|---|---|
| 磁盘占用 | 约70 GB |
| 短提示词下峰值内存 | 75 GB |
| 所需机型 | 128 GB 统一内存的 Mac(如 M4 Max 128GB) |
| 官方实测速度 | Mac Studio M4 Max 128GB 上35.3 tok/s |
两点补充:
- 75 GB 峰值低于 128 GB 机型的 Metal 默认工作集上限,不需要修改
sysctl iogpu.wired_limit_mb; - KV cache 约192 KB/token(128K token 约需 24 GB),所以 128 GB 内存跑满 512K 长上下文会很紧张——如果你重度依赖超长上下文,建议改用 8-bit 版本(约 40 GB 峰值)。
🚀 三步跑通:Apple Silicon 部署 K2-Horizon
第 1 步:安装 mlx-lm
只需一条命令(建议先升级 Python 环境至 3.9+,并确保已安装最新版 Xcode Command Line Tools):
pip install -U mlx-lm第 2 步:获取模型
模型会自动从 Hugging Face 仓库mlx-community/K2-Horizon-MoVA-36B-A4B-bf16拉取;如果你拿到的是本地仓库副本,也可以克隆后直接指向本地路径:
git clone https://gitcode.com/hf_mirrors/mlx-community/K2-Horizon-MoVA-36B-A4B-bf16⚠️ 注意:bf16 版本约 70 GB,下载前确认磁盘空间,且模型首次加载会自动读入内存。
第 3 步:生成第一条回复
mlx_lm.generate --model mlx-community/K2-Horizon-MoVA-36B-A4B-bf16 \ --trust-remote-code \ --prompt "Explain mixture-of-experts in two sentences." \ --max-tokens 2048务必加--trust-remote-code:因为它会执行仓库内附带的 k2_horizon.py(mlx-lm 0.31.3 可省略,但新版必须)。这个文件会在你机器上运行,介意的话先读一遍再跑——它只有几百行,逻辑清晰。
想在 Python 里调用也很简单,核心就三步:
from mlx_lm import load, generate model, tokenizer = load("mlx-community/K2-Horizon-MoVA-36B-A4B-bf16", trust_remote_code=True) messages = [{"role": "user", "content": "Explain mixture-of-experts in two sentences."}] prompt = tokenizer.apply_chat_template(messages, add_generation_prompt=True) print(generate(model, tokenizer, prompt, max_tokens=2048))mlx_lm.chat和mlx_lm.server同样支持--trust-remote-code参数,可以分别开启交互式聊天和 OpenAI 风格的本地 API 服务。
💭 它先"思考"再回答:推理机制与 reasoning_effort
K2-Horizon 属于推理型模型:正式回答前,它会先在<ifm|think> … </ifm|think>标签内展开思考。两个实用建议:
max_tokens留足余量:思考过程也占用 token 预算,设太小会"话说到一半"被截断;- 调节思考强度:通过 chat_template.jinja 的
reasoning_effort参数控制,支持"high"(默认)、"medium"、"low"三档。简单问答用low能显著提速:
prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True, reasoning_effort="low" )⚠️ 已知小坑:mlx_lm.server目前还不认识<ifm|think>标签,思考内容会混在content字段返回(位于</ifm|think>之前),而不是独立的reasoning字段;工具调用格式也尚未被解析。日常聊天不受影响,做 API 集成的话记得在客户端做清洗。
⚖️ bf16 / 8-bit / 4-bit:该选哪个版本?
mlx-community 同时提供了三个精度版本,官方在 M4 Max 128GB 上的对比数据如下:
| bf16(本仓库) | 8-bit | 4-bit | |
|---|---|---|---|
| 每权重位数 | 16 | 8.5 | 5.6 |
| 磁盘 | 70 GB | 37 GB | 25 GB |
| 峰值内存 | 75.0 GB | 39.9 GB | 26.5 GB |
| WikiText-2 困惑度 | 11.368 | 11.372(+0.04%) | 11.508(+1.2%) |
| 生成速度 | 35.3 tok/s | 51.2 tok/s | 59.6 tok/s |
选择建议:
- 追求极致质量 + 有 128 GB 大内存→ 本仓库 bf16 版,精度零损失;
- 64 GB 内存 / 想要更快速度→ 8-bit 版,困惑度损失几乎可忽略;
- 36 GB 内存或长上下文重度用户→ 4-bit 版,速度最快、占内存最少。
困惑度只是粗略信号,官方建议:在选定前,用你自己的实际任务分别测一遍。
❓ 常见问题(FAQ)
Q1:不是 128 GB 的 Mac 能跑吗?bf16 版峰值 75 GB,64 GB 机型会不够。64 GB 建议选 8-bit(峰值约 40 GB),36 GB 选 4-bit(峰值约 26.5 GB)。
Q2:为什么一定要--trust-remote-code?因为 mlx-lm 尚未内置k2_horizon架构(社区已有相关支持请求在推进中),需要执行本仓库附带的 k2_horizon.py。未来官方支持合并后,仓库会更新为直接使用内置实现。
Q3:512K 上下文真的能跑满吗?架构上支持 512K token,但 bf16 下 KV cache 每 token 约占 192 KB,128K token 就需要约 24 GB。短中长度上下文没问题,逼近 512K 时请改用低比特版本并控制max_tokens。
Q4:模型质量可靠吗?转换流程为mlx_lm.convert --dtype bfloat16,无量化、权重与原始 checkpoint 逐位一致;并且用真实权重在 fp32 下与 PyTorch 参考实现逐层校验通过,冒烟测试(数学题、常识问答、多轮对话)全部符合预期。
✅ 写在最后
K2-Horizon-MoVA-36B-A4B-bf16 把"大模型"和"Mac 本地"这两件曾经互斥的事打通了:36B 总参数、4B 激活的 MoE 架构 + MoVA 注意力 + 512K 上下文,在 M4 Max 128GB 上跑到 35 tok/s,且随仓库附带的 MLX 实现让部署门槛降到一条pip install。如果你的 Mac 内存足够,这就是目前 Apple Silicon 上体验超大 MoE 模型最省心的方式之一。
模型版权归 IFM 所有,许可证为 Apache-2.0,可自由用于商业与二次开发。
- 大模型
- 本地部署
- 人工智能
【免费下载链接】K2-Horizon-MoVA-36B-A4B-bf16
相关推荐
K2-Horizon-MoVA-36B-A4B-oQ4e 是什么?1篇看懂 36B 稀疏 MoE + 512K 长上下文推理模型
K2 Horizon MoVA 36B A4B oQ4e 是什么?1篇看懂 36B 稀疏 MoE + 512K 长上下文推理模型 K2 Horizon MoVA
512K 长上下文实测:K2-Horizon-MoVA-36B-A4B-oQ4e 处理超长文档到底行不行
512K 长上下文实测:K2 Horizon MoVA 36B A4B oQ4e 处理超长文档到底行不行 📄 本文实测 K2 Horizon MoVA 36B
K2-Horizon-MoVA-36B-A4B-4bit初体验:36B参数只激活4B的Apple Silicon专属MoE大模型是什么?
K2 Horizon MoVA 36B A4B 4bit初体验:36B参数只激活4B的Apple Silicon专属MoE大模型是什么? K2 Horizon
人工智能大模型模型量化本地部署
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考