rwkv
v0.0.8
纯为RWKV并支持跨平台。
rwkv.go是围绕rwkv.cpp的包装,它是ggml.cpp的改编。
go get github.com/seasonjs/rwkv请参阅deps文件夹以兼容Dylib,也可以自己构建库,欢迎推动请求。
NewRwkvAutoModel gpu在窗口上都支持AMD和NVIDIA 。
NewRwkvModel需要您手动加载动态库,而动态库则取决于平台。
Windows AMD GPU用户可能需要检查ROCM架构以获取更多信息。
Windows NVIDIA GPU用户可能需要检查CUDA架构以获取更多信息。
| 平台 | x32 | x64 | 手臂 | AMD/ROCM | nvidia/cuda |
|---|---|---|---|---|---|
| 视窗 | 不支持 | 支持AVX/AVX2/AVX512 | 不支持 | ROCM5.5支持 | CUDA12支持 |
| Linux | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
| 达尔文 | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
这些动态库来自rwkv.cpp版本,可以通过查看rwkv.version文件获得动态库版本,任何人都可以通过checksum the文件的md5检查文件的一致性。
我只能说,动态库的创建是公开的,不包含任何主观恶意逻辑。如果您担心使用过程中动态库的安全性,则可以自己构建。
我和与动态图书馆有关的任何作者都不承担使用过程中任何问题,责任或法律责任。
您可以在示例文件夹中找到一个完整的示例。
这是一个简单的例子:
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 )
}要运送包含此AI的工作程序,您将需要包括以下文件:
该软件包还提供与RWKV-CPP相同的低级API。请参阅RWKV-DOC的详细信息。
特别感谢Jetbrains支持赞助的支持。
版权(c)Seasonjs。版权所有。根据MIT许可获得许可。有关许可信息,请参见项目根中的LICEND.TXT。