章节 01
导读 / 主楼:Cellm:为手机端运行大模型而生的Rust推理引擎
Cellm是一个从零开始用Rust编写的移动端LLM推理引擎,针对512MB以下内存环境设计,实现了分页KV缓存、多会话调度、4-bit量化等服务器级优化技术,支持Metal/Vulkan加速和原生多模态能力。
正文
Cellm是一个从零开始用Rust编写的移动端LLM推理引擎,针对512MB以下内存环境设计,实现了分页KV缓存、多会话调度、4-bit量化等服务器级优化技术,支持Metal/Vulkan加速和原生多模态能力。
章节 01
Cellm是一个从零开始用Rust编写的移动端LLM推理引擎,针对512MB以下内存环境设计,实现了分页KV缓存、多会话调度、4-bit量化等服务器级优化技术,支持Metal/Vulkan加速和原生多模态能力。
章节 02
将大语言模型部署到手机端是一个极具挑战性的工程问题。消费级移动设备的内存通常只有4-12GB,而即使是"小"模型如SmolLM2-135M也需要数百MB内存。传统的推理方案如llama.cpp虽然能在移动端运行,但往往是桌面级方案的移植版本,未能充分利用移动硬件特性,也难以实现多任务并发。
Cellm 是一个从头设计的移动端LLM推理引擎,用Rust编写,专门针对iOS和Android的硬件约束进行优化。它不是任何现有方案的包装或移植,而是一个全新的运行时。
章节 03
Cellm借鉴了服务器端推理引擎(如vLLM)的先进概念,但针对移动场景进行了重新实现:
章节 04
传统推理为每个序列预分配连续的KV缓存空间,这在内存受限的移动设备上效率极低。Cellm采用固定大小的块分配策略,通过BlockAllocator和PageTable管理缓存,类似操作系统的虚拟内存管理。这允许更高效的内存复用和更长的上下文支持。
章节 05
移动设备上往往需要同时运行多个AI会话(例如前台聊天应用和后台语音助手)。Cellm实现了轮询交错解码调度器,让多个会话共享计算资源,而不是简单的串行执行。
章节 06
Cellm原生支持从MLX/Hugging Face导入的高精度4-bit打包权重,通过仿射反量化在推理时动态还原。测试显示,Qwen3.5-0.8B模型从原始的1746MB压缩到int4量化后的620MB,纯文本版本更是只有378MB,在保持可接受质量的同时大幅节省内存。
章节 07
Cellm实现了多后端计算内核:
这种设计让同一套代码能够在iPhone、Android设备、以及macOS开发机上运行,实现真正的跨平台部署。
章节 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选项会将图片切分为全局视图和局部图块,提升对复杂场景的描述准确性。