本文档为 run_inference.py 中所有可用的命令行参数提供了全面的参考。该脚本是 BitNet.cpp 框架中底层 C++ llama-cli 可执行文件的一个用户友好的 Python 包装器。有关使用不同模型和参数运行推理的实际示例,请参阅推理示例。
run_inference.py 脚本提供了一个简化的接口,用于运行 BitNet 模型的推理。它将其命令行参数转换为 llama-cli 可执行文件所需的适当参数,由该可执行文件执行实际推理。
下图展示了参数如何从用户输入流经 run_inference.py 到 llama-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。
-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
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