llama.cpp ubuntu部署

NikolayKozlof给的步骤

  • 安装

    Step 1: Clone llama.cpp from GitHub.
    git clone https://github.com/ggerganov/llama.cpp
    
    Step 2: Move into the llama.cpp folder and build it with LLAMA_CURL=1 flag along with other hardware-specific flags (for ex: LLAMA_CUDA=1 for Nvidia GPUs on Linux).
    cd llama.cpp && LLAMA_CURL=1 make
  • 升级

    git ppull
    make clean && LLAMA_CURL=1 LLAMA_CUDA=1 make

AI给的步骤

  • 编译

    cd ~/llama.cpp;./make --build build --config Release 编译后获得 main llama-server quantize
    CUDA加速:make LLAMA_CUDA=1
    CUDA加速验证:llama-server --help  | grep -i cuda
  • 量化

    ./llama-quantize ./models/llama-v3-8b/fp16.gguf ./models/llama-v3-8b/q4_k_m.gguf Q4_K_M
  • 运行openai接口服务
    • 启动服务:./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: ....