RWKV

TextGen 推理教程

TextGen(原 Text Generation WebUI)是一个本地大语言模型桌面程序与 Web 界面,可以使用 llama.cpp 后端运行 RWKV GGUF 模型。

本文介绍使用便携版运行 RWKV GGUF 的流程。需要训练、Transformers 或其他扩展时,再使用上游提供的完整安装方式。

下载并启动 TextGen

TextGen Releases 下载适合当前系统和硬件的便携包。便携包已经包含 llama.cpp 和所需依赖。

设备便携包选择
NVIDIA GPUnvidia-smi 显示 CUDA 13.1 或更高版本时选择 CUDA 13.1,否则选择 CUDA 12.4
AMD / Intel GPU优先选择 Vulkan
支持 ROCm 7.2 的 AMD GPU也可以选择 ROCm
Apple SiliconmacOS arm64
Intel MacmacOS x86_64
仅使用 CPUCPU-only

下载完成后,将便携包解压到一个独立文件夹。

**macOS 用户还需要完成以下操作:**首次启动前,在终端运行下面的命令,移除解压文件的隔离属性。请将路径替换成实际的 TextGen 文件夹:

xattr -cr /path/to/textgen-folder

完成上述准备后,根据系统启动 TextGen:

  • **Windows:**双击 textgen.bat
  • **Linux 和 macOS:**在解压目录中运行 ./textgen

启动成功后,TextGen 会打开桌面界面。

如果希望改用浏览器界面,请从终端启动并添加 --no-electron

  • Windows PowerShell:.\textgen.bat --no-electron
  • Linux 和 macOS:./textgen --no-electron

随后访问 http://127.0.0.1:7860

如果需要训练、Transformers、ExLlamaV3 或其他扩展,请改用 TextGen 完整安装说明

下载 RWKV 模型

TextGen 支持多种模型加载器,其中 llama.cpp 模型加载器支持 RWKV 模型。

llama.cpp 使用 gguf 格式的 RWKV 模型。可以从 RWKV7-Gxx-GGUF 合集 下载 RWKV-7 G 系列模型。

自己微调了一个 RWKV-7 模型,想从 pth 转 gguf 格式?查看 llama.cpp 文档 - 从 pth 模型转换为 gguf

同一个 RWKV 模型通常提供多种量化文件。第一次运行 G1i 1.5B 时,可以先选择 Q5_K_M

  • 内存或显存不足时,可以改用 Q4_K_M
  • 内存或显存充足时,可以选择 Q6_KQ8_0 或 FP16
  • 0.1B 和 0.4B 模型优先选择 Q8_0 或 FP16

等待模型下载完毕,将模型文件放到 TextGen 的 user_data/models 文件夹中:

textgen
└── user_data
    └── models
        └── rwkv7-g1i-1.5b-Q5_K_M.gguf

加载 RWKV 模型

回到 TextGen 界面,配置并加载 RWKV 模型:

  1. 点击 Model 标签,切换到模型选择和配置页面
  2. 点击 Model 下拉菜单,选择一个 RWKV 模型
  3. 点击 Model loader 下拉菜单,选择 llama.cpp 作为模型加载器
  4. 保持 GGUF 内置的聊天模板。只有自制 GGUF 缺少模板时,才需要手动配置指令模板
  5. 点击 Load 按钮加载 RWKV 模型

如果 Model 下拉菜单未显示模型文件,可能是界面尚未同步 user_data/models 文件夹中的模型列表。

点击右侧的 🔄 刷新按钮,更新模型列表。

成功加载后,状态区域会显示 Successfully loaded 和当前模型名称。

开始聊天

模型加载完毕后,按照以下顺序开始对话:

  1. 回到 Chat 页面
  2. 选择 instruct 模式
  3. 输入消息并点击 Send

界面中出现模型回复,即表示模型、加载器和聊天模板均可正常使用。

其他参数说明

除了模型文件、llama.cpp 模型加载器和 GGUF 内置的聊天模板以外,TextGen 还提供一系列可调整的参数。这些参数会影响设备分配、上下文长度和生成速度。

通常可以保持默认参数运行模型。如需修改,请参考以下参数说明:

参数什么时候调整
gpu-layers分配到 GPU 的层数。-1 表示自动选择,0 表示只使用 CPU。通常保持 -1
ctx-size上下文长度。gpu-layers-1 时可将其设为 0,让程序自动选择。
tensor_split多 GPU 的显存分配比例,例如 30,70。单 GPU 不需要设置。
batch_size / ubatch_size控制提示词处理批量。通常保持默认,只有在调优速度或解决显存不足时再修改。
threads / threads_batchCPU 线程数。通常分别使用物理核心数、逻辑核心数。
split-mode多 GPU 切分方式。tensor 模式可能提高多卡速度。
no-mmap / mlock / numa内存映射、锁页和多路 CPU 调优选项。没有明确问题时保持默认。
这份文档对您有帮助吗?