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許可證獲得許可的。有關詳細信息,請參見許可證。
據我所知,烏鴉模型也是開源的。