章节 01
导读 / 主楼:Air.rs:用 Rust 实现消费级 GPU 上的 70B+ 大模型推理
Air.rs 是一个基于 Rust 的 LLM 推理引擎,采用 S.L.I.P.(Slipstream Layer Inference Protocol)协议,通过内存映射和层流式技术,实现在仅有 24GB VRAM 的消费级 GPU 上运行 70B+ 参数的大语言模型。
正文
Air.rs 是一个基于 Rust 的 LLM 推理引擎,采用 S.L.I.P.(Slipstream Layer Inference Protocol)协议,通过内存映射和层流式技术,实现在仅有 24GB VRAM 的消费级 GPU 上运行 70B+ 参数的大语言模型。
章节 01
Air.rs 是一个基于 Rust 的 LLM 推理引擎,采用 S.L.I.P.(Slipstream Layer Inference Protocol)协议,通过内存映射和层流式技术,实现在仅有 24GB VRAM 的消费级 GPU 上运行 70B+ 参数的大语言模型。
章节 02
当前的大语言模型(LLM)推理面临一个核心挑战:模型体积远超显存容量。以 70B 参数的模型为例,若使用 FP16 精度,需要 140 GB 的 GPU 内存;即使量化为 Q4,仍需 35 GB —— 这已经超过了 RTX 4090 的 24GB 显存上限。
现有的解决方案往往伴随着痛苦的权衡:
章节 03
Air.rs 实现了 S.L.I.P.(Slipstream Layer Inference Protocol)协议。其核心思想是:GGUF 文件通过内存映射(mmap)加载,但在任何时刻,只有一个层的量化权重驻留在物理 RAM 中。权重以 GGUF 块格式保持压缩状态,QMatMul 在矩阵乘法期间执行反量化。
章节 04
| 模型规模 | 传统加载 | Air.rs 层流式 |
|---|---|---|
| 7B | ~4 GB | ~400 MB |
| 70B | ~40 GB | ~1.5 GB |
这种设计使得在单张消费级 GPU 上运行 70B+ 模型成为可能。
章节 05
STRIX(Streamed Tensor Residence & Intelligent eXchange)是支持 70B+ 模型在消费级 GPU 上运行的 GPU 卸载协议。它管理三级内存层次结构(VRAM → RAM → 存储),并具备智能驱逐评分机制。
主要组件包括:
章节 06
| 类别 | 特性 |
|---|---|
| 核心 | 层流式推理 —— 每次只有一个 Transformer 块在内存中 |
| 量化 | 权重保持 GGUF 块格式;QMatMul 在 matmul 时反量化 |
| 文件格式 | GGUF、SafeTensors、PyTorch (.bin/.pt)、ONNX —— 自动检测 |
| 内存 | madvise / PrefetchVirtualMemory 页面控制 + mmap 存储 HAL |
| KV Cache | 分层 KV 缓存,支持 RAM/VRAM 切换和 LRU 驱逐 |
| 流水线 | 自适应环形缓冲区流水线 —— 重叠 NVMe 读取、PCIe、GPU |
| API | OpenAI 兼容的 /v1/chat/completions(SSE 流式) |
| 计算 | NVIDIA CUDA + Vulkan(暂存传输)+ Apple Metal GPU 后端 |
| 解码 | 推测解码(草稿验证加速,2-3 倍提速) |
| 调度 | 连续批处理请求调度器 |
| 采样 | 温度、top-p、top-k、重复惩罚、min-p |
| Tokenizer | 从 GGUF 词汇表构建的 BPE Tokenizer |
| Model Hub | 从 Hugging Face 下载模型,支持 SHA-256 验证 |
| 监控 | 实时 TUI 仪表板 + Prometheus 兼容指标 |
| 模板 | Jinja2 风格聊天模板引擎(ChatML、Llama、Mistral 等) |
| 绑定 | 可选的 PyO3 Python 绑定 |
章节 07
所有子系统已实现并测试(468 个测试,0 警告,0 失败)。项目在三个平台上均可编译,具备生产级 GPU 后端。E2E 验证已通过真实 Llama 3.2 3B Q8 GGUF 模型。
章节 08