命令行界面(CLI)通过各种专用工具为llama.cpp的推理功能提供了直接访问。本文档涵盖了CLI工具的架构、参数系统和使用模式。有关HTTP API访问,请参阅HTTP服务器。有关详细的示例应用程序,请参阅示例应用程序。
llama.cpp提供了几个命令行工具,每个工具都针对特定用例进行了优化
CLI工具概述 主要工具llama-cli负责交互式推理和文本补全,而专用工具则负责基准测试和模型评估等特定任务。
来源: README.md303-514 Makefile6-49
llama-cli工具是模型交互的主要接口,支持多种操作模式
CLI参数处理流程 参数通过通用的参数系统流动,以初始化模型组件并确定执行模式。
来源: common/arg.cpp1-50 common/common.h222-400
CLI工具使用一个全面的参数系统,该系统处理模型配置、推理设置和执行选项
参数系统组织 模块化参数系统支持各种配置源和专用参数组,用于模型执行的不同方面。
来源: common/common.h185-400 common/arg.cpp67-104
当检测到聊天模板时,llama-cli的默认模式
关键参数
-cnv:强制对话模式--chat-template:指定模板(chatml、llama-2等)--in-prefix:自定义用户输入前缀--reverse-prompt:用户输入的停止序列来源: README.md307-335
单次文本生成,无对话上下文
关键参数
-p:提示文本-n:要生成的令牌数量-no-cnv:禁用对话模式--temp:采样温度来源: README.md337-348
使用GBNF语法进行结构化输出生成
语法系统
grammars/目录中的内置语法来源: README.md350-363
参数解析系统使用common_arg类进行声明式处理
| 参数类型 | 结构 | 关键字段 |
|---|---|---|
| 模型 | common_params_model | path,url,hf_repo,hf_file |
| 采样 | common_params_sampling | temp,top_p,top_k,seed |
| CPU | cpu_params | n_threads,cpumask,priority |
| 上下文 | common_params | n_ctx,n_batch,n_predict |
环境变量支持:系统支持环境变量用于通用参数,允许在没有命令行参数的情况下进行配置。
来源: common/common.h50-57 common/common.h128-183 common/arg.cpp96-108
CLI工具通过标准化的初始化模式与核心llama.cpp库集成
标准初始化模式 所有CLI工具都遵循此初始化序列,以确保正确的资源管理和后端配置。
来源: examples/embedding/embedding.cpp73-98 common/common.cpp350-364
CLI工具通过cpu_params结构支持复杂的CPU管理
CPU配置选项
来源: common/common.cpp253-275 common/common.cpp175-193
CLI工具可以自动从Hugging Face下载模型
下载特性
来源: README.md282-290 common/arg.cpp489-501
命令行界面为与llama.cpp功能交互提供了一种全面而灵活的方式,从简单的文本补全到复杂的多模态推理场景。模块化的参数系统和标准化的初始化模式确保了所有CLI工具的一致性,同时支持高级配置选项以满足高级用户需求。