RWKV模型转.st格式全攻略:2种方法把.pth模型无缝接入Ai00,免装Python
【免费下载链接】ai00_rwkv_serverThe all-in-one RWKV runtime box with embed, RAG, AI agents, and more.项目地址: https://gitcode.com/gh_mirrors/ai/ai00_rwkv_server
Ai00 是一款基于 Rust + Vulkan 的开源 RWKV 模型推理引擎,只支持.st(SafeTensors)格式的 RWKV 模型,而 RWKV 官方发布的模型多为.pth(PyTorch)格式。本文手把手教你把.pth模型转换成.st格式并接入 Ai00:方法一用官方 Python 脚本转换,方法二用 Ai00 内置的 Rust 转换工具免装 Python,全程只需 3 步,附常见问题解答,新手也能一次跑通。
为什么Ai00只认.st格式?
.pth是 PyTorch 的模型文件格式,依赖 Python 运行时;而 Ai00 追求纯本地、无 Python 依赖的高性能推理,因此采用.st(SafeTensors)格式——它零拷贝加载更快,也不存在 PyTorch 反序列化安全风险。
好消息是:转换只需一次。转换后的.st文件与.state状态文件一起放在assets/models/目录即可,效果如下:
💡 如果不想自己动手,也可以直接下载他人转换好的
.st模型(参考 docs/doc-models/models-name.md 中的模型命名规范)。
方法一:用官方Python脚本转换.pth模型
适合已有 Python 环境的用户。Ai00 内置了官方转换脚本 convert_safetensors.py,自动完成版本号识别、键名重命名与矩阵转置,并输出 FP16 精度的.st文件。
步骤:
1️⃣ 安装依赖(torch、safetensors 等,依赖清单见 assets/scripts/requirements.txt):
pip install -r assets/scripts/requirements.txt2️⃣ 执行转换(自动检测 RWKV 版本,如 v5/v6):
python assets/scripts/convert_safetensors.py \ --input RWKV-x060-World-3B-v2.1-20240417-ctx4096.pth \ --output RWKV-x060-World-3B-v2.1-20240417-ctx4096.st3️⃣ 看到Model detected: v6.0和Saved to xxx.st即转换成功 ✅
方法二:用内置Rust转换工具(免装Python)
适合不想装 Python的用户。Ai00 在 crates/converter/ 目录内置了一个纯 Rust 的转换工具 main.rs,核心逻辑与 Python 脚本一致(键名重命名 + 矩阵转置),只需一台装有 Rust 编译器的机器。
步骤:
1️⃣ 克隆仓库并进入 converter 目录:
git clone https://gitcode.com/gh_mirrors/ai/ai00_rwkv_server cd ai00_rwkv_server/crates/converter2️⃣ 编译并转换(-i为输入.pth文件,-o可选,默认输出同名.st):
cargo run --release -- -i RWKV-x060-World-3B-v2.1-20240417-ctx4096.pth3️⃣ 完成后,.pth同目录下会生成同名.st文件,无需任何 Python 环境 🎉
转换后:3步把.st模型接入Ai00
第 1 步:下载 Ai00 预编译包(按系统选择对应包名,详见 docs/doc-guide/release.md)
第 2 步:放置模型文件——把.st模型放入解压后的assets/models/目录,并修改 Config.toml 中的模型配置(参数详解见 docs/doc-guide/config.md):
[model] name = "RWKV-x060-World-3B-v2.1-20240417-ctx4096.st" # 填你的.st文件名 path = "assets/models" # 模型存放路径第 3 步:启动并验证——运行 Ai00 可执行文件,在终端日志中看到model reloaded即表示.st模型加载成功:
随后打开浏览器访问 WebUI(默认http://localhost:65530),即可开始与 RWKV 模型对话。
常见问题(FAQ)
Q:转换前后模型效果会变吗?不会。
.st与.pth只是格式不同,权重数值一致,且统一以 FP16 精度存储。Q:.st 和 .state 有什么区别?
.st是模型权重文件;.state是 RWKV 的隐藏状态文件,用于微调模型的行为风格(如强化中文单轮问答),两者不可互相替代。命名规范详见 docs/doc-models/state-model.md。Q:支持哪些 RWKV 版本?两种方法均可自动识别 RWKV 4/5/6 等架构版本,转换日志会打印检测到的版本号;推荐使用 RWKV-6(x060)系列模型。
Q:转换报错或想换更简单的方案?直接下载社区已转换好的
.st模型,跳过转换步骤,放入assets/models/后即可使用。
总结:有 Python 用方法一,想省事装 Rust 工具用方法二(或直接用现成.st模型),3 步接入 Ai00,即可在本地以 Vulkan 加速流畅运行 RWKV 模型。
【免费下载链接】ai00_rwkv_serverThe all-in-one RWKV runtime box with embed, RAG, AI agents, and more.项目地址: https://gitcode.com/gh_mirrors/ai/ai00_rwkv_server
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考