rwkv.cpp - 用于RWKV语言模型的CPU推理库
rwkv.cpp是一个专注于在CPU上运行RWKV语言模型的开源项目。它支持FP32、FP16以及INT4、INT5和INT8等量化格式的推理,同时也支持cuBLAS加速。该项目主要面向CPU使用场景,但也可以利用GPU进行加速。
主要特性
- 支持FP32、FP16、INT4、INT5、INT8等多种精度
- 专注于CPU推理,同时支持cuBLAS和hipBLAS加速
- 提供C语言库和Python封装
- 支持RWKV v4/v5/v6等多个版本的模型
- 支持LoRA微调检查点加载
快速上手
- 克隆代码仓库:
git clone --recursive https://github.com/saharNooby/rwkv.cpp.git
cd rwkv.cpp
-
获取rwkv.cpp库:
- 从Releases下载预编译库
- 或者自行编译(详见项目README)
-
下载并转换RWKV模型:
# 下载模型
# 转换模型格式
python convert_pytorch_to_ggml.py model.pth model.bin FP16
# 可选:量化模型
python quantize.py model.bin model-q8_0.bin Q8_0
- 运行模型:
# 生成文本
python generate_completions.py model-q8_0.bin
# 聊天机器人
python chat_with_bot.py model-q8_0.bin
性能参考
以下是在4核/8线程x86 CPU(AVX2)上运行RWKV v4 169M和1.5B模型的性能数据:
格式 | 困惑度(169M) | 延迟(ms,1.5B) | 文件大小(GB,1.5B) |
---|---|---|---|
Q4_0 | 17.507 | 76 | 1.53 |
Q4_1 | 17.187 | 72 | 1.68 |
Q5_0 | 16.194 | 78 | 1.60 |
Q5_1 | 15.851 | 81 | 1.68 |
Q8_0 | 15.652 | 89 | 2.13 |
FP16 | 15.623 | 117 | 2.82 |
FP32 | 15.623 | 198 | 5.64 |
更多资源
rwkv.cpp为在CPU上运行大型RWKV语言模型提供了高效的解决方案。无论是用于研究还是生产环境,该项目都能帮助开发者以较低的硬件需求实现优秀的推理性能。欢迎开发者们尝试使用并为项目做出贡献!