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

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

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-03-30T20:15:51.000Z
- 最近活动: 2026-03-30T20:24:47.857Z
- 热度: 161.8
- 关键词: 移动AI, 端侧推理, Rust, LLM引擎, 量化, Metal, Vulkan, 多模态, 开源
- 页面链接: https://www.zingnex.cn/forum/thread/cellm-rust
- Canonical: https://www.zingnex.cn/forum/thread/cellm-rust
- Markdown 来源: ingested_event

---

## 移动端大模型推理的挑战

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

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

## 核心架构设计

Cellm借鉴了服务器端推理引擎（如vLLM）的先进概念，但针对移动场景进行了重新实现：

### 分页KV缓存（Paged KV Cache）

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

### 多会话调度器

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

### 4-bit仿射反量化

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

## 硬件加速与跨平台

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

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

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

## 原生多模态支持

不同于许多推理引擎将多模态作为后期附加功能，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`选项会将图片切分为全局视图和局部图块，提升对复杂场景的描述准确性。

## 开发工具链

Cellm提供完整的CLI工具集：

- **convert**：将Hugging Face模型转换为.cellm格式，支持int8/int4量化
- **infer**：高性能推理工具，支持聊天模式、多种对话格式（ChatML/plain）、温度/top-k采样
- **vlm-infer**：多模态推理工具，支持ONNX视觉编码器和.cellm解码器的混合执行

所有工具都支持详细的性能指标输出，便于开发者优化模型和参数配置。

## 实际性能表现

根据项目文档中的量化测试结果，Cellm在模型压缩方面表现出色。Qwen3.5-0.8B模型的体积从原始fp16格式的1746.9MB，经过int8量化后降至1706.0MB，而int4量化后更是压缩到620.4MB。如果仅保留文本处理部分（去除视觉相关张量），体积可以进一步降至378.3MB。这意味着在512MB内存限制内运行近10亿参数的多模态模型成为可能。

在推理质量方面，测试显示int4量化后的Qwen3.5仍能生成连贯的文本输出。例如，当提示"Write one short sentence about Rust programming"时，模型输出："Rust programming serves as a concise and concise language that simplifies the creation of programs..." 虽然存在轻微的重复问题，但整体语义是合理的。

## 当前状态与路线图

Cellm目前处于活跃开发阶段。Metal后端已完成设备检测和内核冒烟测试，但完整的前向计算内核仍在开发中，目前会回退到CPU路径执行。Vulkan后端和Android原生Kotlin/JNI绑定也在积极研发中。

项目还计划支持Qwen3.5的线性注意力（DeltaNet）层，这是一种有状态的注意力机制，需要独立于分页KV缓存的状态管理。

## 与现有方案的比较

相比llama.cpp，Cellm的优势在于：
- 原生支持多会话并发调度，而非简单的单序列推理
- 针对移动GPU（Metal/Vulkan）的深度优化，而非主要依赖CPU
- 内置的多模态架构支持，而非后期附加

相比MLX（Apple专属），Cellm的优势在于跨平台能力，能够在Android和Linux上运行。

## 适用场景与局限性

Cellm最适合以下场景：
- 需要在iOS/Android应用内直接运行LLM的开发者
- 对延迟敏感、无法依赖云端API的离线AI功能
- 需要同时运行多个AI会话的应用场景
- 希望在移动设备上实验视觉-语言模型的研究人员

当前的主要局限是项目仍在早期阶段，部分硬件加速功能尚未完全实现，API和模型格式也可能发生变化。生产环境使用前需要仔细评估稳定性。

## 总结

Cellm代表了移动端LLM推理引擎的一个新方向：不是将桌面方案强行移植到手机，而是从一开始就为移动设备的资源约束设计。分页KV缓存、多会话调度、4-bit量化、多模态原生支持等特性，都体现了对移动场景的深入理解。对于希望在应用中集成端侧AI能力的开发者，这是一个值得关注和参与的开源项目。
