OpenBMB 开源社区/MiniCPM-SALA
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

GitHub 代码库 | 技术报告 | 加入我们

👋 欢迎通过 Discord 和 微信 与我们联系

最新动态

  • [2026.02.11] MiniCPM-SALA 正式发布!这是首个有效融合稀疏注意力与线性注意力的大规模混合模型,专为百万级token上下文建模设计。技术报告详见 此处。🔥🔥🔥

核心亮点

MiniCPM-SALA(稀疏注意力与线性注意力融合模型)是首个有效融合稀疏注意力与线性注意力机制的大规模混合模型,专为百万级token上下文建模而打造。

✅ 创新混合架构:将25%的稀疏注意力(InfLLM-v2)用于高保真长上下文建模,与75%的线性注意力(Lightning Attention)相结合,实现全局效率优化。

✅ 突破效率壁垒:成功打破“计算墙”与“内存墙”,相比密集型基线模型,推理速度提升3.5倍,KV缓存开销显著降低。

✅ 百万级token上下文:借助HyPE(混合位置嵌入)技术,模型可扩展至100万+token,同时保持强大的长度泛化能力。

✅ HALO适配技术:采用混合注意力层优化(HALO)这一新颖的蒸馏方案,将密集注意力的能力有效迁移至混合架构,避免了纯线性模型常见的严重性能下降问题。

简介

MiniCPM-SALA 是一种高效的混合模型,其中 25% 的层采用 InfLLM-V2,其余 75% 的层则使用 Lightning Attention。这种架构使得在消费级 GPU(如 NVIDIA RTX 5090)上能够对一百万 tokens 进行推理。

  • SALA 混合注意力机制

    • 融合了 25% 的 InfLLM-V2 和 75% 的 Lightning Attention,有效利用稀疏注意力对局部细节的精细聚焦以及线性注意力对广泛上下文的高效处理能力。
  • Transformer 到混合模型的持续训练

    • 通过对预训练权重进行架构转换,避免了冷启动训练的低效问题,从而将总训练预算降低至从零开始训练同类模型的约 25%。
  • HyPE(混合位置编码)

    • 平衡了短上下文和长上下文下的性能,能够保持与 Qwen3-8B 等现代全注意力模型相当的通用能力(如知识、数学和编码),并在多个长上下文基准测试中取得显著优势。
  • 长序列的高效推理

    • 在 A6000D 上,当序列长度为 256K tokens 时,推理速度达到 Qwen3-8B 的 3.5 倍;在 NVIDIA A6000D 和 5090 GPU 上均支持高达 1M tokens 的上下文长度推理,而 Qwen3-8B 在该长度下会因内存不足(OOM)错误而失败。

推理

为获得最佳性能,我们建议使用 Temperature=0.9。

HuggingFace

我们的模型可直接与 🤗 Hugging Face transformers 兼容。您可以按以下方式使用我们的模型进行推理:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_path = "openbmb/MiniCPM-SALA"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True, device_map="auto")
model.eval()

prompts = ["My name is", "The capital of China is"]
with torch.no_grad():
    inputs = tokenizer(prompts, return_tensors="pt").to(model.device)
    outputs = model.generate(**inputs)
output_texts = tokenizer.batch_decode(outputs)
print(output_texts)

SGLang

要求

  • CUDA 12.x 或更高版本
  • gcc / g++ 编译器
  • uv 包管理器(脚本将进行检查)

安装

# Clone repository
git clone -b minicpm_sala https://github.com/OpenBMB/sglang.git
cd sglang

# One-click installation (creates venv and compiles all dependencies)
bash install_minicpm_sala.sh

# Or specify PyPI mirror
bash install_minicpm_sala.sh https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

安装脚本执行以下步骤:

  1. 创建 sglang_minicpm_sala_env 虚拟环境(Python 3.12)
  2. 将依赖项克隆至 3rdparty/(infllmv2)并初始化子模块(sparse_kernel)
  3. 安装 MiniCPM-SALA(当前仓库)
  4. 编译并安装 infllmv2_cuda_impl
  5. 编译并安装 sparse_kernel
  6. 安装 tilelang 和 flash-linear-attention

使用方法

# Activate environment
source sglang_minicpm_sala_env/bin/activate

# Launch Inference Server (Replace MODEL_PATH with actual path)
MODEL_PATH=/path/to/your/MiniCPM-SALA

python3 -m sglang.launch_server \
    --model ${MODEL_PATH} \
    --trust-remote-code \
    --disable-radix-cache \
    --attention-backend minicpm_flashinfer \
    --chunked-prefill-size 8192 \
    --max-running-requests 32 \
    --skip-server-warmup \
    --port 31111 \
    --dense-as-sparse
参数描述
--trust-remote-code允许模型中包含自定义代码
--disable-radix-cache禁用 RadixAttention 前缀缓存
--attention-backend minicpm_flashinfer使用 MiniCPM FlashInfer 后端
--chunked-prefill-size 8192分块预填充大小
--max-running-requests 32最大并发请求数
--skip-server-warmup跳过服务器预热
--port 31111服务器端口
--dense-as-sparse使用稠密转稀疏模式

手动安装

如果脚本运行失败,请按照以下步骤操作:

# 0. Ensure uv is installed
pip install uv

# 1. Create venv
uv venv --python 3.12 sglang_minicpm_sala_env
source sglang_minicpm_sala_env/bin/activate

# 2. Install SGLang
uv pip install --upgrade pip setuptools wheel
uv pip install -e ./python[all]

# 3. Compile CUDA Extensions
# (Ensure dependencies are cloned to 3rdparty/)
cd 3rdparty/infllmv2_cuda_impl && python setup.py install && cd ../..
cd 3rdparty/sparse_kernel && python setup.py install && cd ../..

# 4. Install extra deps
uv pip install tilelang flash-linear-attention

问答

问:CUDA 扩展编译失败?

  • 确保已安装 CUDA 12 或更高版本(可通过 nvcc --version 命令检查)。
  • 确保系统中已安装 gcc / g++。
  • 若 CXX 环境变量被设置为 clang++ -pthread,请手动执行 export CXX=g++ 进行修改。

评估结果

效率评估

inference_speed_a6000d

inference_speed_5090

长文本评估

long_text_evaluation

超长文本评估

ultra_long_text_evaluation

标准评估

benchmark

声明

  • MiniCPM-SALA 作为一款语言模型,通过学习海量文本数据来生成内容。
  • 但它不具备理解能力,也无法表达个人观点或价值判断。
  • MiniCPM-SALA 生成的任何内容均不代表模型开发者的观点或立场。
  • 因此,用户在使用 MiniCPM-SALA 生成的内容时,应自行对其进行充分评估和验证,并承担相应责任。

许可证

  • 本仓库及 MiniCPM 模型均基于 Apache-2.0 许可证发布。

引用

  • 如果您认为我们的工作有价值,请引用我们的 论文。
@article{minicpm4,
  title={{MiniCPM-SALA}: Hybridizing Sparse and Linear Attention for Efficient Long-Context Modeling},
  author={MiniCPM Team},
  year={2026}
}