Striveonger

vuePress-theme-reco Mr.Lee    2015 - 2026
Striveonger Striveonger
主页
分类
  • 笔记
  • 文章
  • 工具
  • 读书/工具
标签
时间轴
简历
author-avatar

Mr.Lee

282

Article

153

Tag

主页
分类
  • 笔记
  • 文章
  • 工具
  • 读书/工具
标签
时间轴
简历

安装并使用 llama.cpp

vuePress-theme-reco Mr.Lee    2015 - 2026

安装并使用 llama.cpp

Mr.Lee 2026-05-23 16:33:23 AIllama.cppHuggingFace

这是弃用 Ollama 改用 llama.cpp 的过程

# 安装

# 安装
❯ brew install llama.cpp
# 验证
❯ llama-cli --version
version: 9240 (57cb35c88)
built with AppleClang 16.0.0.16000026 for Darwin arm64
1
2
3
4
5
6
命令 作用
llama-cli 命令行交互/推理
llama-server 启动本地 HTTP/OpenAI 兼容 API 服务
llama-bench 性能基准测试
llama-quantize 模型量化

# 使用

lama.cpp 使用 GGUF 格式的量化模型, 可以从这里找到你想用的模型 https://huggingface.co/bartowski

❯ llama-cli -n 32768  -c 32768 --temp 1.0 --top-p 1.0 --top-k 20 \
        --model ~/development/workspace/models/llama/Qwen3.5-2B-Q4_K_M.gguf \
        -ngl 99 \
        --reasoning off \
        -p "你好~"

Loading model...


▄▄ ▄▄
██ ██
██ ██  ▀▀█▄ ███▄███▄  ▀▀█▄    ▄████ ████▄ ████▄
██ ██ ▄█▀██ ██ ██ ██ ▄█▀██    ██    ██ ██ ██ ██
██ ██ ▀█▄██ ██ ██ ██ ▀█▄██ ██ ▀████ ████▀ ████▀
                                    ██    ██
                                    ▀▀    ▀▀

build      : b9240-57cb35c88
model      : Qwen3.5-2B-Q4_K_M.gguf
modalities : text

available commands:
  /exit or Ctrl+C     stop or exit
  /regen              regenerate the last response
  /clear              clear the chat history
  /read <file>        add a text file
  /glob <pattern>     add text files using globbing pattern


> 你好~

你好!有什么我可以帮助你的吗?😊

[ Prompt: 83.9 t/s | Generation: 60.2 t/s ]



❯ llama-server -n 32768  -c 32768 --temp 1.0 --top-p 1.0 --top-k 20 \
        --model ~/development/workspace/models/llama/Qwen3.5-2B-Q4_K_M.gguf \
        -ngl 99 \
        --reasoning off \
        --host 127.0.0.1 \
        --port 38081 \
        --timeout 30000 \
        --ui
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

整体体感上, 确实要比Ollama好用太多. 而且可以从 Hugging Face 下载

# 参数说明

# llama-cli核心参数说明

# 1. 通用参数

参数 说明 默认值 / 备注
-h, --help 显示帮助并退出 —
--version 显示版本与构建信息 —
--license 显示源码许可证与依赖 —
--cache-list 显示缓存中的模型列表 —
-t, --threads N 生成阶段使用的 CPU 线程数 默认 -1(自动)
-tb, --threads-batch N 批处理与提示词处理线程数 同 --threads
-c, --ctx-size N 上下文窗口大小 0(从模型读取)
-n, --predict N 预测 token 数量 -1(无限)
-b, --batch-size N 逻辑最大批大小 2048
-ub, --ubatch-size N 物理最大批大小 512
--flash-attn [on/off/auto] 是否启用 Flash Attention auto
-p, --prompt PROMPT 初始提示词 系统提示用 -sys
-f, --file FNAME 从文件读取提示词 —
--rope-scale N RoPE 缩放因子(扩展上下文) —
--mmap / --no-mmap 是否使用内存映射加载模型 默认启用
--mlock 锁定模型到内存,防止交换 —
-ngl, --n-gpu-layers N 卸载到显存的层数 auto
-dev, --device dev1,dev2 指定使用的设备(GPU) —
-m, --model FNAME 要加载的模型路径 必填
-hf, --hf-repo <repo> 从 Hugging Face 下载模型 例:ggml-org/GLM-4.7-Flash-GGUF:Q4_K_M
--offline 离线模式(仅用缓存) —

# 2. 采样参数

