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.cppСуществует сценарий сборки, build.sh, который построит библиотеку C ++ и обертку GO. Пожалуйста, подайте отчеты об ошибках, если это не работает для вас.
./build-mac.shСейчас есть альтернативная сборка, которая составляет статически благодаря Makefile, предоставленному @mudler.
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 (и, вероятно, есть ошибки).
Чтобы отправить рабочую программу, которая включает этот искусственный интеллект, вам нужно будет включить следующие файлы:
Если вы не установите Librwkv.dylib во всем мире, вам нужно будет установить переменную среды dyld_library_path в каталог, содержащий librwkv.dylib.
Эта программа лицензирована по лицензии MIT. Смотрите лицензию для деталей.
Насколько мне известно, модели Воронов также являются открытым исходным кодом.