Pure Go для RWKV и поддержки кроссплатформенного.
Rwkv.go - это обертка вокруг rwkv.cpp, которая является адаптацией ggml.cpp.
go get github.com/seasonjs/rwkv Посмотрите папку deps для совместимости DYLIB, или вы можете создать библиотеку самостоятельно, и запрос на то, чтобы запрос на ток.
NewRwkvAutoModel как GPU поддерживают AMD и NVIDIA в Windows.
NewRwkvModel необходимо вручную загрузить динамическую библиотеку, а динамическая библиотека зависит от платформы.
Пользователю GPU Windows AMD может потребоваться проверить архитектуру ROCM, чтобы получить больше информации.
Пользователю GPU Windows NVIDIA может потребоваться проверить архитектуру CUDA, чтобы получить больше информации.
| платформа | x32 | x64 | рука | AMD/ROCM | Nvidia/Cuda |
|---|---|---|---|---|---|
| окна | не поддержка | Поддержка AVX/AVX2/AVX512 | не поддержка | ROCM5.5 Поддержка | Поддержка CUDA12 |
| Linux | не поддержка | поддерживать | не поддержка | не поддержка | не поддержка |
| Дарвин | не поддержка | поддерживать | поддерживать | не поддержка | не поддержка |
Эти динамические библиотеки поступают из выпуска RWKV.CPP, динамическая версия библиотеки может быть получена путем просмотра файла rwkv.version каждый может проверить согласованность файла с помощью проверки MD5 файла.
Все, что я могу сказать, это то, что создание динамической библиотеки является общедоступным и не содержит какой -либо субъективной злонамеренной логики. Если вы беспокоитесь о безопасности динамической библиотеки во время процесса использования, вы можете построить ее самостоятельно.
I и любой автор, связанный с динамическими библиотеками, не принимают никаких проблем, обязанностей или юридической ответственности во время использования.
Вы можете найти полный пример в папке примеров.
Вот простой пример:
package main
import (
"fmt"
"github.com/seasonjs/rwkv"
)
func main () {
model , err := rwkv . NewRwkvAutoModel (rwkv. RwkvOptions {
MaxTokens : 500 ,
StopString : " n n " ,
Temperature : 0.8 ,
TopP : 0.5 ,
TokenizerType : rwkv . World , //or World
PrintError : true ,
CpuThreads : 10 ,
GpuEnable : false ,
})
if err != nil {
fmt . Print ( err . Error ())
return
}
defer model . Close ()
err = model . LoadFromFile ( "./models/RWKV-5-World-0.4B-v2-20231113-ctx4096-F16.bin" )
if err != nil {
fmt . Print ( err . Error ())
return
}
prompt := `The following is a coherent verbose detailed conversation between a Chinese girl named Alice and her friend Bob.
Alice is very intelligent, creative and friendly.
Alice likes to tell Bob a lot about herself and her opinions.
Alice usually gives Bob kind, helpful and informative advices.
Bob: lhc
Alice: LHC是指大型强子对撞机(Large Hadron Collider),是世界最大最强的粒子加速器,由欧洲核子中心(CERN)在瑞士日内瓦地下建造。
LHC的原理是加速质子(氢离子)并让它们相撞,让科学家研究基本粒子和它们之间的相互作用,并在2012年证实了希格斯玻色子的存在。
Bob: 企鹅会飞吗
Alice: 企鹅是不会飞的。企鹅的翅膀短而扁平,更像是游泳时的一对桨。企鹅的身体结构和羽毛密度也更适合在水中游泳,而不是飞行。
`
user := `Bob: 请介绍北京的旅游景点?
Alice: `
ctx , err := model . InitState ( prompt )
if err != nil {
print ( err . Error ())
return
}
out , err := ctx . Predict ( user )
if err != nil {
print ( err . Error ())
return
}
print ( out )
}Чтобы отправить рабочую программу, которая включает этот искусственный интеллект, вам нужно будет включить следующие файлы:
Этот пакет также предоставляет API низкого уровня, который такой же, как RWKV-CPP. Смотрите детали на RWKV-DOC.
Особая благодарность поддержке Jetbrains за спонсирование.
Авторские права (C) SeasonJS. Все права защищены. Лицензирован по лицензии MIT. См. License.txt в Project Root для получения информации о лицензии.