1. 概述

llama-server 是 llama.cpp 项目中的一个核心组件,用于将大语言模型(LLM)以 HTTP 服务器的形式发布。通过简单的命令行参数配置,它可以提供包括文本补全、对话补全(Chat Completions)、文本嵌入(Embeddings)和重排序(Reranking)在内的多种功能,并支持多用户并发、推测解码等高级特性。

2. 核心启动参数

llama-server 的参数涵盖了模型加载、服务监听、上下文管理、性能调优以及功能开关等多个方面。以下是一些最常用的参数分类说明。

2.1 模型与基础配置

这是启动服务最基本的参数,用于指定要加载的模型和服务监听地址。

示例:

1
llama-server -m models/<模型路径> --host 0.0.0.0 --port 8080

2.2 上下文管理与并发

这些参数控制模型运行的上下文窗口大小和并发处理能力,直接影响显存占用和服务吞吐量。

示例:

1
2
# 支持4个并发请求,每个请求可用上下文为4096 (总16384/4)
llama-server -m model.gguf -c 16384 -np 4

2.3 采样与控制参数

这些参数用于控制文本生成的随机性和多样性,可以在启动时设置全局默认值。

2.4 功能模式开关

llama-server 支持多种运行模式,通过以下参数开启。

示例:

1
2
# 启动嵌入模式服务,并使用CLS池化策略
llama-server -m embedding-model.gguf --embedding --pooling cls -ub 8192

2.5 路由模式与多模型管理

从较新版本开始,llama-server 引入了路由模式(Router Mode),允许在一个服务实例中动态管理多个模型。

路由模式配置文件 (models.ini) 示例

1
2
3
4
5
6
7
8
9
[model-a]
ctx-size = 32768
temp = 0.6
hf = unsloth/Qwen3-4B-128K-GGUF:Q8_K_XL

[model-b]
ctx-size = 256000
temp = 1.0
hf = unsloth/Nemotron-3-Nano-30B-A3B-GGUF:BF16

示例:

1
2
# 启动路由模式,管理./models目录下的模型,最多同时加载2个
llama-server --models-dir ./models --models-max 2

2.6 硬件优化与高级特性

2.7 安全与认证

2.8 其他实用参数

3. 使用示例

3.1 基础聊天服务

启动一个最基础的聊天服务,监听在本地的 8080 端口。

1
llama-server -m ~/models/llama-3-8b-instruct.Q4_K_M.gguf

3.2 高性能并发服务

启动一个支持多用户并发、长上下文,并开启 Flash Attention(30系以上n卡支持) 优化的服务。

1
2
3
4
5
6
llama-server -m ~/models/qwen2.5-7b-instruct.Q5_K_M.gguf \
-c 32768 \
-np 4 \
--flash-attn on \
--host 0.0.0.0 \
--port 8080

通过灵活组合这些参数,你可以根据实际需求和应用场景,将 llama-server 打造成一个高效、稳定的本地大模型推理服务。要获取最完整和最新的参数列表,可以直接在命令行运行 llama-server --help。