菜单

推理示例

相关源文件

本页面提供了使用 BitNet.cpp 运行推理的实用示例,展示了如何针对各种用例使用不同的模型和参数。有关命令行参数的信息,请参阅命令行参数

目的与范围

本文档涵盖:

  • 不同模型的基本推理示例
  • 展示参数变化(令牌、温度、线程等)的示例
  • 不同场景(文本补全、聊天等)的用例
  • 基准测试示例

推理工作流概述

在深入了解示例之前,我们先了解 BitNet.cpp 中推理是如何执行的

来源:run_inference.py16-37

基本推理示例

简单文本补全

此命令使用 BitNet-b1.58-2B-4T 模型和 i2_s 量化,从提示“Microsoft Corporation is”开始生成文本。

指令模型聊天模式

对于为指令遵循而微调的模型(如 Falcon3-Instruct),请使用对话模式

在此模式下,由 -p 指定的提示将用作系统提示,模型将进入交互式聊天会话。

来源:README.md207-209 run_inference.py35-36

参数示例

run_inference.py 脚本接受多个参数,用于控制推理过程的不同方面

来源:run_inference.py46-53

模型选择示例

不同的模型在质量和速度之间提供权衡

来源:README.md84-110

生成长度示例

控制生成的令牌数量

来源:run_inference.py48

线程计数示例

调整 CPU 线程数以获得最佳性能

来源:run_inference.py50

上下文大小示例

设置最大上下文大小

来源:run_inference.py51

温度示例

调整温度参数以控制随机性

来源:run_inference.py52

用例示例

BitNet.cpp 支持各种用例,从简单的文本补全到交互式对话

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

文本补全示例

适用于简单文本补全任务

交互式聊天示例

用于与指令调优模型进行交互式对话

-cnv 标志激活对话模式,在该模式下,系统将初始提示视为系统消息,然后进入交互式聊天会话。

来源:run_inference.py53

问答示例

针对具有更确定性答案的事实问题

较低的温度设置有助于为事实问题生成更确定和集中的响应。

创意写作示例

用于创意内容生成

较高的温度设置和较长的令牌计数对于创意写作任务很有用。

基准测试示例

要使用不同模型对 BitNet.cpp 的性能进行基准测试,请使用 e2e_benchmark.py 脚本

基准测试脚本参数

参数描述默认
-m, --model模型文件路径必填
-n, --n-token要生成的令牌数量128
-p, --n-prompt要处理的提示令牌数量512
-t, --threads使用的线程数2

用于使用虚拟模型进行测试

此方法有助于在不下载大型模型文件的情况下测试框架性能。

来源:README.md234-268

内核类型示例

BitNet.cpp 根据您的硬件平台提供不同的优化内核

内核硬件描述
i2_sARM64 和 x86_64 均支持所有平台的默认内核类型
tl1ARM64(例如 Apple Silicon)为 ARM 处理器优化
tl2x86_64(例如 Intel、AMD)为 x86 处理器优化

在模型准备期间指定内核类型

然后使用准备好的模型运行推理

来源:setup_env.py49-52 README.md178-186

支持模型示例

以下是 BitNet.cpp 支持的不同模型的示例

官方 BitNet 模型

Falcon3 系列模型示例

Llama3 模型示例

来源:README.md66-138 setup_env.py13-47