参数 说明 默认值
--temp N 温度(随机性) 0.8
--top-k N Top-K 采样 40
--top-p N Top-P(核采样) 0.95
--min-p N Min-P 采样 0.05
--repeat-penalty N 重复惩罚系数 1.0
--repeat-last-n N 参与惩罚的最近 token 数 64
--dry-multiplier N DRY 采样强度 0.0(关闭)
--mirostat N Mirostat 采样(0/1/2) 0(关闭)
--logit-bias ID±BIAS 调整特定 token 概率 例:15043+1
--grammar FILE 用 BNF 语法约束输出 —
--json-schema SCHEMA 用 JSON Schema 约束输出 —

# 3. 推测解码参数

参数 说明 默认值
--spec-draft-model FNAME 草稿模型路径 —
--spec-draft-hf <repo> 从 HF 下载草稿模型 —
--spec-draft-n-max N 最大草稿 token 数 3
--spec-draft-n-min N 最小草稿 token 数 0
--spec-draft-ngl N 草稿模型显存层数 auto
--spec-type TYPE 推测解码类型 none
--draft-max / --draft-min ⚠️ 已移除,改用 --spec-draft-n-max/min —

# 4. 示例 / 交互参数

参数 说明 默认值
--color [on/off/auto] 彩色输出区分提示与生成 auto
--conversation 对话模式(自动启用聊天模板) 自动
--single-turn 仅单轮对话 false
--multiline-input 允许多行输入 —
--warmup 空运行预热 启用
--mmproj FILE 多模态投影文件路径 —
--image FILE 输入图片(多模态模型) 可多个
--reasoning [on/off/auto] 是否启用推理(思考)模式 auto
--reasoning-budget N 推理 token 预算 -1(无限制)
--chat-template TEMPLATE 自定义 Jinja 聊天模板 从模型读取
--show-timings 显示每轮耗时统计 true

# llama-server核心参数说明

# 一、通用参数

参数 说明 默认值 / 备注
-h, --help 显示帮助并退出 —
--version 显示版本与构建信息 —
--license 显示源码许可证与依赖 —
--cache-list 显示缓存中的模型列表 —
--completion-bash 输出 Bash 自动补全脚本 —
-t, --threads N 生成阶段使用的 CPU 线程数 -1(自动)
-tb, --threads-batch N 批处理与提示词处理线程数 同 --threads
-C, --cpu-mask M CPU 亲和性掩码 (十六进制) ""
-Cr, --cpu-range lo-hi CPU 亲和性范围 —
--cpu-strict <0\|1> 严格 CPU 绑定 0(关闭)
--prio N 进程/线程优先级 (低-1 到 实时3) 0(普通)
--poll <0...100> 轮询等待工作的级别 50
-c, --ctx-size N 上下文窗口大小 0(从模型读取)
-n, --predict N 预测 Token 数量 -1(无限)
-b, --batch-size N 逻辑最大批大小 2048
-ub, --ubatch-size N 物理最大批大小 512
--keep N 保留初始提示词的 Token 数 0
--swa-full 使用全尺寸 SWA 缓存 false
-fa, --flash-attn [on\|off\|auto] 启用 Flash Attention auto
--perf / --no-perf 启用内部性能计时 false
-e, --escape / --no-escape 处理转义字符 (\n, \t等) true
--rope-scaling {none,linear,yarn} RoPE 频率缩放方法 从模型读取
--rope-scale N RoPE 上下文缩放因子 —
--rope-freq-base N RoPE 基频 (用于 NTK 感知缩放) 从模型读取
--rope-freq-scale N RoPE 频率缩放因子 —
--yarn-* YaRN 系列微调参数 高级优化
-kvo, --kv-offload / -nkvo 启用 KV Cache 卸载 默认启用
--repack / --no-repack 启用权重重打包 默认启用
--no-host 绕过主机缓冲区 —
-ctk, --cache-type-k TYPE KV Cache 中 K 的数据类型 f16
-ctv, --cache-type-v TYPE KV Cache 中 V 的数据类型 f16
--mlock 锁定模型在 RAM 中 (防交换) —
--mmap / --no-mmap 使用内存映射加载模型 默认启用
-dio, --direct-io 使用 DirectIO (若可用) 默认禁用
--numa TYPE NUMA 优化 (distribute, isolate) —
-dev, --device <dev1,dev2> 指定卸载设备 (GPU) —
--list-devices 列出可用设备并退出 —
-ot, --override-tensor 覆盖张量缓冲区类型 —
-cmoe, --cpu-moe 将 MoE 专家权重保留在 CPU —
-ncmoe, --n-cpu-moe N 前 N 层的 MoE 权重保留在 CPU —
-ngl, --gpu-layers N 卸载到显存的层数 auto
-sm, --split-mode {none,layer,row,tensor} 多 GPU 模型切分模式 layer
-ts, --tensor-split N0,N1... 各 GPU 卸载比例 —
-mg, --main-gpu INDEX 主 GPU 索引 0
-m, --model FNAME 要加载的模型路径 必填
-hf, --hf-repo <repo> 从 Hugging Face 下载模型 例: ggml-org/GLM-4.7-Flash-GGUF:Q4_K_M
--offline 离线模式 (仅用缓存) —

