Gowrkv.goはRWKV-CPP周辺のラッパーであり、GGML.CPPの適応です。
rkwv.cppは、モデルの中間状態を保持するため、一般的に高速であるため、プロンプト全体を毎回再処理する必要はありません。詳細については、RWKV-CPPを参照してください。
また、rwkv.cppで利用可能なモデルは、llamaとは異なり、完全にオープンソースです。これらのモデルを商業的に使用することができ、心の内容に変更できます。
トレーニングもより速くなるかもしれませんが、私はまだそれを試す機会がありませんでした。
現在、インストールは複雑です。 go-rkwv.cppはまだ動作しませgo get (パッチは大歓迎です)。 Go、C ++コンパイラ(Clang on Mac)、およびCmakeが必要です。
サブモジュールが含まれているため、このリポジトリ /再帰的 /をクローンする必要があります。
git clone --recursive https://github.com/donomii/go-rwkv.cppC ++ライブラリとGOラッパーを構築するビルドスクリプトbuild.shがあります。それがあなたのために機能しない場合は、バグのレポートを提出してください。
./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ライセンスの下でライセンスされています。詳細については、ライセンスを参照してください。
私が知る限り、レイヴンモデルもオープンソースです。