预编译包(没有cuda)
可用包
curl -s https://api.github.com/repos/ggml-org/llama.cpp/releases/latest \ | jq -r '.tag_name, .assets[].name'下载预编译包
mkdir -p ~/llama/release cd ~/llama wget -c -P release "https://github.com/ggml-org/llama.cpp/releases/download/b8864/llama-b8864-bin-ubuntu-vulkan-x64.tar.gz" tar -xzf release/llama-b8864-bin-ubuntu-vulkan-x64.tar.gz -C ~/llama/versions/b8864-vulkan软链接
ln -sfn ~/llama/versions/b8864-vulkan ~/llama/current ~/llama/current/llama-server 执行
编译cuda
显卡
# 卸载旧驱动 sudo apt purge -y "*nvidia*" "*cuda*" sudo apt autoremove -y sudo reboot # 安装依赖 sudo apt update sudo apt install -y build-essential dkms # 添加 NVIDIA 官方密钥与源 # Ubuntu 22.04 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb # Ubuntu 24.04 # wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb # sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt update # 安装驱动 V100 推荐 550/555 sudo apt install -y nvidia-driver-550 # 安装 CUDA Toolkit 12.8(V100 最新支持版) sudo apt install -y cuda-toolkit-12-8 sudo reboot # 配置环境 echo 'export PATH=/usr/local/cuda-12.8/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc # 验证 nvidia-smi nvcc -V deviceQuery安装
# 1. 安装依赖 sudo apt update && sudo apt install -y build-essential cmake git nvidia-cuda-toolkit # 2. 拉代码 git clone https://github.com/ggerganov/llama.cpp cd llama.cpp # 3. 编译(自动建 build) cmake -B build -DGGML_CUDA=ON -DLLAMA_CURL=ON cmake --build build --config Release -j$(nproc)升级
# 进入目录 cd ~/llama.cpp # 更新代码 git -c http.proxy="socks5://192.168.1.120:7890" pull # 旧版本号 llama-server --version # 备份旧编译 mv build build_8870 # 启用 CUDA + 启用 CURL (CURL默认已开启,此为显式开启) cmake -B build -DGGML_CUDA=ON -DLLAMA_CURL=ON # 编译 cmake --build build --config Release -j$(nproc) # 验证 ./build/bin/llama-cli --version llama-server --version version: 8742 (7b6912533) version: 8865 (cfe9838d2) version: 8870 (82209efb7)
使用操作
- 启动服务:./llama-server -m ./models/q4_k_m.gguf --port 8080 --host 0.0.0.0
- 企业方案 - 全显卡+多用户+密钥
- ./llama-server -m ./model.gguf -ngl 99 -c 4096 --port 8080 --api-key "my-secret-key" --parallel 4
-m ./model.gguf: 指定模型文件。对于 Qwen3.5-27B 这种大模型,.gguf是运行的前提。-ngl 99(No Graphics Layers): 这里的99是一个常用的小技巧,表示“把所有层都塞进显卡”。如果显存够大,模型推理将完全在 GPU 上完成,速度最快。-c 4096(Context Size): 设定上下文窗口大小为 4096 个 Token。这决定了模型能“记得”多长的对话。注意:这个数值越大,占用的显存就越多,尤其是开启多并发时。- 显存预警: 注意,
上下文 (c)和并发 (parallel)是相乘的关系。4 * 4096的 KV Cache 占用显存会显著高于单人模式。
- 极致性能 - 全显存加速 + Flash Attention
- ./llama-server -m ./Qwen3.5-27B-claude.Q4_K_M.gguf -ngl 99 -c 32768 --fa --cache-type-k q8_0 --parallel 1
-ngl 99:尝试将所有层(Qwen3.5-27B 通常约 28-32 层)卸载到 GPU。--fa(Flash Attention):必开。大幅减少长文本时的显存占用并提升速度。--cache-type-k q8_0:将 KV 缓存的 Key 量化为 8-bit,在几乎不损失精度的情况下节省约 1/4 的显存,让你能开更大的上下文。
- 保命方案 - 混合推理 + 内存缓存
- ./llama-server -m ./Qwen3.5-27B-claude.Q4_K_M.gguf -ngl 20 -c 16384 --cram 256 --no-mmap
-ngl 20:只把前 20 层放入显存,剩下的交给 CPU。你可以根据报错信息微调这个数字。--cram 256:这是 2026 年版本的新特性(Host-memory prompt caching),将提示词缓存放在系统内存里,减少 GPU 负担。--no-mmap:强制模型完整加载到内存/显存中,防止因为磁盘读取导致的推理卡顿。
- Agent方案 - 结构化输出 + 高并发
- ./llama-server -m ./Qwen3.5-27B-claude.Q4_K_M.gguf --port 8080 --parallel 4 --ctx-size 8192 --cont-batching --api-key "your_secret_key"
--parallel 4:同时开启 4 个逻辑插槽,支持 4 人同时对话。--cont-batching:开启连续批处理,极大提升 API 的吞吐量。- 注意:Qwen3.5 对 Function Calling(函数调用)有原生优化,配合
llama-server的标准 OpenAI 接口效果极佳。 - Claude方案 - 角色扮演+长文写作
- ./llama-server -m ./Qwen3.5-27B-claude.Q4_K_M.gguf --temp 0.7 --min-p 0.05 --repeat-penalty 1.05 --top-k 40
--min-p 0.05:目前公认比top-p更好的采样方式,能有效过滤掉低概率的废话,让输出更聪明。
单次对话
./llama-cli -m ./models/q4_k_m.gguf -p "你好,请自我介绍一下" -n 512 -m: 指定模型路径。 -p: 提示词 (Prompt)。 -n: 生成文本的最大长度。 -t: 使用的 CPU 线程数(通常设置为物理核心数)。交互对话
./llama-cli -m ./models/q4_k_m.gguf -i -cnv --color查看模型配置
http://192.168.1.142:8080 web对话, Model Information Current model details and capabilities Model Qwen3.5-27B-claude.gitQ4_K_M.gguf File Path /media/x99/storage/GGUF/Qwen3.5-27B-claude.Q4_K_M.gguf Context Size 34,048 tokens Training Context 262,144 tokens Model Size 15.4 GB Parameters 26.90B Embedding Size 5,120 Vocabulary Size 248,320 tokens Vocabulary Type 2 Parallel Slots 5 Build Info b8664-9c699074c Chat Template: ....