菜单

命令行参数

相关源文件

本文档为 run_inference.py 中所有可用的命令行参数提供了全面的参考。该脚本是 BitNet.cpp 框架中底层 C++ llama-cli 可执行文件的一个用户友好的 Python 包装器。有关使用不同模型和参数运行推理的实际示例,请参阅推理示例

概述

run_inference.py 脚本提供了一个简化的接口,用于运行 BitNet 模型的推理。它将其命令行参数转换为 llama-cli 可执行文件所需的适当参数,由该可执行文件执行实际推理。

来源:run_inference.py16-37

命令流

下图展示了参数如何从用户输入流经 run_inference.pyllama-cli 可执行文件

来源:run_inference.py16-37 run_inference.py43-55

可用参数

下表列出了 run_inference.py 的所有可用命令行参数

参数短期类型默认必填描述
--model-m字符串models/bitnet_b1_58-3B/ggml-model-i2_s.gguf用于推理的模型文件路径
--n-predict-n整数128要预测(生成)的 token 数量
--prompt-p字符串不适用用于文本生成的输入提示
--threads-t整数2用于推理的 CPU 线程数
--ctx-size-c整数2048上下文窗口的 token 大小
--temperature-temp浮点数0.8控制随机性的温度参数
--conversation-cnv标志为指令模型启用聊天模式

来源:run_inference.py46-53 README.md210-231

详细解释

模型路径 (-m, --model)

指定用于推理的 GGUF 模型文件路径。这应指向已使用 setup_env.py 脚本准备好的模型。

python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf -p "Hello, world!"

默认值为 models/bitnet_b1_58-3B/ggml-model-i2_s.gguf

Token 预测数量 (-n, --n-predict)

控制模型响应提示时生成的 token 数量。值越高,输出越长,但需要更多时间和计算资源。

python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf -p "Hello, world!" -n 256

默认值为 128 个 token。

提示 (-p, --prompt)

模型继续生成的输入文本提示。这是唯一必需的参数。

python run_inference.py -p "Once upon a time in a land far away,"

在对话模式下,此参数用作系统提示。

线程 (-t, --threads)

指定用于推理期间并行处理的 CPU 线程数。较高的值可以在多核系统上提高性能,但仅限于由您的硬件决定的某个点。

python run_inference.py -p "Hello, world!" -t 4

默认值为 2 个线程。

上下文大小 (-c, --ctx-size)

设置上下文窗口的最大 token 大小。这决定了模型在生成过程中可以“记住”多少文本。较大的值允许更长的输入和更连贯的输出,但会消耗更多内存。

python run_inference.py -p "Hello, world!" -c 4096

默认值为 2048 个 token。

温度 (-temp, --temperature)

控制生成文本的随机性。较高的值(例如,1.0)使输出更具创造性和多样性,但可能缺乏重点。较低的值(例如,0.2)使输出更具确定性和重点。

python run_inference.py -p "Hello, world!" -temp 0.5

默认值为 0.8。

对话模式 (-cnv, --conversation)

为指令微调模型启用聊天模式。当存在此标志时,由 -p 指定的提示将用作系统提示。

python run_inference.py -p "You are a helpful assistant" -cnv

默认情况下,此模式已禁用。

来源:run_inference.py46-53 README.md210-231

内部参数处理

下图说明了 run_inference.py 如何处理参数并将其传递给 llama-cli

来源:run_inference.py16-37

使用示例

基本用法

python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf -p "Microsoft Corporation is an American multinational corporation and technology company headquartered in Redmond, Washington."

带自定义参数的聊天模式

python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf -p "You are a helpful assistant" -cnv -t 4 -n 256 -temp 0.7

性能优化设置

python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf -p "Explain quantum computing" -t 8 -c 4096

来源:README.md204-231

性能考量

  • 线程数:从系统物理核心数的一半开始设置线程数,然后根据性能进行调整。
  • 上下文大小:较大的上下文大小会消耗更多内存。如果遇到内存不足错误,请减小上下文大小。
  • 温度:对于事实性回复,使用较低的温度(0.2-0.5)。对于创造性回复,使用较高的温度(0.7-1.0)。
  • 模型选择:较小的模型运行速度更快,但可能产生较低质量的结果。根据您的硬件能力和质量要求选择合适的模型大小。

来源:README.md232-270