- BeeLlama.cpp 简介
BeeLlama.cpp(简称 Bee)是 llama.cpp 的一个高性能分支,专注于提升本地 GGUF 模型推理的速度和上下文长度。它在保留 llama.cpp 工具和服务器流程的基础上,增加了以下关键特性:
DFlash 推测解码:利用小型草稿模型预测多个 token,由主模型验证,显著提升生成速度(尤其适用于代码、结构化文本等低熵内容)。
自适应草稿控制:动态调整草稿长度以优化吞吐量。
TurboQuant/TCQ KV 缓存压缩:提供高达 7.5 倍的 KV 缓存压缩,有效节省显存。
推理循环保护:检测并干预重复的推理输出。
完整的多模态支持:支持视觉输入。 - 系统要求
操作系统:Ubuntu(推荐 20.04 或更高版本)
GPU:NVIDIA RTX 2080 Ti (22GB VRAM)
CUDA:12.4 或 13.1
依赖:CMake, GCC, NVIDIA 驱动及 CUDA Toolkit - 安装步骤
3.1 方法一:使用预编译二进制文件(推荐)
下载二进制文件:
访问 BeeLlama.cpp Releases 页面,根据你的 CUDA 版本下载对应的 Ubuntu 预编译包。
如果你安装的是 CUDA 12.4,请下载 bin-ubuntu-cuda-12.4-x64.tar.gz
如果你安装的是 CUDA 13.1,请下载 bin-ubuntu-cuda-13.1-x64.tar.gz
tar -xzf bin-ubuntu-cuda--x64.tar.gz
cd beellama.cpp
3.2 方法二:从源代码编译(可选,性能可能略优)
安装依赖:
sudo apt update
sudo apt install build-essential cmake git
确保已安装 CUDA Toolkit
克隆仓库并编译:
git clone https://github.com/Anbeeld/beellama.cpp.git
cd beellama.cpp
针对 RTX 2080 Ti (Turing 架构, compute capability 7.5) 进行编译
cmake -B build -DGGML_CUDA=ON -DGGML_NATIVE=ON \
-DGGML_CUDA_FA=ON -DGGML_CUDA_FA_ALL_QUANTS=ON \
-DCMAKE_CUDA_ARCHITECTURES=75 \
-DCMAKE_BUILD_TYPE=Release
cmake --build build -j
注意: DCMAKE_CUDA_ARCHITECTURES=75 是为 RTX 2080 Ti 设置的。如果你不确定,可以省略此选项,CMake 会自动检测。
- 模型准备
你需要下载三个文件(以 Qwen 3.6 27B 为例):
主模型 (Target Model):
高精度版: Qwen3.6-27B-Q5_K_S.gguf (来自 unsloth/Qwen3.6-27B-GGUF)
高速/低显存版: Qwen3.6-27B-Q4_K_M.gguf 或 Qwen3.6-27B-IQ4_XS.gguf (来自 cHunter789/Qwen3.6-27B-i1-IQ4_XS-GGUF)
DFlash 草稿模型 (Draft Model):
从 Anbeeld/Qwen3.6-27B-DFlash-GGUF 下载,例如 Qwen3.6-27B-DFlash-Q4_K_M.gguf。
多模态投影器 (可选, mmproj):
如果需要视觉功能,从 unsloth/Qwen3.6-27B-GGUF 下载 mmproj-BF16.gguf。
将这些文件放在一个易于访问的目录中,例如 ~/models/。 - 启动服务器(针对 22GB 显存优化)
考虑到你的 RTX 2080 Ti 有 22GB 显存(略少于官方推荐的 24GB),我们采用高速/低显存组合,并进行适当调整以确保稳定运行。
5.1 基础启动命令(无视觉)
./build/bin/llama-server \
-m "~/models/Qwen3.6-27B-Q4_K_M.gguf" \
--spec-draft-model "~/models/Qwen3.6-27B-DFlash-Q4_K_M.gguf" \
--spec-type dflash \
--spec-dflash-cross-ctx 512 \
--port 8080 \
-np 1 \
--kv-unified \
-ngl all \
--spec-draft-ngl all \
-b 2048 -ub 512 \
--ctx-size 65536 \ # 将上下文减少到 64K 以适应 22G 显存
--cache-type-k turbo3_tcq \
--cache-type-v turbo3_tcq \ # 使用 TCQ 压缩进一步节省显存
--flash-attn on \
--no-mmap --mlock \
--temp 0.6 --top-k 20 --top-p 1.0 --min-p 0.0
5.2 启动命令(带视觉)
bash
./build/bin/llama-server \
-m "~/models/Qwen3.6-27B-Q4_K_M.gguf" \
--mmproj "~/models/mmproj-BF16.gguf" \
--no-mmproj-offload \ # 将 mmproj 卸载到 CPU 以节省 GPU 显存
--spec-draft-model "~/models/Qwen3.6-27B-DFlash-Q4_K_M.gguf" \
--spec-type dflash \
--spec-dflash-cross-ctx 512 \
--port 8080 \
-np 1 \
--kv-unified \
-ngl all \
--spec-draft-ngl all \
-b 2048 -ub 512 \
--ctx-size 65536 \
--cache-type-k turbo3_tcq \
--cache-type-v turbo3_tcq \
--flash-attn on \
--no-mmap --mlock \
--temp 0.6 --top-k 20 --top-p 1.0 --min-p 0.0
5.3 关键参数解释
-m: 主模型路径。
--spec-*: DFlash 相关配置,启用推测解码。
--ctx-size 65536: 重要!将上下文长度从默认的 100K+ 降低到 64K,这是为了适配 22GB 显存。
--cache-type-k/v turbo3_tcq: 重要!使用 TCQ 压缩技术大幅减小 KV 缓存占用。turbo3_tcq 在显存和精度之间取得了较好的平衡。
--spec-dflash-cross-ctx 512: 减少草稿模型能看到的上下文,进一步节省显存。
--no-mmproj-offload: 对于独立显卡,将视觉模块卸载到 CPU 可以释放宝贵的 GPU 显存。
-ngl all: 将所有模型层加载到 GPU 上。
- 故障排除
显存不足 (Out of VRAM):
进一步降低 --ctx-size (例如 32768)。
尝试使用 turbo2_tcq 作为缓存类型(但会损失更多精度)。
将主模型换成 IQ4_XS 版本。
DFlash 未生效:
检查日志中是否有 dflash: 或 speculative 相关信息。
确认草稿模型是专门为 DFlash 准备的,而不是普通的 Qwen 模型。
TCQ 缓存类型报错:
确保你使用的是 CUDA 后端编译的版本。TCQ (turbo*_tcq) 仅支持 CUDA。
通过以上配置,你应该能够在你的 RTX 2080 Ti 22GB + Ubuntu 系统上成功运行 BeeLlama.cpp,并利用 DFlash 和 TCQ 技术获得高效的推理体验。