Gowrkv.go是围绕RWKV-CPP的包装,它是GGML.CPP的改编。
rkwv.cpp通常由于保持模型的中间状态而更快,因此不必每次重新处理整个提示。有关更多详细信息,请参见RWKV-CPP。
此外,与Llama不同,RWKV.CPP的可用型号是完全开源的。您可以在商业上使用这些模型,并且可以将它们修改为内心的内容。
培训也可能更快,我还没有机会尝试一下。
安装当前很复杂。 go-rkwv.cpp不使用go get (补丁非常欢迎)。您将需要Go,一个C ++编译器(Mac上的clang)和CMAKE。
您必须递归 /递归克隆,因为它包含子模块。
git clone --recursive https://github.com/donomii/go-rwkv.cpp有一个构建脚本,build.sh,它将构建C ++库和GO包装器。如果错误报告对您不起作用,请提交错误报告。
./build-mac.sh现在有一个替代构建,这要归功于@mudler提供的makefile。
make example/ai下载脚本将下载一些型号,并将其转换为正确的格式。
cd aimodels
sh downloadconvert.shgo-rwkv.cpp当前是针对动态库librwkv.dylib构建的。这不是理想的,但现在起作用。您将需要将此库复制到系统链接器可以找到它的位置。在Mac上,这是/usr/local/lib。
cp librwkv.dylib /usr/local/lib
export DYLD_LIBRARY_PATH=/Users/donomii/git/go-rwkv.cpp/rwkv.cpp/如果您不想在全球安装它,则可以将Dyld_library_path环境变量设置为包含librwkv.dylib的目录。
有关完整的工作聊天程序,请参见示例/目录。以下是一个最小示例。
package main
import (
"fmt"
"github.com/donomii/go-rwkv.cpp"
)
func main () {
model := LoadFiles ( "aimodels/small.bin" , "rwkv.cpp/rwkv/20B_tokenizer.json" , 8 )
model . ProcessInput ( "You are a chatbot that is very good at chatting. blah blah blah" )
response := model . Generate ( 100 , " n " )
fmt . Println ( response )
}您必须使用rwkv.cpp的令牌文件。 go-rwkv包含对令牌的重新实现,但它是一个最小的实现,其中包含足够的代码来与RWKV一起使用(其中可能有错误)。
要运送包含此AI的工作程序,您将需要包括以下文件:
如果您不在全球安装librwkv.dylib,则需要将Dyld_library_path环境变量设置为包含librwkv.dylib的目录。
该计划是根据MIT许可证获得许可的。有关详细信息,请参见许可证。
据我所知,乌鸦模型也是开源的。