Zing 论坛

正文

Cellm:为手机端运行大模型而生的Rust推理引擎

Cellm是一个从零开始用Rust编写的移动端LLM推理引擎,针对512MB以下内存环境设计,实现了分页KV缓存、多会话调度、4-bit量化等服务器级优化技术,支持Metal/Vulkan加速和原生多模态能力。

移动AI端侧推理RustLLM引擎量化MetalVulkan多模态开源
发布时间 2026/03/31 04:15最近活动 2026/03/31 04:24预计阅读 3 分钟
Cellm:为手机端运行大模型而生的Rust推理引擎
1

章节 01

导读 / 主楼:Cellm:为手机端运行大模型而生的Rust推理引擎

Cellm是一个从零开始用Rust编写的移动端LLM推理引擎,针对512MB以下内存环境设计,实现了分页KV缓存、多会话调度、4-bit量化等服务器级优化技术,支持Metal/Vulkan加速和原生多模态能力。

2

章节 02

移动端大模型推理的挑战

将大语言模型部署到手机端是一个极具挑战性的工程问题。消费级移动设备的内存通常只有4-12GB,而即使是"小"模型如SmolLM2-135M也需要数百MB内存。传统的推理方案如llama.cpp虽然能在移动端运行,但往往是桌面级方案的移植版本,未能充分利用移动硬件特性,也难以实现多任务并发。

Cellm 是一个从头设计的移动端LLM推理引擎,用Rust编写,专门针对iOS和Android的硬件约束进行优化。它不是任何现有方案的包装或移植,而是一个全新的运行时。

3

章节 03

核心架构设计

Cellm借鉴了服务器端推理引擎(如vLLM)的先进概念,但针对移动场景进行了重新实现:

4

章节 04

分页KV缓存(Paged KV Cache)

传统推理为每个序列预分配连续的KV缓存空间,这在内存受限的移动设备上效率极低。Cellm采用固定大小的块分配策略,通过BlockAllocator和PageTable管理缓存,类似操作系统的虚拟内存管理。这允许更高效的内存复用和更长的上下文支持。

5

章节 05

多会话调度器

移动设备上往往需要同时运行多个AI会话(例如前台聊天应用和后台语音助手)。Cellm实现了轮询交错解码调度器,让多个会话共享计算资源,而不是简单的串行执行。

6

章节 06

4-bit仿射反量化

Cellm原生支持从MLX/Hugging Face导入的高精度4-bit打包权重,通过仿射反量化在推理时动态还原。测试显示,Qwen3.5-0.8B模型从原始的1746MB压缩到int4量化后的620MB,纯文本版本更是只有378MB,在保持可接受质量的同时大幅节省内存。

7

章节 07

硬件加速与跨平台

Cellm实现了多后端计算内核:

  • Metal后端:针对Apple Silicon(iOS/macOS)的GPU计算内核,支持矩阵乘法和注意力计算加速
  • Vulkan后端:跨平台GPU计算支持(Android/Linux),目前处于积极研发阶段
  • SIMD优化的CPU回退:当GPU不可用时,使用NEON/AVX指令集优化的CPU实现

这种设计让同一套代码能够在iPhone、Android设备、以及macOS开发机上运行,实现真正的跨平台部署。

8

章节 08

原生多模态支持

不同于许多推理引擎将多模态作为后期附加功能,Cellm从架构层面支持视觉-语言模型。它原生集成了ViT/SigLIP视觉编码器和线性投影层,支持SmolVLM等轻量级多模态模型。

示例命令可以在本地对图片进行详细描述:

./target/release/vlm-infer \
  --model-dir models/hf/smolvlm-256m-instruct \
  --onnx-variant fp16 \
  --image models/test_images/rococo.jpg \
  --prompt "Describe this image." \
  --split-image \
  --max-new-tokens 96

--split-image选项会将图片切分为全局视图和局部图块,提升对复杂场景的描述准确性。