gowrkv.go ist ein Wrapper um RWKV-CPP, was eine Anpassung von ggml.cpp ist.
RKWV.CPP ist im Allgemeinen schneller, da der Zwischenzustand des Modells beibehalten wird, sodass die gesamte Eingabeaufforderung nicht jedes Mal wieder aufgestellt werden muss. Weitere Informationen finden Sie unter RWKV-CPP.
Außerdem sind die verfügbaren Modelle für rwkv.cpp im Gegensatz zu Lama vollständig offen. Sie können diese Modelle kommerziell verwenden und sie in den Inhalt Ihres Herzens ändern.
Das Training kann auch schneller sein, ich hatte noch keine Chance, das zu versuchen.
Die Installation ist derzeit komplex. go-rkwv.cpp funktioniert noch nicht mit go get (Patches sehr willkommen). Sie benötigen Go, einen C ++ - Compiler (Klang auf Mac) und CMake.
Sie müssen dieses Repo /rekursiv klonen /, da es Submodule enthält.
git clone --recursive https://github.com/donomii/go-rwkv.cppEs gibt ein Build -Skript, Build.sh, das die C ++ - Bibliothek und die Go -Wrapper erstellt. Bitte reichen Sie Fehlerberichte vor, wenn es nicht für Sie funktioniert.
./build-mac.shEs gibt jetzt einen alternativen Build, der dank eines von @Mudler bereitgestellten Makefile statisch aufbaut.
make example/aiDas Download -Skript lädt einige Modelle herunter und konvertieren sie in das richtige Format.
cd aimodels
sh downloadconvert.shGo-rwkv.cpp baut derzeit gegen die dynamische Bibliothek librwkv.dylib. Das ist nicht ideal, aber es funktioniert vorerst. Sie müssen diese Bibliothek an einen Ort kopieren, an dem der System -Linker sie finden kann. Auf dem Mac ist das/usr/local/lib.
cp librwkv.dylib /usr/local/lib
export DYLD_LIBRARY_PATH=/Users/donomii/git/go-rwkv.cpp/rwkv.cpp/Wenn Sie es nicht global installieren möchten, können Sie die Umgebungsvariable dyld_library_path auf das Verzeichnis mit librwkv.dylib einstellen.
In dem Beispiel/ Verzeichnis finden Sie ein vollständiges Arbeits -Chat -Programm. Das Folgende ist ein minimales Beispiel.
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 )
}Sie müssen die Tokenizer -Datei von rwkv.cpp verwenden. GO-RWKV enthält eine Neuimplementierung des Tokenizers, aber es handelt sich um eine minimale Implementierung, die gerade genug Code enthält, um mit RWKV zu arbeiten (und es gibt wahrscheinlich Fehler darin).
Um ein Arbeitsprogramm zu versenden, das diese KI enthält, müssen Sie die folgenden Dateien einfügen:
Wenn Sie librwkv.dylib nicht global installieren, müssen Sie die Umgebungsvariable dyld_library_path auf das Verzeichnis mit Librwkv.dylib einstellen.
Dieses Programm ist unter der MIT -Lizenz lizenziert. Weitere Informationen finden Sie in Lizenz.
Soweit ich weiß, sind die Raven -Modelle auch Open Source.