Gowrkv.go é um invólucro em torno do RWKV-CPP, que é uma adaptação do GGML.CPP.
O rkwv.cpp é geralmente mais rápido, devido a manter o estado intermediário do modelo, para que todo o prompt não precise ser reprocessado sempre. Para mais detalhes, consulte RWKV-CPP.
Além disso, os modelos disponíveis para rwkv.cpp são de código aberto, diferentemente da llama. Você pode usar esses modelos comercialmente e modificá -los no conteúdo do seu coração.
O treinamento também pode ser mais rápido, ainda não tive a chance de tentar isso.
A instalação é atualmente complexa. go-rkwv.cpp ainda não funciona com go get (patches muito bem-vindo). Você precisará ir, um compilador C ++ (Clang no Mac) e CMake.
Você deve clonar este repo /recursivamente /, pois ele contém submódulos.
git clone --recursive https://github.com/donomii/go-rwkv.cppExiste um script de construção, Build.sh, que criará a biblioteca C ++ e o wrapper Go. Por favor, arquive relatórios de bugs se não funcionar para você.
./build-mac.shAgora existe uma compilação alternativa, que constrói estaticamente graças a um makefile fornecido pelo @Mudler.
make example/aiO script de download baixará alguns modelos e os converterá no formato correto.
cd aimodels
sh downloadconvert.shAtualmente, o Go-rwkv.cpp se baseia contra a biblioteca dinâmica Librwkv.dylib. Isso não é ideal, mas funciona por enquanto. Você precisará copiar esta biblioteca para um local em que o vinculador do sistema possa encontrá -lo. No Mac, isso é/usr/local/lib.
cp librwkv.dylib /usr/local/lib
export DYLD_LIBRARY_PATH=/Users/donomii/git/go-rwkv.cpp/rwkv.cpp/Se você não deseja instalá -lo globalmente, pode definir a variável de ambiente dyld_library_path para o diretório que contém librwkv.dylib.
Consulte o exemplo/ diretório para um programa completo de bate -papo de trabalho. A seguir, é um exemplo mínimo.
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 )
}Você deve usar o arquivo tokenizer de rwkv.cpp. O GO-RWKV contém uma reimplementação do Tokenizer, mas é uma implementação mínima que contém código suficiente para trabalhar com o RWKV (e provavelmente existem bugs nele).
Para enviar um programa de trabalho que inclua esta IA, você precisará incluir os seguintes arquivos:
Se você não instalar o Librwkv.dylib globalmente, precisará definir a variável de ambiente DYLD_LIBRARY_PATH para o diretório que contém librwkv.dylib.
Este programa está licenciado sob a licença do MIT. Consulte a licença para obter detalhes.
Até onde eu sei, os modelos Raven também são de código aberto.