I put together a Rust-native, CPU-only implementation of LFM2.5-8B-A1B
摘要
作者发布了一个纯Rust、纯CPU的LFM2.5-8B-A1B模型推理实现(4-bit Q4KM量化),解码速度约37 tokens/s,内存占用~7GB,旨在让LLM在廉价VPS或旧机器上可运行。该实现已开源并发布为cargo crate。
This is still a work in progress, but since recording the video, I added callbacks for tool use, more tests, and published it as a cargo crate. Currently working on speeding up the prefill. The decode speed is almost the same on my Ryzen 7950x (\~37 tokens/s), but the prefill speed is not yet optimized (almost the same as decode). This model can comfortably run on a machine with 16GB of RAM. Its memory usage will fit within \~7GB. You can reuse the weights between multiple Agent instances, each with their own KV cache. You can also clone Agent object instances if your agents have the same prompt so that you don't need to repeat the prefill work on the prompt.
查看缓存全文
缓存时间: 2026/06/09 14:46
TL;DR: 我发布了一个纯 Rust、纯 CPU 的 LFM2.5-8B-A1B 模型实现(4-bit Q4KM 量化),解码速度约 37 tokens/s,内存占用 ~7GB,可嵌入应用并共享权重。
## 项目动机
本地大语言模型越来越强,80 亿参数的模型能做的已经让人印象深刻。但 GPU 实在太贵了。CPU 服务器(VPS)月费只要几美元,而带 GPU 的云服务器贵得多。很多人想用旧机器或廉价 VPS 跑 LLM,做后端、自动化或实验。这个项目就是为这种场景设计的——一个纯 CPU 可运行的推理引擎,完全用 Rust 编写,依赖极少。
## 实现细节
- **模型**:选用 LFM 2.5 8B 模型的 4-bit Q4KM 量化版(GGUF 格式)。
- **语言与硬件**:纯 Rust crate,零外部库,跨平台 SIMD 原语(Ryzen 上使用 AVX2,Apple M5 上使用 ARM NEON)。
- **部署**:下载权重文件后,通过环境变量或默认路径加载,直接链接到你的 Rust 应用中。
- **API 设计**:创建模型实例(存储权重),然后可以创建多个 `Agent` 对象共享权重。每个 Agent 拥有独立的聊天历史和 KV 缓存,适合同时处理不同任务。
## 性能与优化
初期移植时只有 0.89 token/s。经过几轮优化——重写内核、加入并行、启用 SIMD——性能大幅提升:
- 在 Ryzen 7950X 上(16 线程):
- 预填充(prefill)约 38 tokens/s
- 解码(decode)约 33 tokens/s
- 与 llama.cpp(强制 CPU)对比:llama 的 prefill 更快,但 decode 速度接近。我的实现仍有优化空间,有望追平。
## 使用示例
1. **聊天界面**:流式输出 token,支持显示思考模型的“思考 token”。
2. **简单测试**:让模型介绍蒙特利尔——结果基本准确,但问餐厅时有一次编造了不存在的餐馆(无联网能力)。
3. **工具调用**:模型针对工具使用训练,目前我在添加回调机制,让模型调用 Rust 函数。演示用 CSV 表格和 JSON 转换任务,模型表现良好。
## 命令行与配置
提供基于 Builder 模式的 Agent 配置语法,以及命令行选项。支持限制思考长度、禁用思考(但不稳定)。可通过 `@` 语法嵌入文件内容。
## 测试环境与兼容性
- 已测试:Ryzen 7950X(支持 AVX2)和 Apple M5(M1–M5 应都支持)。
- 理论可跑:任何支持 AVX2 的 Intel CPU,甚至树莓派 5/4(未测试,欢迎反馈)。
- 内存需求:约 7GB,可在 16GB RAM 机器上舒适运行。
## 当前状态与未来计划
- 代码已开源:`github.com/maximcv/bb-lm`
- 已发布为 cargo crate。
- 已添加工具调用回调、更多测试。
- 计划优化预填充速度,并与 llama.cpp 性能看齐。
- 后续会完善文档和示例。
## 局限性
- 禁用思考后模型可能输出 `/think` 原文或跑偏。
- 目前预填充速度弱于 llama.cpp,但解码速度已接近。
- 无 GPU 加速,但 CPU 推理已可交互使用。
**Source**: [YouTube 视频 - maximecb](https://www.youtube.com/watch?v=whni8GW3xNM)
相似文章
@QingQ77: 用纯 Rust 实现 LLM 推理引擎,针对每种硬件×模型×量化组合定制 CUDA 内核,跑出比 vLLM 和 TensorRT-LLM 更高的推理速度。 https://github.com/Avarok-Cybersecurity/a…
Atlas 是一个纯 Rust 实现的 LLM 推理引擎,通过为每种硬件×模型×量化组合定制 CUDA 内核,实现了比 vLLM 和 TensorRT-LLM 更快的推理速度。
LFM2.5-24B-A2B(7 分钟阅读)
Liquid AI 发布 LFM2.5-24B-A2B,一个 24B 参数、仅 2B 激活参数的开源权重推理模型,专为快速、私密的设备端智能体设计,在多个智能体与工具使用基准上超越更大的 MoE 模型。
@mylifcc: LiteLLM 正式迁移到 Rust 了! AI Gateway 迎来史诗级性能升级: 单请求开销降低 150 倍(~0.05ms vs Python 7.5ms) 吞吐量提升 15 倍 内存占用降低 11 倍(峰值仅 32MB) 单个 …
LiteLLM已从Python迁移到Rust,性能大幅提升:请求开销降低150倍至0.05ms,吞吐量提升15倍,内存占用降低11倍至32MB。
LiquidAI/LFM3-1.7B-GGUF
Liquid AI 发布 LFM3-1.7B 的 GGUF 版本,支持在 CPU/GPU 上本地推理,兼容 llama.cpp、Ollama、LM Studio 等工具,并提供经过量化感知蒸馏(QAD)的 Q4_0 检查点,以恢复量化损失的精度。
运行本地 LLM 不需要那么昂贵的硬件配置。
作者分享了仅用一块 9060 XT 16GB 显卡和 24GB 内存运行 Qwen 3 27B(262k 上下文、IQ4XS 量化)的低成本本地 LLM 方案,使用了一个支持 KV cache 流式与 n-gram 预测的 llama.cpp 分支,达到 42.7 tps 生成速度。