RWKVを純粋にし、クロスプラットフォームをサポートします。
rwkv.goは、rwkv.cpp周辺のラッパーであり、ggml.cppの適応です。
go get github.com/seasonjs/rwkvDylibの互換性についてはdepsフォルダーを参照してください。または、自分でライブラリを構築できます。プッシュリクエストは大歓迎です。
NewRwkvAutoModel両方のGPUがWindowsでAMDとNVIDIAサポートしています。
NewRwkvModel 、動的ライブラリを手動でロードする必要があり、動的ライブラリはプラットフォームに依存しています。
Windows AMD GPUユーザーは、より多くの情報を取得するにはROCMアーキテクチャをチェックする必要がある場合があります。
Windows Nvidia GPUユーザーは、より多くの情報を取得するには、CUDAアーキテクチャをチェックする必要がある場合があります。
| プラットフォーム | x32 | x64 | アーム | AMD/ROCM | nvidia/cuda |
|---|---|---|---|---|---|
| Windows | サポートではありません | AVX/AVX2/AVX512をサポートします | サポートではありません | ROCM5.5サポート | CUDA12サポート |
| Linux | サポートではありません | サポート | サポートではありません | サポートではありません | サポートではありません |
| ダーウィン | サポートではありません | サポート | サポート | サポートではありません | サポートではありません |
これらの動的ライブラリはrwkv.cppリリースから来ています。動的ライブラリバージョンは、rwkv.versionファイルを表示することで取得できます。
私が言えることは、動的ライブラリの作成は公開されており、主観的な悪意のある論理が含まれていないということです。使用プロセス中に動的ライブラリのセキュリティが心配な場合は、自分で構築できます。
私と動的ライブラリに関連する著者は、使用中の問題、責任、または法的責任を想定していません。
Examplesフォルダーに完全な例を見つけることができます。
簡単な例を次に示します。
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の詳細をご覧ください。
スポンサーのジェットブレインサポートに感謝します。
Copyright(c)seasonjs。無断転載を禁じます。 MITライセンスに基づいてライセンスされています。ライセンス情報については、Project RootのLicense.txtを参照してください。