GOWRKV.GO는 RWKV-CPP 주변의 래퍼이며 GGML.CPP의 적응입니다.
RKWV.CPP는 모델의 중간 상태를 유지하기 때문에 일반적으로 더 빠르므로 전체 프롬프트를 매번 재 처리 할 필요는 없습니다. 자세한 내용은 RWKV-CPP를 참조하십시오.
또한 RWKV.CPP의 사용 가능한 모델은 LLAMA와 달리 완전히 오픈 소스입니다. 이 모델을 상업적으로 사용할 수 있으며 마음의 내용으로 수정할 수 있습니다.
훈련도 더 빨라질 수 있습니다. 아직 시도 할 기회가 없었습니다.
설치는 현재 복잡합니다. go-rkwv.cpp는 아직 go get 과 함께 작동하지 않습니다 (패치는 매우 환영합니다). Go, C ++ 컴파일러 (Mac의 Clang) 및 CMake가 필요합니다.
서브 모듈이 포함되어 있으므로이 repo /재귀 적으로 복제해야합니다.
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의 Tokenizer 파일을 사용해야합니다. GO-RWKV에는 토큰 화기의 재 구현이 포함되어 있지만 RWKV와 함께 작동하기에 충분한 코드 만 포함하는 최소한의 구현입니다 (아마도 버그가있을 수 있음).
이 AI가 포함 된 작업 프로그램을 배송하려면 다음 파일을 포함해야합니다.
전 세계적으로 librwkv.dylib를 설치하지 않으면 dyld_library_path 환경 변수를 liberwkv.dylib가 포함 된 디렉토리로 설정해야합니다.
이 프로그램은 MIT 라이센스에 따라 라이센스가 부여됩니다. 자세한 내용은 라이센스를 참조하십시오.
내가 아는 한, 까마귀 모델도 오픈 소스입니다.