Beellama安装手册

一把老骨头 发布于 阅读:26 经验技巧

  1. BeeLlama.cpp 简介
    BeeLlama.cpp(简称 Bee)是 llama.cpp 的一个高性能分支,专注于提升本地 GGUF 模型推理的速度和上下文长度。它在保留 llama.cpp 工具和服务器流程的基础上,增加了以下关键特性:
    DFlash 推测解码:利用小型草稿模型预测多个 token,由主模型验证,显著提升生成速度(尤其适用于代码、结构化文本等低熵内容)。
    自适应草稿控制:动态调整草稿长度以优化吞吐量。
    TurboQuant/TCQ KV 缓存压缩:提供高达 7.5 倍的 KV 缓存压缩,有效节省显存。
    推理循环保护:检测并干预重复的推理输出。
    完整的多模态支持:支持视觉输入。
  2. 系统要求
    操作系统:Ubuntu(推荐 20.04 或更高版本)
    GPU:NVIDIA RTX 2080 Ti (22GB VRAM)
    CUDA:12.4 或 13.1
    依赖:CMake, GCC, NVIDIA 驱动及 CUDA Toolkit
  3. 安装步骤
    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 会自动检测。

  1. 模型准备
    你需要下载三个文件(以 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/。
  2. 启动服务器(针对 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 上。

  1. 故障排除
    显存不足 (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 技术获得高效的推理体验。