MobiLlama
5亿参数的小语言模型(SLM),通过参数共享策略实现边缘设备高效部署,ICLR 2025 SLLM Spotlight 论文
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
5亿参数的小语言模型(SLM),通过参数共享策略实现边缘设备高效部署,ICLR 2025 SLLM Spotlight 论文
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:一位野外考察的地质学家,在没有网络的沙漠腹地急需查询一份矿物成分分析报告;或者一位工厂质检员想在产线上实时识别零件缺陷,却无法将高清图片上传云端——这些场景的共同需求是:把 AI 能力装进一个能在本地设备上独立运行的"小脑袋"里。
这就是 Small Language Model(SLM,小语言模型)赛道火热的根本原因。2024 年 2 月,阿联酋穆罕默德·本·扎耶德人工智能大学(MBZUAI)联合 Linköping 大学发布了 MobiLlama,并在 2025 年 ICLR SLLM Workshop 中斩获 Spotlight 论文荣誉,成为边缘端轻量级语言模型的标杆之作。

图1:MobiLlama 基于 LLaMA 架构,通过参数共享策略实现轻量化
过去几年,大语言模型(LLM)的军备竞赛从未停止——GPT-4 据传超万亿参数,Claude 3 Opus 动辄几千亿。但硬币的另一面是:这些"巨无霸"根本无法在手机、树莓派、工业边缘网关等设备上运行。
MBZUAI 团队敏锐地捕捉到了这个矛盾。他们在论文中指出:在隐私保护(医疗记录本地处理)、网络安全(企业内网隔离场景)、能源效率(移动设备续航)以及响应延迟(无需网络往返)等需求驱动下,在端侧部署 AI 的需求正在爆发。
MobiLlama 提出的核心哲学是 "Less is More"——不是简单裁剪大模型,而是通过精心的参数共享机制,从更大的母模型出发,在保持性能的同时实现参数量的压缩。这与 MobileNet 通过深度可分离卷积压缩视觉模型的思路如出一辙,但迁移到了语言模型领域。
论文作者团队星光熠熠:包括萨勒曼·汗(Salman Khan,阿联酋知名 AI 学者)、埃里克·辛(Eric Xing,ICML 创始人)等多位图灵奖级别大佬的参与,让这个项目从一开始就站在了学术界的高起点上。
MobiLlama 提供了三个规模的版本,均基于 LLaMA 架构:
| 模型版本 | 参数量 | 隐层维度 | 层数 | KV 头数 | 最大上下文 |
|---|---|---|---|---|---|
| 0.5B | 5 亿 | 2048 | 8 | 4 | 2048 |
| 0.8B | 8 亿 | 2560 | 22 | 4 | 2560 |
| 1B | 10 亿 | — | — | — | — |
关键设计亮点:Grouped Query Attention(GQA,分组查询注意力)。标准 MHA(多头注意力)中,K/V 头数等于 Q 头数,导致推理时 KV 缓存巨大。GQA 通过让多个 Q 头共享同一组 K/V 头,在 0.5B 模型中将 KV 头数从 32 压缩到 4,大幅减少推理时的内存占用,同时几乎不损失表达能力。
MobiLlama 的核心贡献在于层级参数共享(Layer-wise Parameter Sharing)。这不是简单的权重复制,而是通过以下机制实现:
从 main_mobillama.py 的代码可以看出,MobiLlama 采用 PyTorch Lightning + FSDP(Fully Sharded Data Parallel) 进行分布式训练:
strategy=FSDPStrategy(
auto_wrap_policy=partial(transformer_auto_wrap_policy,
transformer_layer_cls={LlamaAttention}),
activation_checkpointing_policy={LlamaAttention},
cpu_offload=True, # CPU 卸载,节省 GPU 显存
limit_all_gathers=True)
FSDP 策略通过将模型参数分片到不同 GPU,配合 activation checkpointing(激活重计算)和 CPU offload(参数卸载到内存),让研究者能在相对有限的硬件上训练数十亿参数的模型。
训练数据使用 LLM360 的 Amber 数据集,共 1.2 万亿 tokens,涵盖 Refined-Web(6650 亿)、StarCoder(2920 亿)、C4(1970 亿)等高质量数据源。
虽然 MobiLlama 本身没有提供开箱即用的 Web UI,但团队在 HuggingFace 上提供了在线 Gradio Demo,用户可以直接在浏览器中体验 0.5B 和 1B 模型的效果,无需任何安装步骤。

图2:MobiLlama 文本生成效果演示
对于开发者而言,使用 HuggingFace Transformers 加载模型也非常简洁:
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained(
"MBZUAI/MobiLlama-05B", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(
"MBZUAI/MobiLlama-05B", trust_remote_code=True)
model.to('cuda')
text = "I was walking towards the river when"
input_ids = tokenizer(text, return_tensors="pt").to('cuda').input_ids
outputs = model.generate(input_ids, max_length=1000,
repetition_penalty=1.2, pad_token_id=tokenizer.eos_token_id)
print(tokenizer.batch_decode(outputs[:, input_ids.shape[1]:-1])[0].strip())
在多项基准测试中,MobiLlama 0.5B 的表现与参数量相近的竞品(如 TinyLlama-1.1B、Phi-1.5 等)相比,在常识推理和阅读理解任务上展现了竞争力。
核心优势在于:
MobiLlama 也有其局限性。首先,0.5B 参数在复杂推理任务上仍显吃力,生成文本的连贯性不及 7B 以上模型。其次,训练所需数据量巨大(1.2T tokens),普通研究者难以从零复现。此外,目前仅支持英文,多语言支持尚未纳入路线图。
MobiLlama 的出现在学术界和工业界都引起了关注。在学术侧,它为 SLM 的参数共享训练范式提供了详实的实验支撑;在工业侧,它证明了5 亿参数级别的模型已经能在边缘设备上完成基础 NLP 任务。
随着端侧 AI 需求的持续爆发(手机 SoC 内置 NPU、嵌入式 AI 芯片的普及),类似 MobiLlama 这样的项目将成为连接前沿研究与实际应用的重要桥梁。其完全开源的训练代码和模型权重,也让更多研究者可以站在肩膀上继续探索 SLM 的极限。
conda create -n mobillama python=3.10
conda activate mobillama
pip install torch>=2.1.1
pip install lightning>=2.1.2
pip install flash_attn>=2.3.3
pip install transformers>=4.36.2
pip install fire wandb
# 8xA100 单节点训练
python main_mobillama.py \
--n_nodes 1 \
--n_devices_per_node 8 \
--per_device_batch_size 8 \
--accumulate_grad_batches 1 \
--run_wandb True
训练需要至少 8 张 GPU 配合 FSDP 分布式策略,单机部署难度较大。