【免费下载链接】Mellum2-12B-A2.5B-Instruct-mxfp4
Mellum2-12B-A2.5B-Instruct-mxfp4 是 JetBrains 开源 MoE 大模型 Mellum2 的 MLX MXFP4 量化版本,支持131K(131,072 token)长上下文。本文带你读懂它实现超长上下文的两大核心机制:滑动窗口注意力(Sliding Window Attention)与 YaRN 位置编码外推,全部答案都能在这个仓库的配置文件里找到。
30秒认识这个模型 📦
| 项目 | 参数 |
|---|---|
| 架构 | Mixture-of-Experts(MoE),mellum |
| 总参数 / 激活参数 | 约 12.1B / 每 token 激活约 2.5B |
| 专家配置 | 64 个专家,每 token 激活 8 个 |
| 隐藏层数 | 28 层 |
| 上下文长度 | 131,072 token(131K) |
| 量化格式 | MXFP4(4 bit,group size 32) |
| 文件大小 | 约 6.46 GB,两个权重分片 |
这是一个"小模型、长记忆"的组合:激活参数只有 2.5B,推理开销接近小模型,却能吞下约 13 万个 token 的输入——大约相当于一本几十页的技术文档或上万行代码。
权重索引见 model.safetensors.index.json,模型元信息见 config.json,使用说明见 README.md。
131K长上下文实现原理
单靠"堆算力"很难支撑 131K 上下文:全注意力(Full Attention)的计算量和 KV Cache 内存都会随序列长度平方级、线性级膨胀。Mellum2 的解法是两种机制分工协作——滑动窗口负责"省",YaRN 负责"够得远"。
机制一:滑动窗口注意力,28层里只留7层做全注意力 🔍
在 config.json#L15-L44 的layer_types字段里,28 层的注意力类型是这样排布的:
第0层 滑动注意力 第1层 滑动注意力 第2层 滑动注意力 第3层 全注意力 ★ 第4层 滑动注意力 ...(每 4 层一个循环) 第27层 全注意力 ★- 21 层滑动窗口注意力:每个 token 只回看最近
sliding_window: 1024个 token; - 7 层全注意力(第 3、7、11、15、19、23、27 层):每个 token 都能"看见"整段 131K 的上下文。
为什么这样设计划算?关键在于 KV Cache 内存:
| 层类型 | 缓存策略 | 131K 上下文下的显存占用 |
|---|---|---|
| 7 层全注意力 | 缓存全部 token | 约 1.8 GB(bf16) |
| 21 层滑动窗口 | 只缓存最近 1024 个 token | 约 40 MB |
也就是说,超过 90% 的层只需要为"最近 1 个窗口"付费,长上下文的大部分内存成本被滑动窗口"砍掉"了,而全注意力层保证了跨文档、跨章节的远距离关联能力。这就是 config.json#L341 中use_sliding_window: true背后的真实含义。
机制二:YaRN,把 8K 的位置编码外推到 131K 📏
滑动窗口层只处理 1024 长度的局部窗口,无需外推;真正需要"看得远"的是 7 层全注意力层。Mellum2 给它们配置了YaRN(Yet another RoPE extensioN)位置编码,完整参数在 config.json#L321-L335:
| 参数 | 取值 | 通俗解释 |
|---|---|---|
rope_type | yarn | 启用 YaRN 长上下文外推方案 |
original_max_position_embeddings | 8192 | 模型预训练时的原始上下文长度 |
factor | 16.0 | 外推倍率:8192 × 16 =131072 |
rope_theta | 500000.0 | 更高的基频,让位置信号在超长序列中不易重复混淆 |
beta_fast/beta_slow | 32 / 1 | 高低频分段的插值范围 |
attention_factor | 1.277 | 注意力 logits 缩放,缓解超长序列下的注意力熵稀释 |
三个核心动作可以这么理解:
- 频率缩放(factor=16):对 RoPE 的旋转频率按比例压缩,相当于"放慢时钟",让 8K 训练学出的位置规律在 131K 范围里依然成立;
- NTK 风格插值(beta_fast/beta_slow):对低频分量做平滑插值而非生硬缩放,避免长距离位置出现"错位";
- 注意力缩放(attention_factor≈1.277):序列越长,注意力分数越分散、越"犹豫",乘上这个系数把注意力重新"收紧"到真正相关的内容上。
而 21 层滑动窗口层则使用普通 RoPE(rope_type: default,见 config.json#L331-L334)——窗口只有 1024,用不上外推,简单即最优。
💡一句话总结:131K 长上下文 = 21 层滑动窗口"省内存" + 7 层 YaRN 全注意力"保全局" + 更高的rope_theta打底。
关键配置速查表 ✅
如果你想动手核对,以下是最值得看的几个字段:
| 字段 | 值 | 位置 |
|---|---|---|
| 上下文上限 | max_position_embeddings: 131072 | config.json#L45 |
| 注意力层排布 | layer_types(sliding/full 交替) | config.json#L15-L44 |
| 窗口大小 | sliding_window: 1024 | config.json#L337 |
| YaRN 外推参数 | rope_parameters.full_attention | config.json#L322-L330 |
| MoE 专家数 | num_experts: 64/ 激活 8 个 | config.json#L81-L82 |
| 词表大小 | vocab_size: 98304 | config.json#L342 |
量化方面,除每层的 router gate 保持 8 bit(group size 64)以保护专家路由精度外,其余权重均为 MXFP4 4 bit(group size 32),这也是整个 12B 模型能压进约 6.5 GB 的原因(详见 config.json#L86-L219)。
如何快速上手使用 🚀
模型基于 MLX 生态,在 Apple Silicon 上运行最顺手,一条命令即可开聊:
pip install -U mlx-lm mlx_lm.chat \ --model mlx-community/Mellum2-12B-A2.5B-Instruct-mxfp4 \ --max-tokens 8192 \ --temp 0.6 \ --top-p 0.95若需要本地克隆仓库(例如二次打包或研究配置),仓库地址为:
git clone https://gitcode.com/hf_mirrors/mlx-community/Mellum2-12B-A2.5B-Instruct-mxfp4几个实用提示:
- 对话格式由 chat_template.jinja 定义,`
【免费下载链接】Mellum2-12B-A2.5B-Instruct-mxfp4
相关推荐
131072 token上下文如何炼成:Mellum2-12B-A2.5B-Thinking-mxfp4的混合注意力与YARN RoPE扩窗原理
131072 token上下文如何炼成:Mellum2 12B A2.5B Thinking mxfp4的混合注意力与YARN RoPE扩窗原理 Mellum2
131K超长上下文+滑动窗口注意力:Muse-Glimmer-30B-mxfp4低成本处理长文档的秘密
131K超长上下文+滑动窗口注意力:Muse Glimmer 30B mxfp4低成本处理长文档的秘密 Muse Glimmer 30B mxfp4 是面向 M
Home Assistant `hydrawise.suspend` 动作详解:将灌溉区自动浇水计划暂停到指定时间
Home Assistant hydrawise.suspend 动作详解:将灌溉区自动浇水计划暂停到指定时间 本文围绕 Home Assistant 文档仓库
大模型模型量化多模态
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考