# 二、采样参数

参数 说明 默认值
--samplers SAMPLERS 采样器执行顺序 (分号分隔) penalties;dry;top_n_sigma;...
-s, --seed SEED 随机数种子 -1(随机)
--temp N 温度 (随机性) 0.80
--top-k N Top-K 采样 40
--top-p N Top-P (核采样) 0.95
--min-p N Min-P 采样 0.05
--top-nsigma N Top-N-Sigma 采样 -1.0(禁用)
--xtc-probability N XTC 采样概率 0.00
--typical-p N 局部典型采样 1.00
--repeat-last-n N 重复惩罚参考的最近 Token 数 64
--repeat-penalty N 重复惩罚系数 1.00
--presence-penalty N 存在惩罚 0.00
--frequency-penalty N 频率惩罚 0.00
--dry-multiplier N DRY 采样强度 0.00
--dry-allowed-length N DRY 允许长度 2
--mirostat N Mirostat 采样 (0=关, 1=v1, 2=v2) 0
--mirostat-lr N Mirostat 学习率 0.10
--mirostat-ent N Mirostat 目标熵 5.00
-l, --logit-bias ID±BIAS 调整特定 Token 概率 例: 15043+1
--grammar FILE 用 BNF 语法约束输出 —
-j, --json-schema SCHEMA 用 JSON Schema 约束输出 —

# 三、推测解码参数

用于加速生成,需配合草稿模型使用

参数 说明 默认值
--spec-draft-model FNAME 草稿模型路径 —
--spec-draft-hf <repo> 从 HF 下载草稿模型 —
--spec-draft-ngl N 草稿模型显存层数 auto
--spec-draft-n-max N 最大草稿 Token 数 3
--spec-draft-n-min N 最小草稿 Token 数 0
--spec-draft-p-split P 推测解码分割概率 0.10
--spec-type TYPE 推测解码类型 none
--spec-ngram-* N-gram 推测相关参数 —

# 四、服务器专用参数

# 1. 核心服务配置
参数 说明 默认值
--host HOST 监听 IP 或 Unix Socket 127.0.0.1
--port PORT 监听端口 8080
--api-prefix PREFIX API 路由前缀 空
--threads-http N HTTP 请求处理线程数 -1(自动)
--timeout N 读写超时时间 (秒) 600
# 2. 并发与缓存
参数 说明 默认值
-np, --parallel N 服务器槽位数量 (并发数) -1(自动)
-cb, --cont-batching / -nocb 启用连续批处理 (动态批处理) 启用
--cache-prompt / --no-cache-prompt 启用提示词缓存 启用
--cache-reuse N KV 移位复用的最小块大小 0
--slot-save-path PATH 保存槽位 KV Cache 的路径 禁用
--kv-unified / --no-kv-unified 使用统一 KV 缓冲区 自动
--cache-ram N 最大缓存大小 (MiB) 8192
# 3. 多模态
参数 说明 默认值
--mmproj FILE 多模态投影文件路径 —
--mmproj-auto / --no-mmproj 自动使用多模态投影 启用
--image-min/max-tokens N 每张图片占用的 Token 范围 从模型读取
--model-vocoder FNAME 音频生成声码器模型 —
# 4. 聊天与模板
参数 说明 默认值
--chat-template JINJA 自定义 Jinja 聊天模板 从模型读取
--reasoning [on\|off\|auto] 启用推理/思考模式 auto
--reasoning-budget N 推理 Token 预算 -1(无限制)
--reasoning-format FORMAT 推理内容返回格式 auto
--jinja / --no-jinja 启用 Jinja 模板引擎 启用
# 5. Web UI 与安全
参数 说明 默认值
--ui / --no-ui 启用 Web 界面 启用
--ui-config JSON 默认 UI 配置 (JSON) —
--api-key KEY API 密钥 (逗号分隔) 无
--ssl-cert-file FILE SSL 证书路径 —
--ssl-key-file FILE SSL 私钥路径 —
--metrics 启用 Prometheus 监控端点 禁用
--media-path PATH 本地媒体文件目录 禁用
# 6. 路由器模式
参数 说明 默认值
--models-dir PATH 模型目录 禁用
--models-max N 最大同时加载模型数 4
--models-autoload / --no-models-autoload 自动加载模型 启用